SlideEvent.h
00001
00002
00003 #ifndef SlideEvent_H_
00004 #define SlideEvent_H_
00005
00006 #include <ostream>
00007 #include <gtkmm.h>
00008
00059 class SlideEvent
00060 {
00061 public:
00062
00063 SlideEvent();
00064 ~SlideEvent();
00065
00066 void set_widget( Gtk::Widget& w );
00067
00071 inline void set_w_zone( double w ){ w_zone = w; }
00072
00074 inline void set_way_length( double l ){ way_length = l; }
00075
00076 enum SlideEventID
00077 {
00078 toLeftSlideEvent,
00079 toRightSlideEvent,
00080 toDownSlideEvent,
00081 toUpSlideEvent
00082 };
00083 friend std::ostream& operator<<( std::ostream& os, SlideEventID i );
00084
00085 typedef sigc::signal<void,SlideEventID> SlideEvent_Signal;
00086
00087 SlideEvent_Signal signal_slide_event();
00088
00089
00090 typedef sigc::signal<void> SlideVoidEvent_Signal;
00091 SlideVoidEvent_Signal signal_toleft_slide_event();
00092 SlideVoidEvent_Signal signal_toright_slide_event();
00093 SlideVoidEvent_Signal signal_toup_slide_event();
00094 SlideVoidEvent_Signal signal_todown_slide_event();
00095
00096 protected:
00097
00098 bool on_motion_event(GdkEvent *event);
00099 Gtk::Widget* widget;
00100
00101 double prev_x;
00102 double prev_y;
00103 gint32 prev_t;
00104
00105 bool but_pressed;
00106 double w_zone;
00107 double way_length;
00108
00109 SlideEvent_Signal s_event;
00110 SlideVoidEvent_Signal l_event;
00111 SlideVoidEvent_Signal r_event;
00112 SlideVoidEvent_Signal u_event;
00113 SlideVoidEvent_Signal d_event;
00114
00115 private:
00116 };
00117
00118 #endif // SlideEvent_H_
00119