Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #ifndef EventListener_INCLUDE_ONCE
00033 #define EventListener_INCLUDE_ONCE
00034
00035 #include <vlGraphics/link_config.hpp>
00036 #include <vlCore/String.hpp>
00037
00038 namespace vl
00039 {
00040 class OpenGLContext;
00041
00042
00043
00055 class VLGRAPHICS_EXPORT UIEventListener: public Object
00056 {
00057 VL_INSTRUMENT_ABSTRACT_CLASS(vl::UIEventListener, Object)
00058
00059 friend class OpenGLContext;
00060
00061 public:
00063 UIEventListener(): mOpenGLContext(NULL), mEnabled(true)
00064 {
00065 VL_DEBUG_SET_OBJECT_NAME()
00066 }
00067
00069 virtual void initEvent() = 0;
00070
00072 virtual void destroyEvent() = 0;
00073
00076 virtual void updateEvent() = 0;
00077
00079 virtual void enableEvent(bool enabled) = 0;
00080
00082 virtual void addedListenerEvent(OpenGLContext*) = 0;
00083
00085 virtual void removedListenerEvent(OpenGLContext*) = 0;
00086
00088 virtual void mouseMoveEvent(int x, int y) = 0;
00089
00091 virtual void mouseUpEvent(EMouseButton button, int x, int y) = 0;
00092
00094 virtual void mouseDownEvent(EMouseButton button, int x, int y) = 0;
00095
00097 virtual void mouseWheelEvent(int n) = 0;
00098
00100 virtual void keyPressEvent(unsigned short unicode_ch, EKey key) = 0;
00101
00103 virtual void keyReleaseEvent(unsigned short unicode_ch, EKey key) = 0;
00104
00106 virtual void resizeEvent(int x, int y) = 0;
00107
00109 virtual void fileDroppedEvent(const std::vector<String>& files) = 0;
00110
00112 virtual void visibilityEvent(bool visible) = 0;
00113
00116 virtual void setEnabled(bool enabled) { if (mEnabled != enabled) { mEnabled = enabled; enableEvent(enabled); } }
00117
00119 bool isEnabled() const { return mEnabled; }
00120
00122 OpenGLContext* openglContext();
00123
00125 const OpenGLContext* openglContext() const;
00126
00127 private:
00128 OpenGLContext* mOpenGLContext;
00129 bool mEnabled;
00130 };
00131 }
00132
00133 #endif