00001 #ifndef __DW_EVENTS_HH__
00002 #define __DW_EVENTS_HH__
00003
00004 #ifndef __INCLUDED_FROM_DW_CORE_HH__
00005 # error Do not include this file directly, use "core.hh" instead.
00006 #endif
00007
00008 namespace dw {
00009 namespace core {
00010
00014 enum ButtonState
00015 {
00016
00017 SHIFT_MASK = 1 << 0,
00018 CONTROL_MASK = 1 << 1,
00019 META_MASK = 1 << 2,
00020 BUTTON1_MASK = 1 << 3,
00021 BUTTON2_MASK = 1 << 4,
00022 BUTTON3_MASK = 1 << 5
00023 };
00024
00031 class Event: public lout::object::Object
00032 {
00033 public:
00034 };
00035
00039 class MouseEvent: public Event
00040 {
00041 public:
00042 ButtonState state;
00043 };
00044
00048 class MousePositionEvent: public MouseEvent
00049 {
00050 public:
00051 int xCanvas, yCanvas, xWidget, yWidget;
00052 };
00053
00057 class EventButton: public MousePositionEvent
00058 {
00059 public:
00060 int numPressed;
00061 int button;
00062 };
00063
00067 class EventMotion: public MousePositionEvent
00068 {
00069 };
00070
00074 class EventCrossing: public MouseEvent
00075 {
00076 public:
00077 Widget *lastWidget, *currentWidget;
00078 };
00079
00080 }
00081 }
00082
00083 #endif // __DW_EVENTS_HH__