This is a list of missing features, deficiencies or critical bugs we identified in our toolkit. Fixing or implementing items in this list will make it possible, or way easier, to write applications that match the GNOME 3 design and style.
Big/critical features
- Grid View
replacement for GtkIconView using real widgets - basically EggListBox for a grid
- support centering of the items in view
- support an approach that looks good while resizing the window
- support dynamically resizing items when the window changes size
EggWrapBox does pretty much all we want already wrt. the layout of objects - http://git.gnome.org/browse/libegg/tree/libegg/wrapbox
- we should move it to the egg-list-box submodule for now, so that people can easily use it
- we should clean up its API, especially wrt. the align/expand flags, bring it up to date with GTK3's GtkAlign/hexpand/vexpand
we should make it so that the API of EggListBox and EggWrapBox are consistent
probably rename it to GtkFlowBox when it's merged in GTK
- Notifications
https://mail.gnome.org/archives/gtk-devel-list/2012-November/msg00009.html
- will need to talk with Lennart for overlap with systemd-session activation for apps
- Scene manager
every single app that switches between different views right now uses a tabless GtkNotebook. We need something that allows us to easily switch between different "pages", with nice transitions
the sizing behavior will need to be thought through a little; currently GtkNotebook reports the max width/height amongst all the children, the new stack widget should probably have this as a configurable behavior
- it would be interesting in having a way to reference a scene/page by name, and being able to switch to it by calling its name. It would also probably help to integrate this into an UI builder app.
- Alex interested in writing
- Titlebars
- applications should have a way to turn off window decorations on a specific toplevel and provide the titlebar itself there
- that would hint the WM to use another style for its decorations, just a minimal frame with a shadow
- we don’t need to block on CSD for this
Matthias has a GtkTitlebar prototype we should use: http://mclasen.fedorapeople.org/titlebar.tar
- Popovers
- they have some menus semantic, but they are overlaid on the window
- they keep a "window" grab, i.e. clicking anywhere in the window should dismiss it, but clicking on another window shouldn't
- need implementation
- Clutter + a11y integration
- quite an important bug
we might be able to just have GtkClutterActor implement AtkContainer or something and things might just work
- it needs figuring out but the number of people that has the right knowledge to try and do this is quite limited
Smaller/nice to have
- In-app status notifications
http://git.gnome.org/browse/libgd/tree/libgd/gd-notification.c
- Needs review/merging at some point
- Baseline text alignment for widgets in the same container
- Alex wants to investigate
- sounds quite hard to do, tightly coupled with the size request cycle; hard to avoid looping size requests to find the optimal size, which could hurt performance a lot
- Java-like layout managers for GTK
- Validation of data in text inputs
right now we don’t have any way to standardize this verification, and clients need to connect to the ‘changed’ signal of GtkEntry manually
- the idea here would be to have some description of the purpose the entry is for, and then apply some specific validation rules for that purpose
we might be able to reuse GtkInputPurpose for this
- Improvements for the search entry
- the loupe should be on the left side (Jon) and it should have a way to report errors inline
- this is more important for finding rather than searching
- Revealer widget
- this is done in different ways in Documents/Boxes
- might be worth having its own widget for
- Floating bar
- Used in nautilus and epiphany for status and showing links
- See nautilus-floating-bar.c