summaryrefslogtreecommitdiff
path: root/includes/interface/Component.h
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2012-01-08 17:39:03 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-01-08 17:39:03 (GMT)
commitb0ea52690ba56a0d0602ad8674b7e5ab2ba3e778 (patch)
tree7d72e0509f4d2643d3be837a337d088ca5949c73 /includes/interface/Component.h
downloadpowder-b0ea52690ba56a0d0602ad8674b7e5ab2ba3e778.zip
powder-b0ea52690ba56a0d0602ad8674b7e5ab2ba3e778.tar.gz
Initial
Diffstat (limited to 'includes/interface/Component.h')
-rw-r--r--includes/interface/Component.h53
1 files changed, 53 insertions, 0 deletions
diff --git a/includes/interface/Component.h b/includes/interface/Component.h
new file mode 100644
index 0000000..a4d02db
--- /dev/null
+++ b/includes/interface/Component.h
@@ -0,0 +1,53 @@
+/*
+ * Component.h
+ *
+ * Created on: Jan 8, 2012
+ * Author: Simon
+ */
+
+#ifndef COMPONENT_H_
+#define COMPONENT_H_
+
+namespace ui
+{
+ class State;
+
+ class Component
+ {
+ public:
+ Component(int x, int y, int width, int height);
+ virtual ~Component();
+
+ inline void LocalizePoint(int& x, int& y) { x -= X; y -= Y; } //convert a global point (point on the state) to a point based on component's position
+ inline void GlobalizePoint(int& x, int& y) { x += X; y += Y; } //convert a local point based on component's position to a global point on the state
+
+ bool Focused;
+ bool Visible;
+ bool Enabled;
+ int Width;
+ int Height;
+ int X;
+ int Y;
+
+ virtual void Tick(float dt);
+ virtual void Draw(void* userdata);
+
+ virtual void OnMouseEnter(int localx, int localy, int dx, int dy);
+ virtual void OnMouseLeave(int localx, int localy, int dx, int dy);
+ virtual void OnMouseMoved(int localx, int localy, int dx, int dy);
+ virtual void OnMouseMovedInside(int localx, int localy, int dx, int dy);
+ virtual void OnMouseHover(int localx, int localy);
+ virtual void OnMouseDown(int localx, int localy, unsigned int button);
+ virtual void OnMouseUp(int localx, int localy, unsigned int button);
+ virtual void OnMouseClick(int localx, int localy, unsigned int button);
+ virtual void OnMouseUnclick(int localx, int localy, unsigned int button);
+ virtual void OnMouseWheel(int localx, int localy, int d);
+ virtual void OnMouseWheelInside(int localx, int localy, int d);
+ virtual void OnMouseWheelFocused(int localx, int localy, int d);
+ virtual void OnKeyPress(int key, bool shift, bool ctrl, bool alt);
+ virtual void OnKeyRelease(int key, bool shift, bool ctrl, bool alt);
+
+ State* Parent;
+ };
+}
+#endif /* COMPONENT_H_ */