8 #ifndef VTBUILDERFRAMEH
9 #define VTBUILDERFRAMEH
12 #include "wx/aui/aui.h"
14 #include "vtdata/WFSClient.h"
15 #include "StatusBar.h"
17 #define APPNAME "VTBuilder"
20 #define ADD_TOOL(bar, id, bmp, label) \
21 bar->AddTool(id, label, bmp, wxNullBitmap, wxITEM_NORMAL, label, label)
22 #define ADD_TOOL2(bar, id, bmp, label, type) \
23 bar->AddTool(id, label, bmp, wxNullBitmap, type, label, label)
48 MainFrame(wxFrame *frame,
const wxString& title,
49 const wxPoint& pos,
const wxSize& size);
53 virtual void CreateView();
57 virtual void CreateMenus();
58 void UpdateMRU(wxMenu *menu,
const vtStringArray &files,
int first_id);
59 void ManageToolbar(
const wxString &name, wxToolBar *bar,
bool show);
60 wxToolBar *NewToolbar();
62 void RefreshToolbars();
63 virtual void AddMainToolbars();
67 void OnClose(wxCloseEvent &
event);
68 void OnFillIn(
int method);
71 void OnProjectNew(wxCommandEvent& event);
72 void OnProjectOpen(wxCommandEvent& event);
73 void OnProjectSave(wxCommandEvent& event);
74 void OnProjectPrefs(wxCommandEvent& event);
75 void OnBatchConvert(wxCommandEvent &event);
76 void OnDymaxTexture(wxCommandEvent &event);
77 void OnDymaxMap(wxCommandEvent &event);
78 void OnProcessBillboard(wxCommandEvent &event);
79 void OnElevCopy(wxCommandEvent& event);
80 void OnElevPasteNew(wxCommandEvent& event);
81 void OnGeocode(wxCommandEvent &event);
82 void OnRunTest(wxCommandEvent &event);
83 void OnQuit(wxCommandEvent& event);
85 void OnUpdateFileMRU(wxUpdateUIEvent& event);
87 void OnEditDelete(wxCommandEvent& event);
88 void OnUpdateEditDelete(wxUpdateUIEvent& event);
89 void OnEditDeselectAll(wxCommandEvent& event);
90 void OnEditInvertSelection(wxCommandEvent& event);
91 void OnEditCrossingSelection(wxCommandEvent& event);
92 void OnUpdateCrossingSelection(wxUpdateUIEvent& event);
93 void OnEditOffset(wxCommandEvent& event);
95 void OnUpdateEditOffset(wxUpdateUIEvent& event);
97 void OnLayerNew(wxCommandEvent& event);
98 void OnLayerOpen(wxCommandEvent& event);
99 void OnLayerSave(wxCommandEvent& event);
100 void OnLayerSaveAs(wxCommandEvent& event);
101 void OnLayerImport(wxCommandEvent& event);
102 void OnLayerImportTIGER(wxCommandEvent& event);
103 void OnLayerImportNTF(wxCommandEvent& event);
104 void OnLayerImportUtil(wxCommandEvent& event);
105 void OnLayerImportMapSource(wxCommandEvent& event);
106 void OnLayerImportPoint(wxCommandEvent& event);
107 void OnLayerImportXML(wxCommandEvent& event);
108 void OnLayerImportDXF(wxCommandEvent& event);
109 void OnLayerProperties(wxCommandEvent& event);
110 void OnLayerConvert(wxCommandEvent& event);
111 void OnLayerSetProjection(wxCommandEvent& event);
112 void OnLayerCombine(wxCommandEvent& event);
114 void OnUpdateLayerSave(wxUpdateUIEvent& event);
115 void OnUpdateLayerSaveAs(wxUpdateUIEvent& event);
116 void OnUpdateMRULayer(wxUpdateUIEvent& event);
117 void OnUpdateMRUImport(wxUpdateUIEvent& event);
118 void OnUpdateLayerProperties(wxUpdateUIEvent& event);
119 void OnUpdateLayerConvert(wxUpdateUIEvent& event);
120 void OnUpdateLayerCombine(wxUpdateUIEvent& event);
122 void OnLayerShow(wxCommandEvent& event);
123 void OnLayerUp(wxCommandEvent& event);
124 void OnLayerDown(wxCommandEvent& event);
125 void OnViewMagnifier(wxCommandEvent& event);
126 void OnViewPan(wxCommandEvent& event);
127 void OnViewDistance(wxCommandEvent& event);
128 void OnViewSetArea(wxCommandEvent& event);
130 void OnViewZoomIn(wxCommandEvent& event);
131 void OnViewZoomOut(wxCommandEvent& event);
133 void OnViewZoomAll(wxCommandEvent& event);
134 void OnViewZoomToLayer(wxCommandEvent& event);
135 void OnViewFull(wxCommandEvent& event);
136 void OnViewZoomArea(wxCommandEvent& event);
137 void OnViewToolbar(wxCommandEvent& event);
138 void OnViewLayers(wxCommandEvent& event);
139 void OnViewWorldMap(wxCommandEvent& event);
140 void OnViewUTMBounds(wxCommandEvent& event);
141 void OnViewProfile(wxCommandEvent& event);
142 void OnViewScaleBar(wxCommandEvent& event);
143 void OnViewOptions(wxCommandEvent& event);
145 void OnUpdateLayerShow(wxUpdateUIEvent& event);
146 void OnUpdateLayerUp(wxUpdateUIEvent& event);
147 void OnUpdateLayerDown(wxUpdateUIEvent& event);
148 void OnUpdateMagnifier(wxUpdateUIEvent& event);
149 void OnUpdatePan(wxUpdateUIEvent& event);
150 void OnUpdateDistance(wxUpdateUIEvent& event);
151 void OnUpdateViewFull(wxUpdateUIEvent& event);
152 void OnUpdateViewZoomArea(wxUpdateUIEvent& event);
153 void OnUpdateViewToolbar(wxUpdateUIEvent& event);
154 void OnUpdateViewLayers(wxUpdateUIEvent& event);
155 void OnUpdateViewZoomToLayer(wxUpdateUIEvent& event);
156 void OnUpdateWorldMap(wxUpdateUIEvent& event);
157 void OnUpdateUTMBounds(wxUpdateUIEvent& event);
158 void OnUpdateViewProfile(wxUpdateUIEvent& event);
159 void OnUpdateViewScaleBar(wxUpdateUIEvent& event);
161 void OnSelectLink(wxCommandEvent& event);
162 void OnSelectNode(wxCommandEvent& event);
163 void OnSelectWhole(wxCommandEvent& event);
164 void OnDirection(wxCommandEvent& event);
165 void OnRoadEdit(wxCommandEvent& event);
166 void OnRoadShowNodes(wxCommandEvent& event);
167 void OnSelectHwy(wxCommandEvent& event);
168 void OnRoadClean(wxCommandEvent& event);
169 void OnRoadGuess(wxCommandEvent& event);
170 void OnRoadFlatten(wxCommandEvent& event);
172 void OnUpdateSelectLink(wxUpdateUIEvent& event);
173 void OnUpdateSelectNode(wxUpdateUIEvent& event);
174 void OnUpdateSelectWhole(wxUpdateUIEvent& event);
175 void OnUpdateDirection(wxUpdateUIEvent& event);
176 void OnUpdateRoadEdit(wxUpdateUIEvent& event);
177 void OnUpdateRoadShowNodes(wxUpdateUIEvent& event);
178 void OnUpdateRoadFlatten(wxUpdateUIEvent& event);
180 void OnElevSelect(wxCommandEvent& event);
181 void OnRemoveElevRange(wxCommandEvent& event);
182 void OnElevComputeDiff(wxCommandEvent& event);
183 void OnElevSetUnknown(wxCommandEvent& event);
184 void OnFillFast(wxCommandEvent& event);
185 void OnFillSlow(wxCommandEvent& event);
186 void OnFillRegions(wxCommandEvent& event);
187 void OnScaleElevation(wxCommandEvent& event);
188 void OnVertOffsetElevation(wxCommandEvent& event);
189 void OnElevExport(wxCommandEvent& event);
190 void OnElevExportBitmap(wxCommandEvent& event);
191 void OnElevToTin(wxCommandEvent& event);
192 void OnElevContours(wxCommandEvent& event);
193 void OnElevExportTiles(wxCommandEvent& event);
194 void OnElevMergeTin(wxCommandEvent& event);
195 void OnElevTrimTin(wxCommandEvent& event);
197 void OnUpdateElevSelect(wxUpdateUIEvent& event);
198 void OnUpdateViewSetArea(wxUpdateUIEvent& event);
199 void OnUpdateElevSetUnknown(wxUpdateUIEvent& event);
200 void OnUpdateElevMergeTin(wxUpdateUIEvent& event);
201 void OnUpdateElevTrimTin(wxUpdateUIEvent& event);
202 void OnUpdateIsElevation(wxUpdateUIEvent& event);
203 void OnUpdateIsGrid(wxUpdateUIEvent& event);
205 void OnImageReplaceRGB(wxCommandEvent& event);
206 void OnImageCreateOverviews(wxCommandEvent& event);
207 void OnImageCreateOverviewsAll(wxCommandEvent& event);
208 void OnImageCreateMipMaps(wxCommandEvent& event);
209 void OnImageExportTiles(wxCommandEvent& event);
210 void OnImageExportPPM(wxCommandEvent& event);
211 void OnUpdateHaveImageLayer(wxUpdateUIEvent& event);
212 void OnUpdateHaveImageLayerInMem(wxUpdateUIEvent& event);
214 void OnTowerSelect(wxCommandEvent& event);
215 void OnTowerEdit(wxCommandEvent& event);
216 void OnTowerAdd(wxCommandEvent& event);
218 void OnUpdateTowerSelect(wxUpdateUIEvent& event);
219 void OnUpdateTowerEdit(wxUpdateUIEvent& event);
220 void OnUpdateTowerAdd(wxUpdateUIEvent& event);
222 void OnVegPlants(wxCommandEvent& event);
223 void OnVegBioregions(wxCommandEvent& event);
224 void OnVegRemap(wxCommandEvent& event);
225 void OnVegExportSHP(wxCommandEvent& event);
226 void OnVegHTML(wxCommandEvent& event);
227 void OnUpdateVegExportSHP(wxUpdateUIEvent& event);
229 void OnFeatureSelect(wxCommandEvent& event);
230 void OnFeaturePick(wxCommandEvent& event);
231 void OnFeatureTable(wxCommandEvent& event);
232 void OnBuildingEdit(wxCommandEvent& event);
233 void OnBuildingAddPoints(wxCommandEvent& event);
234 void OnBuildingDeletePoints(wxCommandEvent& event);
235 void OnStructureAddLinear(wxCommandEvent& event);
236 void OnStructureEditLinear(wxCommandEvent& event);
237 void OnStructureAddInstances(wxCommandEvent& event);
238 void OnStructureAddFoundation(wxCommandEvent& event);
239 void OnStructureConstrain(wxCommandEvent& event);
240 void OnStructureSelectUsingPolygons(wxCommandEvent& event);
241 void OnStructureColourSelectedRoofs(wxCommandEvent& event);
242 void OnStructureCleanFootprints(wxCommandEvent& event);
243 void OnStructureSelectIndex(wxCommandEvent& event);
244 void OnStructureExportFootprints(wxCommandEvent& event);
245 void OnStructureExportCanoma(wxCommandEvent& event);
247 void OnUpdateFeatureSelect(wxUpdateUIEvent& event);
248 void OnUpdateFeaturePick(wxUpdateUIEvent& event);
249 void OnUpdateFeatureTable(wxUpdateUIEvent& event);
250 void OnUpdateBuildingEdit(wxUpdateUIEvent& event);
251 void OnUpdateBuildingAddPoints(wxUpdateUIEvent& event);
252 void OnUpdateBuildingDeletePoints(wxUpdateUIEvent& event);
253 void OnUpdateStructureAddLinear(wxUpdateUIEvent& event);
254 void OnUpdateStructureAddInstances(wxUpdateUIEvent& event);
255 void OnUpdateStructureEditLinear(wxUpdateUIEvent& event);
256 void OnUpdateStructureAddFoundation(wxUpdateUIEvent& event);
257 void OnUpdateStructureConstrain(wxUpdateUIEvent& event);
258 void OnUpdateStructureSelectUsingPolygons(wxUpdateUIEvent& event);
259 void OnUpdateStructureColourSelectedRoofs(wxUpdateUIEvent& event);
260 void OnUpdateStructureExportFootprints(wxUpdateUIEvent& event);
262 void OnRawSetType(wxCommandEvent& event);
263 void OnRawAddPoints(wxCommandEvent& event);
264 void OnRawAddPointText(wxCommandEvent& event);
265 void OnRawAddPointsGPS(wxCommandEvent& event);
266 void OnRawAddFeatureWKT(wxCommandEvent& event);
267 void OnRawSelectCondition(wxCommandEvent& event);
268 void OnRawConvertToTIN(wxCommandEvent& event);
269 void OnRawExportImageMap(wxCommandEvent& event);
270 void OnRawExportKML(wxCommandEvent& event);
271 void OnRawGenElevation(wxCommandEvent& event);
272 void OnRawStyle(wxCommandEvent& event);
273 void OnRawScaleH(wxCommandEvent& event);
274 void OnRawScaleV(wxCommandEvent& event);
275 void OnRawOffsetV(wxCommandEvent& event);
276 void OnRawClean(wxCommandEvent& event);
277 void OnRawSelectBad(wxCommandEvent& event);
279 void OnUpdateRawSetType(wxUpdateUIEvent& event);
280 void OnUpdateRawAddPoints(wxUpdateUIEvent& event);
281 void OnUpdateRawAddPointText(wxUpdateUIEvent& event);
282 void OnUpdateRawAddPointsGPS(wxUpdateUIEvent& event);
283 void OnUpdateRawIsActive(wxUpdateUIEvent& event);
284 void OnUpdateRawIsActive3D(wxUpdateUIEvent& event);
285 void OnUpdateRawIsPolygon(wxUpdateUIEvent& event);
286 void OnUpdateRawGenElevation(wxUpdateUIEvent& event);
288 void OnAreaClear(wxCommandEvent& event);
289 void OnAreaZoomAll(wxCommandEvent& event);
290 void OnAreaZoomLayer(wxCommandEvent& event);
291 void OnAreaTypeIn(wxCommandEvent& event);
292 void OnAreaMatch(wxCommandEvent& event);
293 void OnAreaExportElev(wxCommandEvent& event);
294 void OnAreaOptimizedElevTileset(wxCommandEvent& event);
295 void OnAreaOptimizedImageTileset(wxCommandEvent& event);
296 void OnAreaExportImage(wxCommandEvent& event);
297 void OnAreaGenerateVeg(wxCommandEvent& event);
298 void OnAreaVegDensity(wxCommandEvent& event);
299 void OnAreaRequestWFS(wxCommandEvent& event);
300 void OnAreaRequestWMS(wxCommandEvent& event);
301 void OnAreaRequestTServe(wxCommandEvent& event);
303 void OnUpdateAreaZoomAll(wxUpdateUIEvent& event);
304 void OnUpdateAreaZoomLayer(wxUpdateUIEvent& event);
305 void OnUpdateAreaMatch(wxUpdateUIEvent& event);
306 void OnUpdateAreaExportElev(wxUpdateUIEvent& event);
307 void OnUpdateAreaExportImage(wxUpdateUIEvent& event);
308 void OnUpdateAreaGenerateVeg(wxUpdateUIEvent& event);
309 void OnUpdateAreaVegDensity(wxUpdateUIEvent& event);
310 void OnUpdateAreaRequestWMS(wxUpdateUIEvent& event);
312 void OnHelpAbout(wxCommandEvent& event);
313 void OnHelpDocLocal(wxCommandEvent& event);
314 void OnHelpDocOnline(wxCommandEvent& event);
317 void OnDistanceClear(wxCommandEvent& event);
318 void OnShowAll(wxCommandEvent& event);
319 void OnHideAll(wxCommandEvent& event);
320 void OnLayerPropsPopup(wxCommandEvent& event);
321 void OnLayerToTop(wxCommandEvent& event);
322 void OnLayerToBottom(wxCommandEvent& event);
323 void OnLayerOverviewDisk(wxCommandEvent& event);
324 void OnLayerOverviewMem(wxCommandEvent& event);
327 void OnMRUFileProject(wxCommandEvent& event);
328 void OnMRUFileLayer(wxCommandEvent& event);
329 void OnMRUFileImport(wxCommandEvent& event);
332 void OnChar(wxKeyEvent& event);
333 void OnKeyDown(wxKeyEvent& event);
334 void OnMouseWheel(wxMouseEvent& event);
338 bool LoadProject(
const wxString &strPathName);
339 bool SaveProject(
const wxString &strPathName)
const;
340 void ShowOptionsDialog();
341 void OnDrop(
const wxString &str);
344 void DoProcessBillboard();
346 void DoElevPasteNew();
348 void DoDymaxTexture();
352 virtual bool AddLayerWithCheck(
vtLayer *pLayer,
bool bRefresh =
true);
353 virtual void RemoveLayer(
vtLayer *lp);
354 virtual void SetActiveLayer(
vtLayer *lp,
bool refresh =
false);
355 void RefreshLayerInView(
vtLayer *pLayer);
356 void ShowLayerProperties(
vtLayer *lp);
359 virtual void RefreshTreeStatus();
360 void RefreshTreeView();
361 void RefreshStatusBar();
364 virtual void OnSetMode(LBMode m);
365 virtual void OnSelectionChanged();
375 void UpdateDistance(
const DLine2 &path);
376 void ClearDistance();
395 bool ReadINI(
const char *fname);
397 bool ReadXML(
const char *fname);
398 bool WriteXML(
const char *fname);
408 wxMenu *mruLayerMenu;
409 wxMenu *mruImportMenu;
420 wxMenuBar *m_pMenuBar;
421 wxToolBar *m_pToolbar;
422 wxToolBar *m_pLayBar[LAYER_TYPES];
428 vtScaleBar *m_pScaleBar;
431 int m_iLayerMenu[LAYER_TYPES];
435 DECLARE_EVENT_TABLE()
438 #if wxUSE_DRAG_AND_DROP
439 class DnDFile :
public wxFileDropTarget
442 virtual bool OnDropFiles(wxCoord x, wxCoord y,
443 const wxArrayString& filenames);
448 wxString GetImportFilterString(LayerType ltype);
449 float ElevLayerArrayValue(std::vector<vtElevLayer*> &elevs,
const DPoint2 &p);
450 void ElevLayerArrayRange(std::vector<vtElevLayer*> &elevs,
451 float &minval,
float &maxval);
453 #endif // VTBUILDERFRAMEH