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 // -------------------------------------------------------------------------

Документация по UniWidgets. Последние изменения: Fri Oct 10 09:57:49 2014. Создано системой  doxygen 1.5.9