Changeset - r15259:4136e608f02e
[Not reviewed]
master
0 4 0
alberth - 14 years ago 2010-05-30 12:06:18
alberth@openttd.org
(svn r19904) -Codechange: Make EventState usable outside Window context.
4 files changed with 13 insertions and 13 deletions:
0 comments (0 inline, 0 general)
src/misc_gui.cpp
Show inline comments
 
@@ -1158,11 +1158,11 @@ bool QueryString::HasEditBoxFocus(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::HandleE
 
			if (IsValidChar(key, this->afilter)) {
 
				if (InsertTextBufferChar(&this->text, key)) w->SetWidgetDirty(wid);
 
			} else {
 
				state = Window::ES_NOT_HANDLED;
 
				state = ES_NOT_HANDLED;
 
			}
 
	}
 

	
src/querystring_gui.h
Show inline comments
 
@@ -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 {
src/window.cpp
Show inline comments
 
@@ -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;
 
	}
 
}
 

	
src/window_gui.h
Show inline comments
 
@@ -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);
0 comments (0 inline, 0 general)