summaryrefslogtreecommitdiff
path: root/src/interface/Window.h
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2012-08-03 16:09:34 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-08-03 16:09:34 (GMT)
commit2652309a3fc4748fa5d983754bc52a7a617898ed (patch)
tree6cc254a438bdc92396f9c28bd22c43d248408313 /src/interface/Window.h
parent36b2aa01918344d91df30c4a6722ac39eaca0642 (diff)
downloadpowder-2652309a3fc4748fa5d983754bc52a7a617898ed.zip
powder-2652309a3fc4748fa5d983754bc52a7a617898ed.tar.gz
Nicer defaults for Window closing, Implement these with Sign tool, issue #51. Also set centre as default
Diffstat (limited to 'src/interface/Window.h')
-rw-r--r--src/interface/Window.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/interface/Window.h b/src/interface/Window.h
index 83fd1bc..357d9da 100644
--- a/src/interface/Window.h
+++ b/src/interface/Window.h
@@ -15,6 +15,7 @@ enum ChromeStyle
//class State;
class Engine;
class Component;
+ class Button;
/* class State
*
@@ -29,6 +30,9 @@ enum ChromeStyle
Window(Point _position, Point _size);
virtual ~Window();
+ void SetOkayButton(ui::Button * button) { okayButton = button; }
+ void SetCancelButton(ui::Button * button) { cancelButton = button; }
+
bool AllowExclusiveDrawing; //false will not call draw on objects outside of bounds
// Add Component to state
@@ -70,7 +74,13 @@ enum ChromeStyle
void* UserData;
+ enum OkayMethod { Enter, OkayButton };
+ enum ExitMethod { MouseOutside, Escape, ExitButton };
+
protected:
+ ui::Button * okayButton;
+ ui::Button * cancelButton;
+
virtual void OnInitialized() {}
virtual void OnExit() {}
virtual void OnTick(float dt) {}
@@ -78,6 +88,9 @@ enum ChromeStyle
virtual void OnFocus() {}
virtual void OnBlur() {}
+ virtual void OnTryExit(ExitMethod);
+ virtual void OnTryOkay(OkayMethod);
+
virtual void OnMouseMove(int x, int y, int dx, int dy) {}
virtual void OnMouseDown(int x, int y, unsigned button) {}
virtual void OnMouseUp(int x, int y, unsigned button) {}