11 #include "ScaledView.h"
13 #include "vtdata/Building.h"
14 #include "vtdata/Fence.h"
15 #include "vtdata/Icosa.h"
76 vtFence *m_pCurLinear, m_EditLinear;
95 bool m_bDistanceToolMode;
103 BuilderView(wxWindow *parent, wxWindowID
id = -1,
const wxPoint& pos = wxDefaultPosition,
104 const wxSize& size = wxDefaultSize,
const wxString& name = _T(
""));
107 virtual void OnDraw(wxDC& dc);
110 void SetCorrectCursor();
113 void SetMode(LBMode m);
114 LBMode GetMode() {
return m_ui.mode; }
115 void GetMouseLocation(
DPoint2 &p);
118 void DrawUTMBounds(wxDC *pDC);
119 void DrawDymaxionOutline(wxDC *pDC);
125 void OnChar(wxKeyEvent&
event);
126 void OnKeyDown(wxKeyEvent& event);
127 void OnMouseWheel(wxMouseEvent& event);
132 void SetActiveLayer(
vtLayer *lp);
135 void SetShowMap(
bool bShow);
136 bool GetShowMap() {
return m_bShowMap; }
137 void SetShowScaleBar(
bool bShow);
138 bool GetShowScaleBar() {
return m_bScaleBar; }
139 void InvertAreaTool(
const DRECT &rect);
140 void ShowGridMarks(
const DRECT &area,
int cols,
int rows,
int active_col,
int active_row);
141 void HideGridMarks();
142 void SetDistanceToolMode(
bool bPath);
143 bool GetDistanceToolMode();
145 { m_distance_p1 = p1; m_distance_p2 = p2; }
146 void SetDistancePath(
const DLine2 &path)
147 { m_distance_path = path; }
148 void ClearDistanceTool();
149 void UpdateDistance();
155 bool m_bShowUTMBounds;
160 void UpdateResizeScale();
162 void OnDragDistance();
165 void CheckForTerrainSelect(
const DPoint2 &loc);
166 void HighlightArea(wxDC *pDC,
const DRECT &rect);
171 void DoPan(wxPoint point);
175 void EndBox(
const wxMouseEvent& event);
176 void EndBoxFeatureSelect(
const wxMouseEvent& event);
177 void DoBox(wxPoint point);
179 void DoArea(wxPoint delta);
182 void OnLeftDown(wxMouseEvent& event);
183 void OnLeftUp(wxMouseEvent& event);
184 void OnLeftDoubleClick(wxMouseEvent& event);
185 void OnMiddleDown(wxMouseEvent& event);
186 void OnMiddleUp(wxMouseEvent& event);
187 void OnRightDown(wxMouseEvent& event);
188 void OnRightUp(wxMouseEvent& event);
190 void OnLButtonClick(wxMouseEvent& event);
191 void OnLButtonDragRelease(wxMouseEvent& event);
194 void OnLButtonClickFeature(
vtLayer *pL);
197 void OnMouseMove(wxMouseEvent& event);
198 void OnMouseMoveLButton(
const wxPoint &point);
200 void OnIdle(wxIdleEvent& event);
201 void OnSize(wxSizeEvent& event);
202 void OnEraseBackground(wxEraseEvent& event);
204 void InvertRect(wxDC *pDC,
const wxRect &r,
bool bDashed =
false);
205 void InvertRect(wxDC *pDC,
const wxPoint &one,
const wxPoint &two,
bool bDashed =
false);
206 void DrawAreaTool(wxDC *pDC,
const DRECT &area);
207 void DrawDistanceTool(wxDC *pDC);
208 void DrawDistanceTool();
209 void BeginDistance();
211 bool m_bGotFirstIdle;
212 bool m_bSkipNextDraw;
213 bool m_bSkipNextRefresh;
214 wxSize m_previous_size;
216 DPoint2 m_distance_p1, m_distance_p2;
220 wxPoint m_DownClient;
232 wxCursor *m_pCursorPan;
233 bool m_bMouseCaptured;
239 DLine2Array WMPolyDraw;
240 std::vector<DRECT> WMPolyExtents;
242 bool m_bAttemptedLoad;
244 OCT *m_pMapToCurrent, *m_pCurrentToMap;
246 bool ImportWorldMap();
247 void DrawWorldMap(wxDC *pDC);
250 bool m_bShowGridMarks;
252 int m_iGridCols, m_iGridRows, m_iActiveCol, m_iActiveRow;
253 void DrawGridMarks(wxDC &dc);
256 void DrawScaleBar(wxDC * dc);
257 void OnBeginScroll(wxScrollWinEvent & event);
258 void OnEndScroll(wxScrollWinEvent& event);
259 void OnOtherScrollEvents(wxScrollWinEvent & event);
260 wxRect m_ScaleBarArea;
264 DECLARE_EVENT_TABLE()