00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef HEADER_CONSTRUO_WORLDVIEW_SELECT_TOOL_HXX
00021 #define HEADER_CONSTRUO_WORLDVIEW_SELECT_TOOL_HXX
00022
00023 #include "selection.hxx"
00024 #include "worldview_tool.hxx"
00025
00026 class Particle;
00027
00029 class WorldViewSelectTool : public WorldViewTool
00030 {
00031 private:
00032 Selection selection;
00033
00034 typedef enum { GETTING_SELECTION_MODE,
00035 MOVING_SELECTION_MODE,
00036 ROTATING_SELECTION_MODE,
00037 IDLE_MODE } Mode;
00038 Mode mode;
00039
00041 Vector2d click_pos;
00042
00044 Vector2d rotate_center;
00045 public:
00046 WorldViewSelectTool ();
00047 ~WorldViewSelectTool ();
00048
00049 void activate ();
00050 void deactivate ();
00051
00052 void draw_background (ZoomGraphicContext* gc);
00053 void draw_foreground (ZoomGraphicContext* gc);
00054
00055 void on_primary_button_press (int x, int y);
00056 void on_primary_button_release (int x, int y);
00057
00058 void on_secondary_button_press (int x, int y);
00059 void on_secondary_button_release (int x, int y);
00060
00061 void on_mouse_move (int x, int y, int of_x, int of_y);
00062
00063 void on_button_press (int button_id, int x, int y);
00064
00065 void on_flip_press (int x, int y);
00066 void on_duplicate_press (int x, int y);
00067 void on_delete_press (int x, int y);
00068 void on_fix_press (int x, int y);
00069 };
00070
00071 #endif
00072
00073