]>
git.saurik.com Git - wxWidgets.git/blob - samples/dragimag/dragimag.h
1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: wxDragImage sample
4 // Author: Julian Smart
8 // Copyright: (c) Julian Smart
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
12 #ifndef _WX_DRAGIMAGSAMPLE_
13 #define _WX_DRAGIMAGSAMPLE_
24 class MyFrame
: public wxFrame
29 void OnAbout( wxCommandEvent
&event
);
30 void OnQuit( wxCommandEvent
&event
);
32 MyCanvas
* GetCanvas() const { return m_canvas
; }
33 void SetCanvas(MyCanvas
* canvas
) { m_canvas
= canvas
; }
38 DECLARE_DYNAMIC_CLASS(MyFrame
)
44 class MyApp
: public wxApp
48 virtual bool OnInit();
53 bool TileBitmap(const wxRect
& rect
, wxDC
& dc
, wxBitmap
& bitmap
);
56 wxBitmap
& GetBackgroundBitmap() const { return (wxBitmap
&) m_background
; }
58 bool GetUseScreen() const { return m_useScreen
; }
59 void SetUseScreen(bool useScreen
) { m_useScreen
= useScreen
; }
61 void OnUseScreen(wxCommandEvent
& event
);
64 wxBitmap m_background
;
72 #define TEST_USE_SCREEN 100
77 #define TEST_DRAG_NONE 0
78 #define TEST_DRAG_START 1
79 #define TEST_DRAG_DRAGGING 2
81 class MyCanvas
: public wxScrolledWindow
84 MyCanvas( wxWindow
*parent
, wxWindowID
, const wxPoint
&pos
, const wxSize
&size
);
87 void OnPaint( wxPaintEvent
&event
);
88 void OnEraseBackground(wxEraseEvent
& event
);
89 void OnMouseEvent(wxMouseEvent
& event
);
91 void DrawShapes(wxDC
& dc
);
92 void EraseShape(DragShape
* shape
, wxDC
& dc
);
94 DragShape
* FindShape(const wxPoint
& pt
) const;
96 wxList
& GetDisplayList() { return m_displayList
; }
101 wxList m_displayList
; // A list of DragShapes
103 DragShape
* m_draggedShape
;
104 DragShape
* m_currentlyHighlighted
; // The shape that's being highlighted
105 wxPoint m_dragStartPos
;
106 wxDragImage
* m_dragImage
;
108 DECLARE_CLASS(MyCanvas
)
109 DECLARE_EVENT_TABLE()
113 // Ways to drag a shape
115 #define SHAPE_DRAG_BITMAP 1
116 #define SHAPE_DRAG_TEXT 2
117 #define SHAPE_DRAG_ICON 3
121 class DragShape
: public wxObject
124 DragShape(const wxBitmap
& bitmap
);
129 bool HitTest(const wxPoint
& pt
) const;
130 bool Draw(wxDC
& dc
, int op
= wxCOPY
);
134 wxPoint
GetPosition() const { return m_pos
; }
135 void SetPosition(const wxPoint
& pos
) { m_pos
= pos
; }
137 wxRect
GetRect() const { return wxRect(m_pos
.x
, m_pos
.y
, m_bitmap
.GetWidth(), m_bitmap
.GetHeight()); }
139 wxBitmap
& GetBitmap() const { return (wxBitmap
&) m_bitmap
; }
140 void SetBitmap(const wxBitmap
& bitmap
) { m_bitmap
= bitmap
; }
142 int GetDragMethod() const { return m_dragMethod
; }
143 void SetDragMethod(int method
) { m_dragMethod
= method
; }
145 bool IsShown() const { return m_show
; }
146 void SetShow(bool show
) { m_show
= show
; }
156 // _WX_DRAGIMAGSAMPLE_