summaryrefslogtreecommitdiff
path: root/includes/interface.old/State.h
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2012-01-14 18:51:24 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-01-14 18:51:24 (GMT)
commit2c9295007a287dc01ff63fcf7b3da141f7474e37 (patch)
treee8065e920ca45686a40e41fd46513e13d46f47b0 /includes/interface.old/State.h
parentfc2f52099c0bbb2412046252bf7b5e4113bbe8e4 (diff)
downloadpowder-2c9295007a287dc01ff63fcf7b3da141f7474e37.zip
powder-2c9295007a287dc01ff63fcf7b3da141f7474e37.tar.gz
Various things, also IEF UI
Diffstat (limited to 'includes/interface.old/State.h')
-rw-r--r--includes/interface.old/State.h61
1 files changed, 61 insertions, 0 deletions
diff --git a/includes/interface.old/State.h b/includes/interface.old/State.h
new file mode 100644
index 0000000..00df199
--- /dev/null
+++ b/includes/interface.old/State.h
@@ -0,0 +1,61 @@
+/*
+ * State.h
+ *
+ * Created on: Jan 8, 2012
+ * Author: Simon
+ */
+
+#ifndef STATE_H_
+#define STATE_H_
+
+#include <vector>
+
+#include "interface/Component.h"
+
+namespace ui {
+
+class State
+{
+public:
+ State(int w, int h);
+ virtual ~State();
+
+ bool AllowExclusiveDrawing; //false will not call draw on objects outside of bounds
+
+ virtual void Tick(float dt);
+ virtual void Draw(void* userdata);
+
+ virtual void OnMouseMove(int x, int y);
+ virtual void OnMouseDown(int x, int y, unsigned int button);
+ virtual void OnMouseUp(int x, int y, unsigned int button);
+ virtual void OnMouseWheel(int x, int y, int d);
+ virtual void OnKeyPress(int key, bool shift, bool ctrl, bool alt);
+ virtual void OnKeyRelease(int key, bool shift, bool ctrl, bool alt);
+
+ virtual void Add(Component *child);
+ virtual void Remove(Component *child);
+
+ inline bool IsFocused(Component* c) { return (c == focusedComponent_); }
+ inline int GetMouseX() { return mouseX; }
+ inline int GetMouseY() { return mouseY; }
+ inline int GetWidth() { return width; }
+ inline int GetHeight() { return height; }
+
+protected:
+ std::vector<Component*> Components;
+
+ int width;
+ int height;
+
+ int mouseX;
+ int mouseY;
+ int mouseXP;
+ int mouseYP;
+
+private:
+ Component* focusedComponent_;
+
+};
+
+} /* namespace ui */
+#endif /* STATE_H_ */