00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef HEADER_CONSTRUO_GUI_CHILDMANAGER_HXX
00021 #define HEADER_CONSTRUO_GUI_CHILDMANAGER_HXX
00022
00023 #include <vector>
00024 #include <string>
00025 #include "zoom_graphic_context.hxx"
00026 #include "gui_component.hxx"
00027
00029 class GUIChildManager : public GUIComponent
00030 {
00031 private:
00032 ZoomGraphicContext gc;
00033 typedef std::vector<GUIComponent*> ComponentLst;
00034 ComponentLst components;
00035
00036 GUIComponent* current_component;
00037 GUIComponent* find_component_at (int, int);
00038 public:
00039 GUIChildManager (int x, int y, int width, int height);
00040 ~GUIChildManager ();
00041
00042 void add (GUIComponent*);
00043 void remove (GUIComponent*);
00044 void replace(GUIComponent* old_comp, GUIComponent* new_comp);
00045
00046 void draw (GraphicContext* gc);
00047 virtual void draw_overlay (GraphicContext* gc) {}
00048
00049 void on_primary_button_press (int x, int y);
00050 void on_primary_button_release (int x, int y);
00051
00052 void on_secondary_button_click (int x, int y);
00053 void on_secondary_button_press (int x, int y);
00054 void on_secondary_button_release (int x, int y);
00055
00056 void on_delete_press (int x, int y);
00057 void on_fix_press (int x, int y);
00058
00059 virtual void on_mouse_enter ();
00060 virtual void on_mouse_leave ();
00061
00062 void wheel_up (int x, int y);
00063 void wheel_down (int x, int y);
00064
00065 void scroll_left ();
00066 void scroll_right ();
00067 void scroll_up ();
00068 void scroll_down ();
00069
00070 void on_mouse_move (int x, int y, int of_x, int of_y);
00071 };
00072
00073 #endif
00074
00075