____ _ __
/ __ )____ _____ | | / /___ ___________
/ __ / __ \/ ___/ | | /| / / __ `/ ___/ ___/
/ /_/ / /_/ (__ ) | |/ |/ / /_/ / / (__ )
/_____/\____/____/ |__/|__/\__,_/_/ /____/
A futuristic real-time strategy game.
This file is part of Bos Wars.
(C) Copyright 2001-2007 by the Bos Wars and Stratagus Project.
Distributed under the "GNU General Public License"#include <focushandler.h>
Public Member Functions | |
| FocusHandler () | |
| virtual | ~FocusHandler () |
| virtual void | requestFocus (Widget *widget) |
| virtual void | setFocus (Widget *widget) |
| virtual void | requestDrag (Widget *widget) |
| virtual void | requestModalFocus (Widget *widget) |
| virtual void | releaseModalFocus (Widget *widget) |
| virtual Widget * | getFocused () const |
| virtual Widget * | getDragged () const |
| virtual Widget * | getModalFocused () const |
| virtual void | focusNext () |
| virtual void | focusPrevious () |
| virtual bool | hasFocus (const Widget *widget) const |
| virtual bool | isDragged (const Widget *widget) const |
| virtual void | add (Widget *widget) |
| virtual void | remove (Widget *widget) |
| virtual void | focusNone () |
| virtual void | tabNext () |
| virtual void | tabPrevious () |
| virtual void | applyChanges () |
| virtual void | dragNone () |
| virtual void | checkHotKey (const KeyInput &keyInput) |
Protected Types | |
| typedef std::vector< Widget * > | WidgetVector |
| typedef WidgetVector::iterator | WidgetIterator |
Protected Attributes | |
| WidgetVector | mWidgets |
| Widget * | mFocusedWidget |
| Widget * | mDraggedWidget |
| Widget * | mToBeFocused |
| Widget * | mToBeDragged |
| Widget * | mModalFocusedWidget |
Definition at line 80 of file focushandler.h.
typedef std::vector<Widget*> gcn::FocusHandler::WidgetVector [protected] |
Definition at line 232 of file focushandler.h.
typedef WidgetVector::iterator gcn::FocusHandler::WidgetIterator [protected] |
Definition at line 233 of file focushandler.h.
| gcn::FocusHandler::FocusHandler | ( | ) |
Constructor.
Definition at line 65 of file focushandler.cpp.
References mDraggedWidget, mFocusedWidget, mModalFocusedWidget, mToBeDragged, and mToBeFocused.
| virtual gcn::FocusHandler::~FocusHandler | ( | ) | [inline, virtual] |
Destructor.
Definition at line 92 of file focushandler.h.
| void gcn::FocusHandler::requestFocus | ( | Widget * | widget | ) | [virtual] |
Sets focus to a Widget. Widget::lostFocus and Widget::gotFocus will be called.
| widget | the Widget to focus. |
Definition at line 74 of file focushandler.cpp.
References mToBeFocused.
Referenced by checkHotKey(), gcn::DropDown::dropDown(), and gcn::Widget::requestFocus().
| void gcn::FocusHandler::setFocus | ( | Widget * | widget | ) | [virtual] |
| void gcn::FocusHandler::requestDrag | ( | Widget * | widget | ) | [virtual] |
Sets drag to a Widget.
| widget | the Widget to drag. |
Definition at line 84 of file focushandler.cpp.
References mToBeDragged.
Referenced by gcn::Widget::_mouseInputMessage().
| void gcn::FocusHandler::requestModalFocus | ( | Widget * | widget | ) | [virtual] |
Sets modal focus to a Widget. If another Widget already has modal focus will an exception be thrown.
| widget | the Widget to focus modal. |
| Exception | when another widget already has modal focus. |
Definition at line 89 of file focushandler.cpp.
References dragNone(), focusNone(), GCN_EXCEPTION, gcn::Widget::hasModalFocus(), mDraggedWidget, mFocusedWidget, and mModalFocusedWidget.
Referenced by gcn::Widget::requestModalFocus().
| void gcn::FocusHandler::releaseModalFocus | ( | Widget * | widget | ) | [virtual] |
Releases modal focus if the Widget has modal focus. Otherwise nothing will be done.
| widget | the Widget to release modal focus for. |
Definition at line 109 of file focushandler.cpp.
References mModalFocusedWidget.
Referenced by gcn::Widget::releaseModalFocus().
| Widget * gcn::FocusHandler::getFocused | ( | ) | const [virtual] |
Gets the Widget with focus.
Definition at line 117 of file focushandler.cpp.
References mFocusedWidget.
Referenced by gcn::DropDown::_keyInputMessage(), and gcn::Gui::logic().
| Widget * gcn::FocusHandler::getDragged | ( | ) | const [virtual] |
Gets the widget that is dragged.
Definition at line 122 of file focushandler.cpp.
References mDraggedWidget.
Referenced by gcn::Gui::logic().
| Widget * gcn::FocusHandler::getModalFocused | ( | ) | const [virtual] |
Gets the Widget with modal focus.
Definition at line 127 of file focushandler.cpp.
References mModalFocusedWidget.
Referenced by gcn::Widget::_keyInputMessage(), gcn::Widget::_mouseInputMessage(), and gcn::Widget::hasModalFocus().
| void gcn::FocusHandler::focusNext | ( | ) | [virtual] |
Focuses the next Widget. If no Widget has focus the first Widget gets focus. The order in which the Widgets are focused depends on the order you add them to the GUI.
Definition at line 132 of file focushandler.cpp.
References int(), mFocusedWidget, and mWidgets.
| void gcn::FocusHandler::focusPrevious | ( | ) | [virtual] |
Focuses the previous Widget. If no Widget has focus the first Widget gets focus. The order in which the widgets are focused depends on the order you add them to the GUI.
Definition at line 184 of file focushandler.cpp.
References int(), mFocusedWidget, and mWidgets.
| bool gcn::FocusHandler::hasFocus | ( | const Widget * | widget | ) | const [virtual] |
Checks if a Widget has focus.
| widget | widget to check if it has focus.. |
Definition at line 242 of file focushandler.cpp.
References mFocusedWidget.
Referenced by gcn::Widget::hasFocus(), and remove().
| bool gcn::FocusHandler::isDragged | ( | const Widget * | widget | ) | const [virtual] |
Checks if a widget is being dragged
| widget | the Widget to check if it is being dragged. |
Definition at line 247 of file focushandler.cpp.
References mDraggedWidget.
Referenced by gcn::Widget::isDragged().
| void gcn::FocusHandler::add | ( | Widget * | widget | ) | [virtual] |
Adds a widget to the FocusHandler.
| widget | the widget to add. |
Definition at line 252 of file focushandler.cpp.
References mWidgets.
Referenced by gcn::Widget::_setFocusHandler().
| void gcn::FocusHandler::remove | ( | Widget * | widget | ) | [virtual] |
Removes a widget from the FocusHandler.
| widget | the widget to remove. |
Definition at line 257 of file focushandler.cpp.
References hasFocus(), mDraggedWidget, mFocusedWidget, mToBeDragged, mToBeFocused, and mWidgets.
Referenced by gcn::Widget::_setFocusHandler().
| void gcn::FocusHandler::focusNone | ( | ) | [virtual] |
Focuses nothing.
Definition at line 297 of file focushandler.cpp.
References gcn::Widget::lostFocus(), mFocusedWidget, and mToBeFocused.
Referenced by gcn::Gui::focusNone(), gcn::DropDown::foldUp(), gcn::Gui::logic(), requestModalFocus(), gcn::Widget::setFocusable(), and gcn::Widget::setVisible().
| void gcn::FocusHandler::tabNext | ( | ) | [virtual] |
Focuses the next Widget which allows tab in unless current focused Widget disallows tab out.
Definition at line 347 of file focushandler.cpp.
References int(), gcn::Widget::isTabOutEnabled(), mFocusedWidget, mModalFocusedWidget, and mWidgets.
Referenced by gcn::Gui::logic().
| void gcn::FocusHandler::tabPrevious | ( | ) | [virtual] |
Focuses the previous Widget which allows tab in unless current focused Widget disallows tab out.
Definition at line 422 of file focushandler.cpp.
References int(), gcn::Widget::isTabOutEnabled(), mFocusedWidget, mModalFocusedWidget, and mWidgets.
Referenced by gcn::Gui::logic().
| void gcn::FocusHandler::applyChanges | ( | ) | [virtual] |
Applies the changes.
Definition at line 497 of file focushandler.cpp.
References GCN_EXCEPTION, gcn::Widget::lostFocus(), mDraggedWidget, mFocusedWidget, mToBeDragged, mToBeFocused, and mWidgets.
Referenced by gcn::Gui::logic(), and gcn::DropDown::logic().
| void gcn::FocusHandler::dragNone | ( | ) | [virtual] |
Drag nothing.
Definition at line 310 of file focushandler.cpp.
References mDraggedWidget.
Referenced by gcn::Widget::_mouseInputMessage(), and requestModalFocus().
| void gcn::FocusHandler::checkHotKey | ( | const KeyInput & | keyInput | ) | [virtual] |
Check if a hot key was pressed.
Definition at line 315 of file focushandler.cpp.
References gcn::KeyInput::getKey(), gcn::KeyInput::getType(), gcn::Key::getValue(), int(), mWidgets, gcn::KeyInput::PRESS, and requestFocus().
Referenced by gcn::Gui::logic().
WidgetVector gcn::FocusHandler::mWidgets [protected] |
Definition at line 234 of file focushandler.h.
Referenced by add(), applyChanges(), checkHotKey(), focusNext(), focusPrevious(), remove(), tabNext(), and tabPrevious().
Widget* gcn::FocusHandler::mFocusedWidget [protected] |
Definition at line 236 of file focushandler.h.
Referenced by applyChanges(), FocusHandler(), focusNext(), focusNone(), focusPrevious(), getFocused(), hasFocus(), remove(), requestModalFocus(), setFocus(), tabNext(), and tabPrevious().
Widget* gcn::FocusHandler::mDraggedWidget [protected] |
Definition at line 237 of file focushandler.h.
Referenced by applyChanges(), dragNone(), FocusHandler(), getDragged(), isDragged(), remove(), and requestModalFocus().
Widget* gcn::FocusHandler::mToBeFocused [protected] |
Definition at line 238 of file focushandler.h.
Referenced by applyChanges(), FocusHandler(), focusNone(), remove(), and requestFocus().
Widget* gcn::FocusHandler::mToBeDragged [protected] |
Definition at line 239 of file focushandler.h.
Referenced by applyChanges(), FocusHandler(), remove(), and requestDrag().
Widget* gcn::FocusHandler::mModalFocusedWidget [protected] |
Definition at line 240 of file focushandler.h.
Referenced by FocusHandler(), getModalFocused(), releaseModalFocus(), requestModalFocus(), tabNext(), and tabPrevious().
1.5.6