In this way Tab key (and other focus movement keys) can be used
in PopupWindows. They aren’t propagated to the main window because
a correct filter was added in 883629b563ff36e4fb8bd1562f2cebf037bbc98a
It’s better if we use the original key modifiers from she::Events (given
by Cocoa or Win32 APIs) instead of asking for the current state of
the modifier when the ui::Message is created (which can be different
from the original value).
This commit adds support to transport the modifiers, but it is not
using the original key modifiers yet.
Changes:
- Added ui::ScrollableViewDelegate so ui::ScrollBar can be child of
a non-ui::View widget.
- Added a generic ui::setup_scrollbars() utility to locate
horizontal/vertical scrollbars depending on the scrollable area and
the available viewport area.
- Replaced Timeline::m_scroll_x/y ints with m_hbar/m_vbar widgets.
- Added transparent scrollbar look & feel.
- Added a "hover" state to mini-scrollbars used in sprite editors.
- Moved ui::GuiSystem from ui/base.h to ui/system.h as ui::UISystem
- Moved some internals to ui::details namespace
- Fix crash of UI tests when ~Manager is called
- Removed ui::init/exit_system() functions
TooltipManager uses filters to intercept a kMouseEnterMessage, if we
remove this kind of message for the TooltipManager itself (in sendMessage),
we never get that message so we never show the tooltip.
This problem was introduced in d1799c037abc011e79663892f52e0e2e0b5c5334
to fix a problem with comboboxes.
With this fix, when the list of possible completions for a filename
is regenerated, we deselect the previously selected item. So the new
list appears without any item selected by default.
Some changes needed to do this:
* Added support to show icon+text in ButtonSet items
* Added an extra parameter in Graphics::drawUIString() to avoid drawing
the underscore
* Fixed expansion of ButtonSet items when the grid is resized
* Added support for Alt+mnemonic shortcuts in ButtonSet items
Now we generate the list of SkinTheme parts from the skin.xml file using
the gen utility.
Several refactors included in SkinTheme class to simplify code.
Now when the user resizes the OS window (a she::Display), it generates
a kDisplayResize she::Event, and this is processed by the UI layer to
redraw the entire ui::Manager.
With this change we remove the obscure "bool" return value in
she::Display::flip() member function.