]> git.saurik.com Git - wxWidgets.git/blame - contrib/samples/ogl/studio/view.h
Aliases for [G|S]etCaretLineBack
[wxWidgets.git] / contrib / samples / ogl / studio / view.h
CommitLineData
1fc25a89 1/////////////////////////////////////////////////////////////////////////////
f4ec6bd2 2// Name: contrib/samples/ogl/studio/view.h
1fc25a89
JS
3// Purpose: View-related classes
4// Author: Julian Smart
5// Modified by:
6// Created: 12/07/98
7// RCS-ID: $Id$
8// Copyright: (c) Julian Smart
2ba06d5a 9// Licence: wxWindows licence
1fc25a89
JS
10/////////////////////////////////////////////////////////////////////////////
11
12#ifndef _STUDIO_VIEW_H_
13#define _STUDIO_VIEW_H_
14
1fc25a89 15#include "doc.h"
f4ec6bd2 16#include "wx/ogl/ogl.h"
1fc25a89
JS
17
18class csDiagramView;
19class csCanvas: public wxShapeCanvas
20{
21DECLARE_CLASS(csCanvas)
22 public:
23
2ba06d5a 24 csCanvas(csDiagramView *view, wxWindow *parent = NULL, wxWindowID id = wxID_ANY,
1fc25a89
JS
25 const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
26 long style = wxRETAINED);
27 ~csCanvas(void);
28
29 void DrawOutline(wxDC& dc, double x1, double y1, double x2, double y2);
30
31 void OnMouseEvent(wxMouseEvent& event);
32 void OnPaint(wxPaintEvent& event);
33
34 virtual void OnLeftClick(double x, double y, int keys = 0);
35 virtual void OnRightClick(double x, double y, int keys = 0);
36
37 virtual void OnDragLeft(bool draw, double x, double y, int keys=0); // Erase if draw false
38 virtual void OnBeginDragLeft(double x, double y, int keys=0);
39 virtual void OnEndDragLeft(double x, double y, int keys=0);
40
41 virtual void OnDragRight(bool draw, double x, double y, int keys=0); // Erase if draw false
42 virtual void OnBeginDragRight(double x, double y, int keys=0);
43 virtual void OnEndDragRight(double x, double y, int keys=0);
44
45 inline csDiagramView* GetView() const { return m_view; }
46 inline void SetView(csDiagramView* view) { m_view = view; }
47
48 protected:
49 csDiagramView* m_view;
50
51DECLARE_EVENT_TABLE()
52};
53
54class csDiagramView: public wxView
55{
56 DECLARE_DYNAMIC_CLASS(csDiagramView)
57 public:
58 csDiagramView(void) { canvas = NULL; frame = NULL; };
59 ~csDiagramView(void);
60
61 bool OnCreate(wxDocument *doc, long flags);
62 void OnDraw(wxDC *dc);
63 void OnUpdate(wxView *sender, wxObject *hint = NULL);
2ba06d5a 64 bool OnClose(bool deleteWindow = true);
1fc25a89
JS
65 void OnSelectAll(wxCommandEvent& event);
66
67 wxShape *FindFirstSelectedShape(void);
68
69 // Scans the canvas for selections (doesn't use m_selections)
70 void FindSelectedShapes(wxList& selections, wxClassInfo* toFind = NULL);
71
72 // The selections in the order in which they were selected
73 inline wxList& GetSelectionList() const { return (wxList&) m_selections; }
74
75 // Adds or removes shape from m_selections
76 void SelectShape(wxShape* shape, bool select);
77
78 // Apply point size to current shapes
79 void ApplyPointSize(int pointSize);
80
81 // Make the point size combobox reflect this
82 void ReflectPointSize(int pointSize);
83
84 // Make the arrow toggle button reflect the state of the line
85 void ReflectArrowState(wxLineShape* lineShape);
86
87 // Do a cut operation for the given list of shapes
88 void DoCut(wxList& shapes);
89
90 // Do a general command
91 void DoCmd(wxList& shapes, wxList& oldShapes, int cmd, const wxString& op);
92
93 // Select or deselect all
2ba06d5a 94 void SelectAll(bool select = true);
1fc25a89
JS
95
96// Event handlers
97 void OnCut(wxCommandEvent& event);
98 void OnCopy(wxCommandEvent& event);
99 void OnPaste(wxCommandEvent& event);
100 void OnDuplicate(wxCommandEvent& event);
101 void OnClear(wxCommandEvent& event);
102 void OnChangeBackgroundColour(wxCommandEvent& event);
103 void OnEditProperties(wxCommandEvent& event);
104 void OnPointSizeComboSel(wxCommandEvent& event);
105 void OnPointSizeComboText(wxCommandEvent& event);
106 void OnToggleArrowTool(wxCommandEvent& event);
107 void OnZoomSel(wxCommandEvent& event);
108 void OnAlign(wxCommandEvent& event);
109 void OnNewLinePoint(wxCommandEvent& event);
110 void OnCutLinePoint(wxCommandEvent& event);
111 void OnStraightenLines(wxCommandEvent& event);
112
113// UI update handles
114 void OnToggleArrowToolUpdate(wxUpdateUIEvent& event);
115 void OnEditPropertiesUpdate(wxUpdateUIEvent& event);
116 void OnCutUpdate(wxUpdateUIEvent& event);
117 void OnClearUpdate(wxUpdateUIEvent& event);
118 void OnCopyUpdate(wxUpdateUIEvent& event);
119 void OnPasteUpdate(wxUpdateUIEvent& event);
120 void OnDuplicateUpdate(wxUpdateUIEvent& event);
121 void OnAlignUpdate(wxUpdateUIEvent& event);
122 void OnNewLinePointUpdate(wxUpdateUIEvent& event);
123 void OnCutLinePointUpdate(wxUpdateUIEvent& event);
124 void OnStraightenLinesUpdate(wxUpdateUIEvent& event);
125 void OnUndoUpdate(wxUpdateUIEvent& event);
126 void OnRedoUpdate(wxUpdateUIEvent& event);
127
128DECLARE_EVENT_TABLE()
129
130public:
5abe5464 131 wxMDIChildFrame* frame;
1fc25a89
JS
132 csCanvas* canvas;
133 wxList m_selections;
134};
135
136#endif
137 // _STUDIO_VIEW_H_