(svn r19904) -Codechange: Make EventState usable outside Window context.

This commit is contained in:
alberth 2010-05-30 12:06:18 +00:00
parent fc82d9cd77
commit 113f3ef0eb
4 changed files with 13 additions and 13 deletions

View File

@ -1158,11 +1158,11 @@ bool QueryString::HasEditBoxFocus(const Window *w, int wid) const
return w->parent->nested_focus != NULL && w->parent->nested_focus->type == WWT_EDITBOX;
}
HandleEditBoxResult QueryString::HandleEditBoxKey(Window *w, int wid, uint16 key, uint16 keycode, Window::EventState &state)
HandleEditBoxResult QueryString::HandleEditBoxKey(Window *w, int wid, uint16 key, uint16 keycode, EventState &state)
{
if (!QueryString::HasEditBoxFocus(w, wid)) return HEBR_NOT_FOCUSED;
state = Window::ES_HANDLED;
state = ES_HANDLED;
switch (keycode) {
case WKC_ESC: return HEBR_CANCEL;
@ -1196,7 +1196,7 @@ HandleEditBoxResult QueryString::HandleEditBoxKey(Window *w, int wid, uint16 key
if (IsValidChar(key, this->afilter)) {
if (InsertTextBufferChar(&this->text, key)) w->SetWidgetDirty(wid);
} else {
state = Window::ES_NOT_HANDLED;
state = ES_NOT_HANDLED;
}
}

View File

@ -56,7 +56,7 @@ private:
public:
void DrawEditBox(Window *w, int wid);
void HandleEditBox(Window *w, int wid);
HandleEditBoxResult HandleEditBoxKey(Window *w, int wid, uint16 key, uint16 keycode, Window::EventState &state);
HandleEditBoxResult HandleEditBoxKey(Window *w, int wid, uint16 key, uint16 keycode, EventState &state);
};
struct QueryStringBaseWindow : public Window, public QueryString {

View File

@ -1938,14 +1938,14 @@ void HandleKeypress(uint32 raw_key)
/* Check if the focused window has a focused editbox */
if (EditBoxInGlobalFocus()) {
/* All input will in this case go to the focused window */
if (_focused_window->OnKeyPress(key, keycode) == Window::ES_HANDLED) return;
if (_focused_window->OnKeyPress(key, keycode) == ES_HANDLED) return;
}
/* Call the event, start with the uppermost window, but ignore the toolbar. */
Window *w;
FOR_ALL_WINDOWS_FROM_FRONT(w) {
if (w->window_class == WC_MAIN_TOOLBAR) continue;
if (w->OnKeyPress(key, keycode) == Window::ES_HANDLED) return;
if (w->OnKeyPress(key, keycode) == ES_HANDLED) return;
}
w = FindWindowById(WC_MAIN_TOOLBAR, 0);
@ -1961,7 +1961,7 @@ void HandleCtrlChanged()
/* Call the event, start with the uppermost window. */
Window *w;
FOR_ALL_WINDOWS_FROM_FRONT(w) {
if (w->OnCTRLStateChange() == Window::ES_HANDLED) return;
if (w->OnCTRLStateChange() == ES_HANDLED) return;
}
}

View File

@ -19,6 +19,12 @@
#include "tile_type.h"
#include "widget_type.h"
/** State of handling an event. */
enum EventState {
ES_HANDLED, ///< The passed event is handled.
ES_NOT_HANDLED, ///< The passed event is not handled.
};
/**
* Flags to describe the look of the frame
*/
@ -334,12 +340,6 @@ struct ViewportData : ViewPort {
* Data structure for an opened window
*/
struct Window : ZeroedMemoryAllocator {
/** State whether an event is handled or not */
enum EventState {
ES_HANDLED, ///< The passed event is handled
ES_NOT_HANDLED, ///< The passed event is not handled
};
protected:
void InitializeData(const WindowDesc *desc, WindowNumber window_number);
void InitializePositionSize(int x, int y, int min_width, int min_height);