These are the results of joint work of me and Máirín to implement layout indication in Anaconda's GUI.
PATCH 1/3 adds a new Anaconda widget called LayoutIndicator. It is based on the libxklavier library (no way to use the GNOME's replacement yet (if ever)) and uses the XklEngine singleton instance to get information about layout switching, configuration changes etc. I hope the code is vastly commented, but in case of any doubts I'm glad to explain anything.
PATCH 2/3 adds the LayoutIndicator to our BaseWindow class, so that it appears in the header of every spoke and hub. The patch also includes some changes that create more space for the indicator and rearrange the heading a little bit. Among the other things the red "beta warning" label became smaller. But for some reason on the WelcomeSpoke it has the same size. Any ideas?
Anyway, that is the "global indicator". Since for dialogs we use lightboxing that hides the underlying spoke/hub, we would need to place some more indicators to places where they are needed. The only one so far seems to be the LUKS passphrase dialog which is the case covered with PATCH 3/3.
The static preview can be seen at: http://vpodzime.fedorapeople.org/making_room_for_LI_new.png (the smaller indicator just shows the one that is used in the LUKS dialog)
Tomorrow I will also post a screencast I cannot record it now via SSH.
Vratislav Podzimek (3): LayoutIndicator widget Add layout indicator to the BaseWindow Add layout indicator to the LUKS passphrase dialog
data/pixmaps/anaconda_spoke_header.png | Bin 185 -> 183 bytes pyanaconda/ui/gui/spokes/lib/passphrase.glade | 19 +- pyanaconda/ui/gui/spokes/lib/passphrase.py | 20 +- widgets/configure.ac | 1 + widgets/glade/AnacondaWidgets.xml | 10 + widgets/src/BaseWindow.c | 15 +- widgets/src/LayoutIndicator.c | 446 ++++++++++++++++++++++++++ widgets/src/LayoutIndicator.h | 78 +++++ widgets/src/Makefile.am | 8 +- widgets/src/SpokeWindow.c | 4 +- 10 files changed, 578 insertions(+), 23 deletions(-) create mode 100644 widgets/src/LayoutIndicator.c create mode 100644 widgets/src/LayoutIndicator.h