00001
00041 #ifndef INC_MGUI_TOOLCANVAS_H
00042 #define INC_MGUI_TOOLCANVAS_H
00043
00044 #ifndef INC_MGUI_CANVAS_H
00045 #include <mgui/canvas.h>
00046 #endif
00047
00048 #ifndef INC_MI32_STEREOVIEW_H
00049 #include <mi32/stereoview.h>
00050 #endif
00051
00052
00053 #ifndef GENERATING_DOXYGEN_OUTPUT
00054
00055 class ZVIEW;
00056 namespace MGUI {
00057 class GADGET;
00058 class TOOL_BASE;
00059 }
00060 #endif
00061
00062
00063 namespace MGUI {
00064
00065
00066
00067 class TOOLCANVAS : public CANVAS {
00068
00069 public:
00070
00072 TOOLCANVAS ();
00073
00075 virtual ~TOOLCANVAS ();
00076
00078 void DrawGadgets (
00079 DEVICETYPE DeviceType
00080 );
00081
00083 GADGET* GetActiveGadget () const;
00084
00086 TOOL_BASE* GetActiveTool () const;
00087
00090 const ZVIEW* GetZView () const
00091 { return (v_GetZView()); }
00092
00094 void GraphicToolResume () const;
00095
00097 void GraphicToolSuspend () const;
00098
00100 void PlaceGadgets ();
00101
00103 void SetGadgetMargin (
00104 UINT16 margin
00105 );
00106
00108 void SetGadgetSpacing (
00109 UINT16 spacing
00110 );
00111
00114 void StereoCursorDrawAbsolute (
00115 const DPOINT3D& ptCanvas3D
00116 );
00117
00120 void StereoCursorDrawOnSurface (
00121 MGUI::POINT ptCanvas
00122 );
00123
00125 void StereoCursorRestore ();
00126
00127 protected:
00128
00131 virtual void v_OnCaptureChanged ();
00132
00136 virtual bool v_OnKey (
00137 MGUI::POINT point,
00138 MGUI::KEYCODE keycode,
00139 MGUI::KEYSTATE keystate
00140 );
00141
00146 virtual void v_OnPaint (
00147 MGD::CONTEXT *gc
00148 );
00149
00152 virtual void v_OnPointerButtonDown (
00153 MGUI::POINT point,
00154 POINTERBUTTON button,
00155 KEYSTATE keystate
00156 );
00157
00160 virtual void v_OnPointerButtonUp (
00161 MGUI::POINT point,
00162 POINTERBUTTON button,
00163 KEYSTATE keystate
00164 );
00165
00168 virtual void v_OnPointerEnter ();
00169
00172 virtual void v_OnPointerLeave ();
00173
00176 virtual void v_OnPointerMove (
00177 MGUI::POINT point,
00178 POINTERBUTTON button,
00179 KEYSTATE keystate,
00180 bool hasmore
00181 );
00182
00185 virtual void v_OnSize (
00186 int width,
00187 int height
00188 );
00189
00190 private:
00191 #ifndef GENERATING_DOXYGEN_OUTPUT
00192 typedef CANVAS BASECLASS;
00193
00194 class PRIV;
00195 PRIV *m_pPriv;
00196
00197 friend class TOOL_BASE;
00198 friend class GADGET;
00199 #endif // GENERATING_DOXYGEN_OUTPUT
00200
00201 void GadgetAttach (GADGET * const pGadget);
00202 void GadgetDetach (GADGET * const pGadget);
00203 void SetActiveTool (TOOL_BASE* pTool);
00204 void ToolAttach (TOOL_BASE *const pTool);
00205 void ToolDetach (TOOL_BASE *const pTool);
00206
00209 virtual const ZVIEW* v_GetZView () const;
00210 };
00211
00212
00213
00214 }
00215
00216 #endif // INC_MGUI_TOOLCANVAS_H