00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #include "a2dprec.h"
00012
00013 #ifdef __BORLANDC__
00014 #pragma hdrstop
00015 #endif
00016
00017 #ifndef WX_PRECOMP
00018 #include "wx/wx.h"
00019 #endif
00020
00021 #include "wx/general/gen.h"
00022
00023 #if wxART2D_USE_CANEXTOBJ
00024 #include "wx/canextobj/canextmod.h"
00025 #endif //wxART2D_USE_CANEXTOBJ
00026
00027 #include "wx/editor/editmod.h"
00028
00029 #include <wx/tokenzr.h>
00030 #include <wx/regex.h>
00031
00032 #if wxUSE_STD_IOSTREAM
00033 #include "wx/ioswrap.h"
00034 #if wxUSE_IOSTREAMH
00035 #include <fstream.h>
00036 #include <strstrea.h>
00037 #else
00038 #include <fstream>
00039 #include <sstream>
00040 #endif
00041 #else
00042 #include "wx/wfstream.h"
00043 #endif
00044
00045
00046
00047
00048
00049
00050
00051 a2dCentralEditorCommandProcessor* a2dGetCmdhEditor()
00052 {
00053 return wxDynamicCast( a2dDocviewGlobals->GetDocviewCommandProcessor(), a2dCentralEditorCommandProcessor );
00054 }
00055
00056 IMPLEMENT_DYNAMIC_CLASS( a2dEditorModule, wxModule )
00057 IMPLEMENT_DYNAMIC_CLASS( a2dCommand_ShowDlg, a2dCommand )
00058 IMPLEMENT_DYNAMIC_CLASS(a2dCommand_ViewAsImageAdv, a2dCommand )
00059
00060 a2dEditorModule::a2dEditorModule()
00061 {
00062 m_currentCmdProc = NULL;
00063 AddDependency( CLASSINFO(a2dFreetypeModule) );
00064 AddDependency( CLASSINFO(a2dDocviewModule) );
00065 AddDependency( CLASSINFO(a2dArtBaseModule) );
00066 AddDependency( CLASSINFO(a2dCanvasModule) );
00067 }
00068
00069 bool a2dEditorModule::OnInit()
00070 {
00071
00072 #if defined(WXART2D_USINGDLL)
00073
00074
00075 a2dSmrtPtr<a2dCanvasObject> object = new a2dCanvasObject(0,0);
00076 a2dSmrtPtr<a2d3DShape> shape = new a2d3DShape(object, 1, 45);
00077 shape = NULL;
00078 #endif
00079
00080 m_prevCmdProc = a2dDocviewGlobals->GetDocviewCommandProcessor();
00081 m_currentCmdProc = new a2dCentralEditorCommandProcessor(m_prevCmdProc);
00082 a2dDocviewGlobals->SetDocviewCommandProcessor( m_currentCmdProc );
00083
00084 return true;
00085 }
00086
00087 void a2dEditorModule::OnExit()
00088 {
00089
00090
00091 a2dCentralEditorCommandProcessor* aCurrentCmdProc = wxDynamicCast(a2dDocviewGlobals->GetDocviewCommandProcessor(),a2dCentralEditorCommandProcessor);
00092 a2dDocviewGlobals->SetDocviewCommandProcessor( m_prevCmdProc );
00093 m_prevCmdProc = NULL;
00094 m_currentCmdProc = NULL;
00095 }
00096
00097
00098
00099
00100
00101
00102
00103
00104 const a2dMenuIdItem CmdMenu_PopTool( wxT("CmdMenu_PopTool") );
00105 const a2dMenuIdItem CmdMenu_InsertGroupRef( wxT("CmdMenu_InsertGroupRef"), _("&Insert Reference to canvas object"), _("Insert Reference to canvas object") );
00106 const a2dMenuIdItem CmdMenu_ShowDlgLayers( wxT("CmdMenu_ShowDlgLayers"), _("&Init Layers Document"), _("layer dialog initialized for editing layers document"), wxITEM_CHECK );
00107 const a2dMenuIdItem CmdMenu_ShowDlgLayersDocument( wxT("CmdMenu_ShowDlgLayersDocument"), _("&Init Layers Document"), _("layer dialog initialized for editing layers document"), wxITEM_CHECK );
00108 const a2dMenuIdItem CmdMenu_ShowDlgLayersGlobal( wxT("CmdMenu_ShowDlgLayersGlobal"), _("&Init Layer Global"), _("layer dialog initialized for editing layers global"), wxITEM_CHECK );
00109 const a2dMenuIdItem CmdMenu_ShowDlgLayerOrderDocument( wxT("CmdMenu_ShowDlgLayerOrderDocument"), _("&Order Layers Document"), _("order layer dialog initialized for layers document"), wxITEM_CHECK );
00110 const a2dMenuIdItem CmdMenu_ShowDlgLayerOrderGlobal( wxT("CmdMenu_ShowDlgLayerOrderGlobal"), _("&Order Layers Global"), _("order layer dialog initialized for layers global"), wxITEM_CHECK );
00111 const a2dMenuIdItem CmdMenu_ShowDlgTools( wxT("CmdMenu_ShowDlgTools"), _("&Tools Dialog"), _("tools dialog"), wxITEM_CHECK );
00112 const a2dMenuIdItem CmdMenu_ShowDlgStyle( wxT("CmdMenu_ShowDlgStyle"), _("&Style Dialog"), _("style dialog"), wxITEM_CHECK );
00113 const a2dMenuIdItem CmdMenu_ShowDlgSnap( wxT("CmdMenu_ShowDlgSnap"), _("&Snap Settings Dialog"), _("Snap Settings dialog"), wxITEM_CHECK );
00114 const a2dMenuIdItem CmdMenu_ShowDlgGroups( wxT("CmdMenu_ShowDlgGroups"), _("Set Groups Dialog"), _("To set groups of layers for use in boolean operations etc."), wxITEM_CHECK );
00115 const a2dMenuIdItem CmdMenu_ShowDlgIdentify( wxT("CmdMenu_ShowDlgIdentify"), _("&Identify Dialog"), _("Identify selected objects"), wxITEM_CHECK );
00116 const a2dMenuIdItem CmdMenu_ShowDlgCoordEntry( wxT("CmdMenu_ShowDlgCoordEntry"), _("&Coordinate Entry Dialog"), _("Coordinate Entry Dialog"), wxITEM_CHECK );
00117 const a2dMenuIdItem CmdMenu_ShowDlgMeasure( wxT("CmdMenu_ShowDlgMeasure"), _("&Measure Dialog"), _("Measure Dialog"), wxITEM_CHECK );
00118 const a2dMenuIdItem CmdMenu_ShowDlgStructure( wxT("CmdMenu_ShowDlgStructure"), _("&Structure Dialog"), _("shows structure dialog"), wxITEM_CHECK );
00119 const a2dMenuIdItem CmdMenu_ShowDlgStructureModal( wxT("CmdMenu_ShowDlgStructureModal"), _("&Structure Dialog"), _("shows structure dialog modal"), wxITEM_CHECK );
00120 const a2dMenuIdItem CmdMenu_ShowDlgPathSettings( wxT("CmdMenu_ShowDlgPathSettings"), _("&Path Dialog"), _("path settings dialog"), wxITEM_CHECK );
00121 const a2dMenuIdItem CmdMenu_ShowDlgSettings( wxT("CmdMenu_ShowDlgSettings"), _("&Settings Dialog"), _("settings dialog"), wxITEM_CHECK );
00122 const a2dMenuIdItem CmdMenu_ShowDlgTrans( wxT("CmdMenu_ShowDlgTrans"), _("&Transformation Dialog"), _("transform selected dialog"), wxITEM_CHECK );
00123 const a2dMenuIdItem CmdMenu_ShowDlgPropEdit( wxT("CmdMenu_ShowDlgPropEdit"), _("&Property Edit Dialog"), _("property edit dialog"), wxITEM_CHECK );
00124
00125 const a2dMenuIdItem CmdMenu_SetFont( wxT("CmdMenu_SetFont"), _("Set Current font"), _("used in a2dText object") );
00126
00127 const a2dMenuIdItem CmdMenu_PushTool_Zoom( wxT("CmdMenu_PushTool_Zoom") , _("Zoom in and out"), _("Zoom in to the regtangle dragged") );
00128 const a2dMenuIdItem CmdMenu_PushTool_FastZoom( wxT("CmdMenu_PushTool_FastZoom") , _("Zoom in and out"), _("Zoom in to the regtangle dragged") );
00129 const a2dMenuIdItem CmdMenu_PushTool_Select( wxT("CmdMenu_PushTool_Select") , _("Select Objects"), _("select object using mouse") );
00130 const a2dMenuIdItem CmdMenu_PushTool_Select2( wxT("CmdMenu_PushTool_Select2") , _("Select Objects 2"), _("select object using mouse") );
00131 const a2dMenuIdItem CmdMenu_PushTool_FastSelect( wxT("CmdMenu_PushTool_FastSelect") , _("Select Objects"), _("select object using mouse") );
00132 const a2dMenuIdItem CmdMenu_PushTool_FastSelect2( wxT("CmdMenu_PushTool_FastSelect2") , _("Select Objects"), _("select object using mouse") );
00133 const a2dMenuIdItem CmdMenu_PushTool_RecursiveEdit( wxT("CmdMenu_PushTool_RecursiveEdit") , _("Edit"), _("Edit a objects using mouse") );
00134 const a2dMenuIdItem CmdMenu_PushTool_MultiEdit( wxT("CmdMenu_PushTool_MultiEdit") , _("Edit Matrix"), _("Edit a matrix of objects using mouse") );
00135 const a2dMenuIdItem CmdMenu_PushTool_Drag( wxT("CmdMenu_PushTool_Drag"), _("Drag Objects"), _("Drag objects using mouse also (Ctrl Mouse LD)") );
00136 const a2dMenuIdItem CmdMenu_PushTool_DragOriginal( wxT("CmdMenu_PushTool_DragOriginal"), _("Drag Original Objects"), _("Drag original objects using mouse") );
00137 const a2dMenuIdItem CmdMenu_PushTool_RenderImageZoom( wxT("CmdMenu_PushTool_RenderImageZoom"), _("Zoom in and out a a2dRenderImage object"), _("Zoom in to the regtangle dragged on a a2dRenderImage object") );
00138 const a2dMenuIdItem CmdMenu_PushTool_Copy( wxT("CmdMenu_PushTool_Copy"), _("Copy Objects"), _("Copy objects using mouse") );
00139 const a2dMenuIdItem CmdMenu_PushTool_Rotate( wxT("CmdMenu_PushTool_Rotate"), _("Rotate Objects"), _("Rotate objects using mouse") );
00140 const a2dMenuIdItem CmdMenu_PushTool_Delete( wxT("CmdMenu_PushTool_Delete"), _("Delete Objects"), _("Delete objects using mouse also (Shift Mouse LD)") );
00141 const a2dMenuIdItem CmdMenu_PushTool_DrawText( wxT("CmdMenu_PushTool_DrawText"), _("Insert Text"), _("insert text") );
00142 const a2dMenuIdItem CmdMenu_PushTool_Image( wxT("CmdMenu_PushTool_Image"), _("Insert Image"), _("insert a2dImage in dragged rectangle, from a file") );
00143 const a2dMenuIdItem CmdMenu_PushTool_DrawRectangle( wxT("CmdMenu_PushTool_DrawRectangle"), _("Draw Rectangle"), _("draw rectangle") );
00144 const a2dMenuIdItem CmdMenu_PushTool_DrawRectangleFast( wxT("CmdMenu_PushTool_DrawRectangleFast"), _("Draw Rectangle"), _("draw rectangle") );
00145 const a2dMenuIdItem CmdMenu_PushTool_DrawCircle( wxT("CmdMenu_PushTool_DrawCircle"), _("Draw Circle"), _("draw Circle") );
00146 const a2dMenuIdItem CmdMenu_PushTool_DrawCircleFast( wxT("CmdMenu_PushTool_DrawCircleFast"), _("Draw Circle"), _("draw Circle") );
00147 const a2dMenuIdItem CmdMenu_PushTool_DrawLine( wxT("CmdMenu_PushTool_DrawLine"), _("Draw line with ends"), _("add a line with ends using mouse") );
00148 const a2dMenuIdItem CmdMenu_PushTool_DrawLineScaledArrow( wxT("CmdMenu_PushTool_DrawLineScaledArrow"), _("Draw line with arrows"), _("add a line with arrows using mouse") );
00149 const a2dMenuIdItem CmdMenu_PushTool_DrawEllipse( wxT("CmdMenu_PushTool_DrawEllipse"), _("Draw Ellipse"), _("add a ellipse using mouse") );
00150 const a2dMenuIdItem CmdMenu_PushTool_DrawEllipticArc( wxT("CmdMenu_PushTool_DrawEllipticArc"), _("Draw Elliptic Arc"), _("add a Elliptic Arc using mouse") );
00151 const a2dMenuIdItem CmdMenu_PushTool_DrawEllipticArc_Chord( wxT("CmdMenu_PushTool_DrawEllipticArc_Chord"), _("Draw Elliptic Arc Chord"), _("add a Elliptic Arc using mouse") );
00152 const a2dMenuIdItem CmdMenu_PushTool_DrawArc( wxT("CmdMenu_PushTool_DrawArc"), _("Draw Arc"), _("add a arc using mouse") );
00153 const a2dMenuIdItem CmdMenu_PushTool_DrawArc_Chord( wxT("CmdMenu_PushTool_DrawArc_Chord"), _("Draw Arc Chord"), _("add a arc using mouse") );
00154 const a2dMenuIdItem CmdMenu_PushTool_DrawPolylineL( wxT("CmdMenu_PushTool_DrawPolylineL"), _("Draw polyline"), _("add a polyline using mouse") );
00155 const a2dMenuIdItem CmdMenu_PushTool_DrawPolylineL_Splined( wxT("CmdMenu_PushTool_DrawPolylineL_Splined"), _("Draw splined polyline"), _("add a splined polyline using mouse") );
00156 const a2dMenuIdItem CmdMenu_PushTool_DrawPolylineLFast( wxT("CmdMenu_PushTool_DrawPolylineLFast"), _("Draw polyline"), _("add a polyline using mouse") );
00157 const a2dMenuIdItem CmdMenu_PushTool_DrawPolygonL( wxT("CmdMenu_PushTool_DrawPolygonL"), _("Draw polygon"), _("add a polygon using mouse") );
00158 const a2dMenuIdItem CmdMenu_PushTool_DrawPolygonL_Splined( wxT("CmdMenu_PushTool_DrawPolygonL_Splined"), _("Draw splined polygon"), _("add a splined polygon using mouse") );
00159 const a2dMenuIdItem CmdMenu_PushTool_DrawPolygonLFast( wxT("CmdMenu_PushTool_DrawPolygonLFast"), _("Draw polygon"), _("add a polygon using mouse") );
00160 const a2dMenuIdItem CmdMenu_PushTool_Property( wxT("CmdMenu_PushTool_Property"), _("Edit Properties"), _("edit the properties of objects") );
00161 const a2dMenuIdItem CmdMenu_PushTool_DragMulti( wxT("CmdMenu_PushTool_DragMulti"), _("Drag Selected Objects"), _("select object using mouse") );
00162 const a2dMenuIdItem CmdMenu_PushTool_FastDragMulti( wxT("CmdMenu_PushTool_FastDragMulti"), _("Drag Selected Objects"), _("select object using mouse") );
00163 const a2dMenuIdItem CmdMenu_PushTool_CopyMulti( wxT("CmdMenu_PushTool_CopyMulti"), _("Copy Selected Objects"), _("select object using mouse") );
00164 const a2dMenuIdItem CmdMenu_PushTool_FastCopyMulti( wxT("CmdMenu_PushTool_FastCopyMulti"), _("Copy Selected Objects"), _("select object using mouse") );
00165 const a2dMenuIdItem CmdMenu_PushTool_Measure( wxT("CmdMenu_PushTool_Measure"), _("Measure"), _("measure along a polyline using mouse") );
00166 const a2dMenuIdItem CmdMenu_PushTool_DrawWirePolylineL( wxT("CmdMenu_PushTool_DrawWirePolylineL"), _("Wire Tool"), _("Add wire between pins") );
00167 const a2dMenuIdItem CmdMenu_PushTool_DrawVPath( wxT("CmdMenu_PushTool_DrawVPath"), _("Draw vector path"), _("add a vector path using mouse") );
00168
00169 const a2dMenuIdItem CmdMenu_SetMasterTool_SelectFirst( wxT("CmdMenu_SetMasterTool_SelectFirst"), _("Edit Mode select first"), _("set the main tool in mode zselect first"), wxITEM_CHECK );
00170 const a2dMenuIdItem CmdMenu_SetMasterTool_ZoomFirst( wxT("CmdMenu_SetMasterTool_ZoomFirst"), _("Edit Mode zoom first"), _("set the main tool in mode zoom first"), wxITEM_CHECK );
00171
00172 const a2dMenuIdItem CmdMenu_LineBegin( wxT("CmdMenu_LineBegin"), _("begin object"), _("(poly)Line tool begin Object") );
00173 const a2dMenuIdItem CmdMenu_LineEnd( wxT("CmdMenu_LineEnd"), _("end object"), _("(poly)Line tool end Object") );
00174 const a2dMenuIdItem CmdMenu_LineScale( wxT("CmdMenu_LineScale"), _("scaling of point object"), _("(poly)Line tool begin&end Object scalling") );
00175
00176 const a2dMenuIdItem CmdMenu_ViewAsImage( wxT("CmdMenu_ViewAsImage") );
00177 const a2dMenuIdItem CmdMenu_ViewAsImage_Png( wxT("CmdMenu_ViewAsImage_Png"), _("PNG bitmap"), _("Save as PNG bitmap file") );
00178 const a2dMenuIdItem CmdMenu_ViewAsImage_Bmp( wxT("CmdMenu_ViewAsImage_Bmp"), _("BMP bitmap"), _("Save as BMP bitmap file") );
00179 const a2dMenuIdItem CmdMenu_DocumentAsImage_Png( wxT("CmdMenu_DocumentAsImage_Png"), _("Document PNG bitmap"), _("Save as PNG bitmap file") );
00180 const a2dMenuIdItem CmdMenu_DocumentAsImage_Bmp( wxT("CmdMenu_DocumentAsImage_Bmp"), _("Document BMP bitmap"), _("Save as BMP bitmap file") );
00181 const a2dMenuIdItem CmdMenu_DocumentAsOdbXml( wxT("CmdMenu_DocumentAsOdbXml"), _("Document As OdbXml"), _("Save Document As Odb Xml") );
00182 const a2dMenuIdItem CmdMenu_ViewAsSvg( wxT("CmdMenu_ViewAsSvg"), _("SVG file"), _("Save view as SVG file") );
00183
00184 const a2dMenuIdItem CmdMenu_SetLayerDlg( wxT("CmdMenu_SetLayerDlg"), _("Set Current layer"), _("set the current layer for drawing upon") );
00185 const a2dMenuIdItem CmdMenu_SetLayerDlgModeless( wxT("CmdMenu_SetLayerDlgModeless"), _("layer dialog"), _("set the current layer for drawing upon"), wxITEM_CHECK );
00186 const a2dMenuIdItem CmdMenu_SetTargetDlg( wxT("CmdMenu_SetTargetDlg"), _("Set Current Target layer"), _("set the current target layer for actions involving a target") );
00187 const a2dMenuIdItem CmdMenu_SetBackgroundStyle( wxT("CmdMenu_SetBackgroundStyle"), _("Set BackGround"), _("Set Style for Background of canvas") );
00188
00189 const a2dMenuIdItem CmdMenu_Selected_MoveXY( wxT("CmdMenu_Selected_MoveXY"), _("move selected relative X,Y"), _("move selected objects with X,Y") );
00190 const a2dMenuIdItem CmdMenu_Selected_MoveLayer( wxT("CmdMenu_Selected_MoveLayer"), _("move selected to Layer"), _("move selected objects to layer") );
00191 const a2dMenuIdItem CmdMenu_Selected_CopyXY( wxT("CmdMenu_Selected_CopyXY"), _("copy selected relative X,Y"), _("copy selected objects with X,Y") );
00192 const a2dMenuIdItem CmdMenu_Selected_CopyLayer( wxT("CmdMenu_Selected_CopyLayer"), _("copy selected to Layer"), _("copy selected objects to layer") );
00193 const a2dMenuIdItem CmdMenu_Selected_Transform( wxT("CmdMenu_Selected_Transform"), _("transform selected"), _("transform selected objects") );
00194
00195
00196
00197
00198 const a2dCommandId a2dCommand_PushTool::Id( wxT("PushTool") );
00199 const a2dCommandId a2dCommand_ShowDlg::Id( wxT("ShowDlg") );
00200 const a2dCommandId a2dCommand_ViewAsImageAdv::Id( wxT("ViewAsImageAdv") );
00201
00202 const a2dCommandId a2dCentralEditorCommandProcessor::COMID_PopTool( wxT("PopTool") );
00203 const a2dCommandId a2dCentralEditorCommandProcessor::COMID_InsertGroupRef( wxT("InsertGroupRef") );
00204 const a2dCommandId a2dCentralEditorCommandProcessor::COMID_ShowDlgLayers( wxT("ShowDlgLayers") );
00205 const a2dCommandId a2dCentralEditorCommandProcessor::COMID_ShowDlgLayersDocument( wxT("ShowDlgLayersDocument") );
00206 const a2dCommandId a2dCentralEditorCommandProcessor::COMID_ShowDlgLayersGlobal( wxT("ShowDlgLayersGlobal") );
00207 const a2dCommandId a2dCentralEditorCommandProcessor::COMID_ShowDlgLayerOrderDocument( wxT("ShowDlgLayerOrderDocument") );
00208 const a2dCommandId a2dCentralEditorCommandProcessor::COMID_ShowDlgLayerOrderGlobal( wxT("ShowDlgLayerOrderGlobal") );
00209 const a2dCommandId a2dCentralEditorCommandProcessor::COMID_ShowDlgTools( wxT("ShowDlgTools") );
00210 const a2dCommandId a2dCentralEditorCommandProcessor::COMID_ShowDlgStyle( wxT("ShowDlgStyle") );
00211 const a2dCommandId a2dCentralEditorCommandProcessor::COMID_ShowDlgSnap( wxT("ShowDlgSnap") );
00212 const a2dCommandId a2dCentralEditorCommandProcessor::COMID_ShowDlgGroups( wxT("ShowDlgGroups") );
00213 const a2dCommandId a2dCentralEditorCommandProcessor::COMID_ShowDlgIdentify( wxT("ShowDlgIdentify") );
00214 const a2dCommandId a2dCentralEditorCommandProcessor::COMID_ShowDlgCoordEntry( wxT("ShowDlgCoordEntry") );
00215 const a2dCommandId a2dCentralEditorCommandProcessor::COMID_ShowDlgMeasure( wxT("ShowDlgMeasure") );
00216 const a2dCommandId a2dCentralEditorCommandProcessor::COMID_ShowDlgStructure( wxT("ShowDlgStructure") );
00217 const a2dCommandId a2dCentralEditorCommandProcessor::COMID_ShowDlgPathSettings( wxT("ShowDlgPathSettings") );
00218 const a2dCommandId a2dCentralEditorCommandProcessor::COMID_ShowDlgSettings( wxT("ShowDlgSettings") );
00219 const a2dCommandId a2dCentralEditorCommandProcessor::COMID_ShowDlgTrans( wxT("ShowDlgTrans") );
00220 const a2dCommandId a2dCentralEditorCommandProcessor::COMID_ShowDlgPropEdit( wxT("ShowDlgPropEdit") );
00221
00222
00223 IMPLEMENT_DYNAMIC_CLASS( a2dCommand_PushTool, a2dCommand )
00224
00225 IMPLEMENT_CLASS( a2dCentralEditorCommandProcessor, a2dCentralCanvasCommandProcessor )
00226
00227 A2D_BEGIN_EVENT_TABLE( a2dCentralEditorCommandProcessor, a2dCentralCanvasCommandProcessor )
00228
00229 A2D_EVT_MENU( CmdMenu_PopTool.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00230 A2D_EVT_MENU( CmdMenu_InsertGroupRef.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00231 A2D_EVT_MENU( CmdMenu_ShowDlgLayers.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00232 A2D_EVT_MENU( CmdMenu_ShowDlgLayersDocument.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00233 A2D_EVT_MENU( CmdMenu_ShowDlgLayersGlobal.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00234 A2D_EVT_MENU( CmdMenu_ShowDlgLayerOrderDocument.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00235 A2D_EVT_MENU( CmdMenu_ShowDlgLayerOrderGlobal.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00236 A2D_EVT_MENU( CmdMenu_ShowDlgTools.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00237 A2D_EVT_MENU( CmdMenu_ShowDlgStyle.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00238 A2D_EVT_MENU( CmdMenu_ShowDlgSnap.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00239 A2D_EVT_MENU( CmdMenu_ShowDlgGroups.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00240 A2D_EVT_MENU( CmdMenu_ShowDlgIdentify.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00241 A2D_EVT_MENU( CmdMenu_ShowDlgCoordEntry.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00242 A2D_EVT_MENU( CmdMenu_ShowDlgMeasure.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00243 A2D_EVT_MENU( CmdMenu_ShowDlgStructure.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00244 A2D_EVT_MENU( CmdMenu_ShowDlgStructureModal.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00245 A2D_EVT_MENU( CmdMenu_ShowDlgPathSettings.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00246 A2D_EVT_MENU( CmdMenu_ShowDlgSettings.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00247 A2D_EVT_MENU( CmdMenu_ShowDlgTrans.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00248 A2D_EVT_MENU( CmdMenu_ShowDlgPropEdit.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00249
00250 A2D_EVT_MENU( CmdMenu_SetFont.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00251
00252 A2D_EVT_UPDATE_UI( CmdMenu_ShowDlgLayers.GetId(), a2dCentralEditorCommandProcessor::OnUpdateMenu )
00253 A2D_EVT_UPDATE_UI( CmdMenu_ShowDlgLayersDocument.GetId(), a2dCentralEditorCommandProcessor::OnUpdateMenu )
00254 A2D_EVT_UPDATE_UI( CmdMenu_ShowDlgLayersGlobal.GetId(), a2dCentralEditorCommandProcessor::OnUpdateMenu )
00255 A2D_EVT_UPDATE_UI( CmdMenu_ShowDlgLayerOrderDocument.GetId(), a2dCentralEditorCommandProcessor::OnUpdateMenu )
00256 A2D_EVT_UPDATE_UI( CmdMenu_ShowDlgLayerOrderGlobal.GetId(), a2dCentralEditorCommandProcessor::OnUpdateMenu )
00257 A2D_EVT_UPDATE_UI( CmdMenu_ShowDlgTools.GetId(), a2dCentralEditorCommandProcessor::OnUpdateMenu )
00258 A2D_EVT_UPDATE_UI( CmdMenu_ShowDlgStyle.GetId(), a2dCentralEditorCommandProcessor::OnUpdateMenu )
00259 A2D_EVT_UPDATE_UI( CmdMenu_ShowDlgSnap.GetId(), a2dCentralEditorCommandProcessor::OnUpdateMenu )
00260 A2D_EVT_UPDATE_UI( CmdMenu_ShowDlgGroups.GetId(), a2dCentralEditorCommandProcessor::OnUpdateMenu )
00261 A2D_EVT_UPDATE_UI( CmdMenu_ShowDlgIdentify.GetId(), a2dCentralEditorCommandProcessor::OnUpdateMenu )
00262 A2D_EVT_UPDATE_UI( CmdMenu_ShowDlgCoordEntry.GetId(), a2dCentralEditorCommandProcessor::OnUpdateMenu )
00263 A2D_EVT_UPDATE_UI( CmdMenu_ShowDlgMeasure.GetId(), a2dCentralEditorCommandProcessor::OnUpdateMenu )
00264 A2D_EVT_UPDATE_UI( CmdMenu_ShowDlgStructure.GetId(), a2dCentralEditorCommandProcessor::OnUpdateMenu )
00265 A2D_EVT_UPDATE_UI( CmdMenu_ShowDlgStructureModal.GetId(), a2dCentralEditorCommandProcessor::OnUpdateMenu )
00266 A2D_EVT_UPDATE_UI( CmdMenu_ShowDlgPathSettings.GetId(), a2dCentralEditorCommandProcessor::OnUpdateMenu )
00267 A2D_EVT_UPDATE_UI( CmdMenu_ShowDlgSettings.GetId(), a2dCentralEditorCommandProcessor::OnUpdateMenu )
00268 A2D_EVT_UPDATE_UI( CmdMenu_ShowDlgTrans.GetId(), a2dCentralEditorCommandProcessor::OnUpdateMenu )
00269 A2D_EVT_UPDATE_UI( CmdMenu_ShowDlgPropEdit.GetId(), a2dCentralEditorCommandProcessor::OnUpdateMenu )
00270
00271 A2D_EVT_MENU( CmdMenu_PushTool_Zoom.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00272 A2D_EVT_MENU( CmdMenu_PushTool_FastZoom.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00273 A2D_EVT_MENU( CmdMenu_PushTool_Select.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00274 A2D_EVT_MENU( CmdMenu_PushTool_Select2.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00275 A2D_EVT_MENU( CmdMenu_PushTool_FastSelect.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00276 A2D_EVT_MENU( CmdMenu_PushTool_FastSelect2.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00277 A2D_EVT_MENU( CmdMenu_PushTool_RecursiveEdit.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00278 A2D_EVT_MENU( CmdMenu_PushTool_MultiEdit.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00279 A2D_EVT_MENU( CmdMenu_PushTool_Drag.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00280 A2D_EVT_MENU( CmdMenu_PushTool_DragOriginal.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00281 A2D_EVT_MENU( CmdMenu_PushTool_RenderImageZoom.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00282 A2D_EVT_MENU( CmdMenu_PushTool_Copy.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00283 A2D_EVT_MENU( CmdMenu_PushTool_Rotate.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00284 A2D_EVT_MENU( CmdMenu_PushTool_Delete.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00285 A2D_EVT_MENU( CmdMenu_PushTool_DrawText.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00286 A2D_EVT_MENU( CmdMenu_PushTool_Image.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00287 A2D_EVT_MENU( CmdMenu_PushTool_DrawRectangleFast.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00288 A2D_EVT_MENU( CmdMenu_PushTool_DrawRectangle.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00289 A2D_EVT_MENU( CmdMenu_PushTool_DrawCircle.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00290 A2D_EVT_MENU( CmdMenu_PushTool_DrawCircleFast.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00291 A2D_EVT_MENU( CmdMenu_PushTool_DrawLine.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00292 A2D_EVT_MENU( CmdMenu_PushTool_DrawLineScaledArrow.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00293 A2D_EVT_MENU( CmdMenu_PushTool_DrawEllipse.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00294 A2D_EVT_MENU( CmdMenu_PushTool_DrawEllipticArc.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00295 A2D_EVT_MENU( CmdMenu_PushTool_DrawEllipticArc_Chord.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00296 A2D_EVT_MENU( CmdMenu_PushTool_DrawArc.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00297 A2D_EVT_MENU( CmdMenu_PushTool_DrawArc_Chord.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00298 A2D_EVT_MENU( CmdMenu_PushTool_DrawPolylineL.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00299 A2D_EVT_MENU( CmdMenu_PushTool_DrawPolylineL_Splined.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00300 A2D_EVT_MENU( CmdMenu_PushTool_DrawPolylineLFast.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00301 A2D_EVT_MENU( CmdMenu_PushTool_DrawPolygonL.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00302 A2D_EVT_MENU( CmdMenu_PushTool_DrawPolygonL_Splined.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00303 A2D_EVT_MENU( CmdMenu_PushTool_DrawPolygonLFast.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00304 A2D_EVT_MENU( CmdMenu_PushTool_Property.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00305 A2D_EVT_MENU( CmdMenu_PushTool_DragMulti.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00306 A2D_EVT_MENU( CmdMenu_PushTool_FastDragMulti.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00307 A2D_EVT_MENU( CmdMenu_PushTool_CopyMulti.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00308 A2D_EVT_MENU( CmdMenu_PushTool_FastCopyMulti.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00309 A2D_EVT_MENU( CmdMenu_PushTool_Measure.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00310 A2D_EVT_MENU( CmdMenu_PushTool_DrawWirePolylineL.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00311 A2D_EVT_MENU( CmdMenu_PushTool_DrawVPath.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00312
00313 A2D_EVT_MENU( CmdMenu_SetMasterTool_SelectFirst.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00314 A2D_EVT_MENU( CmdMenu_SetMasterTool_ZoomFirst.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00315
00316 A2D_EVT_MENU( CmdMenu_LineBegin.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00317 A2D_EVT_MENU( CmdMenu_LineEnd.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00318 A2D_EVT_MENU( CmdMenu_LineScale.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00319
00320 A2D_EVT_MENU( CmdMenu_SetLayerDlg.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00321 A2D_EVT_MENU( CmdMenu_SetTargetDlg.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00322 A2D_EVT_MENU( CmdMenu_SetLayerDlgModeless.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00323 A2D_EVT_MENU( CmdMenu_SetBackgroundStyle.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00324
00325 A2D_EVT_UPDATE_UI( CmdMenu_SetLayerDlgModeless.GetId(), a2dCentralEditorCommandProcessor::OnUpdateMenu )
00326 A2D_EVT_UPDATE_UI( CmdMenu_SetMasterTool_SelectFirst.GetId(), a2dCentralEditorCommandProcessor::OnUpdateMenu )
00327 A2D_EVT_UPDATE_UI( CmdMenu_SetMasterTool_ZoomFirst.GetId(), a2dCentralEditorCommandProcessor::OnUpdateMenu )
00328
00329 A2D_EVT_MENU( CmdMenu_ViewAsImage.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00330 A2D_EVT_MENU( CmdMenu_ViewAsImage_Png.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00331 A2D_EVT_MENU( CmdMenu_ViewAsImage_Bmp.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00332 A2D_EVT_MENU( CmdMenu_DocumentAsImage_Png.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00333 A2D_EVT_MENU( CmdMenu_DocumentAsImage_Bmp.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00334 A2D_EVT_MENU( CmdMenu_DocumentAsOdbXml.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00335 A2D_EVT_MENU( CmdMenu_ViewAsSvg.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00336
00337 A2D_EVT_MENU( CmdMenu_Selected_MoveXY.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00338 A2D_EVT_MENU( CmdMenu_Selected_MoveLayer.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00339 A2D_EVT_MENU( CmdMenu_Selected_CopyXY.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00340 A2D_EVT_MENU( CmdMenu_Selected_CopyLayer.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00341 A2D_EVT_MENU( CmdMenu_Selected_Transform.GetId(), a2dCentralEditorCommandProcessor::OnMenu )
00342
00343 A2D_EVT_PROPOBJECT_EDITPROPERTIES_EVENT( a2dCentralEditorCommandProcessor::OnEditProperties )
00344
00345 A2D_END_EVENT_TABLE()
00346
00347 void a2dCentralEditorCommandProcessor::OnEditProperties( a2dPropertyEditEvent& event )
00348 {
00349 static long lastProcessedEventTimeStamp = -1;
00350 if( lastProcessedEventTimeStamp == event.GetTimestamp() )
00351 return;
00352 lastProcessedEventTimeStamp = event.GetTimestamp();
00353
00354 a2dNamedPropertyList* propertylist;
00355 propertylist = event.GetPropertyList();
00356
00357 a2dCanvasView* drawer = CheckDrawer();
00358 if ( !drawer )
00359 return;
00360 a2dCanvasDocument* doc = CheckCanvasDocument();
00361 if ( !doc )
00362 return;
00363
00364 a2dEditProperties dlg( NULL, (a2dObject*) event.GetEventObject(), propertylist );
00365
00366 if ( dlg.ShowModal() == wxID_OK)
00367 event.SetEdited( true );
00368 else
00369 event.SetEdited( false );
00370 }
00371
00372 void a2dCentralEditorCommandProcessor::OnUpdateMenu(wxUpdateUIEvent& event)
00373 {
00374 if ( event.GetId() == CmdMenu_InsertGroupRef.GetId() )
00375 {
00376 }
00377 else if ( event.GetId() == CmdMenu_ShowDlgLayers.GetId() ||
00378 event.GetId() == CmdMenu_ShowDlgLayersDocument.GetId() ||
00379 event.GetId() == CmdMenu_ShowDlgLayersGlobal.GetId()
00380 )
00381 {
00382 event.Check( IsShownLayerPropertiesDialog() );
00383 }
00384 else if ( event.GetId() == CmdMenu_ShowDlgLayerOrderDocument.GetId() ||
00385 event.GetId() == CmdMenu_ShowDlgLayerOrderGlobal.GetId() )
00386 {
00387 event.Check( IsShownLayerOrderDialog() );
00388 }
00389 else if ( event.GetId() == CmdMenu_ShowDlgTools.GetId() )
00390 {
00391 event.Check( IsShownToolDlg() );
00392 }
00393 else if ( event.GetId() == CmdMenu_ShowDlgStyle.GetId() )
00394 {
00395 event.Check( IsShowna2dStyleDialog() );
00396 }
00397 else if ( event.GetId() == CmdMenu_ShowDlgSnap.GetId() )
00398 {
00399 event.Check( IsShowna2dSnapSettings() );
00400 }
00401 else if ( event.GetId() == CmdMenu_ShowDlgGroups.GetId() )
00402 {
00403 }
00404 else if ( event.GetId() == CmdMenu_ShowDlgIdentify.GetId() )
00405 {
00406 event.Check( IsShownIdentifyDialog() );
00407 }
00408 else if ( event.GetId() == CmdMenu_ShowDlgCoordEntry.GetId() )
00409 {
00410 event.Check( IsShowna2dCoordinateEntry() );
00411 }
00412 else if ( event.GetId() == CmdMenu_ShowDlgMeasure.GetId() )
00413 {
00414 event.Check( IsShowna2dMeasureDlg() );
00415 }
00416 else if ( event.GetId() == CmdMenu_ShowDlgStructureModal.GetId() )
00417 {
00418 event.Check( IsShownStructureDlg() );
00419 }
00420 else if ( event.GetId() == CmdMenu_ShowDlgStructure.GetId() )
00421 {
00422 }
00423 else if ( event.GetId() == CmdMenu_ShowDlgPathSettings.GetId() )
00424 {
00425 event.Check( IsShowna2dPathSettings() );
00426 }
00427 else if ( event.GetId() == CmdMenu_ShowDlgSettings.GetId() )
00428 {
00429 event.Check( IsShowna2dSettings() );
00430 }
00431 else if ( event.GetId() == CmdMenu_ShowDlgTrans.GetId() )
00432 {
00433 event.Check( IsShowna2dTransDlg() );
00434 }
00435 else if ( event.GetId() == CmdMenu_ShowDlgPropEdit.GetId() )
00436 {
00437 event.Check( IsShownPropEditDlg() );
00438 }
00439 else if ( event.GetId() == CmdMenu_SetLayerDlgModeless.GetId() )
00440 {
00441 event.Check( m_layerChooseDlg != NULL && !m_layerChooseDlg->IsModal() && m_layerChooseDlg->IsShown() );
00442 }
00443 else if ( event.GetId() == CmdMenu_SetMasterTool_SelectFirst.GetId() )
00444 {
00445 a2dCanvasView* drawer = CheckDrawer();
00446 if ( !drawer )
00447 return;
00448 a2dStToolContr* contr = wxDynamicCast( drawer->GetCanvasToolContr(), a2dStToolContr );
00449 if ( !contr )
00450 return;
00451
00452 event.Check( wxDynamicCast( contr->GetFirstTool(), a2dMasterDrawSelectFirst) != NULL );
00453 }
00454 else if ( event.GetId() == CmdMenu_SetMasterTool_ZoomFirst.GetId() )
00455 {
00456 a2dCanvasView* drawer = CheckDrawer();
00457 if ( !drawer )
00458 return;
00459 a2dStToolContr* contr = wxDynamicCast( drawer->GetCanvasToolContr(), a2dStToolContr );
00460 if ( !contr )
00461 return;
00462
00463 event.Check( wxDynamicCast( contr->GetFirstTool(), a2dMasterDrawZoomFirst) != NULL );
00464 }
00465 }
00466
00467 void a2dCentralEditorCommandProcessor::OnMenu( wxCommandEvent& event )
00468 {
00469 bool onTop = true;
00470 long style = wxDEFAULT_DIALOG_STYLE;
00471 if ( !onTop )
00472 style |= wxSTAY_ON_TOP;
00473
00474 bool found = false;
00475 if ( event.GetId() == CmdMenu_PopTool.GetId() )
00476 {
00477 }
00478 else if ( event.GetId() == CmdMenu_PushTool_Zoom.GetId() )
00479 {
00480 found = true;
00481 Submit( new a2dCommand_PushTool( a2dZoomTool::COMID_PushTool_Zoom ) );
00482 }
00483 else if ( event.GetId() == CmdMenu_PushTool_Select.GetId() )
00484 {
00485 found = true;
00486 Submit( new a2dCommand_PushTool( a2dSelectTool::COMID_PushTool_Select ) );
00487 }
00488 else if ( event.GetId() == CmdMenu_PushTool_Select2.GetId() )
00489 {
00490 found = true;
00491 Submit( new a2dCommand_PushTool( a2dCommand_PushTool::Args().which( a2dSelectTool::COMID_PushTool_Select ).shiftadd( true ) ));
00492 }
00493 else if ( event.GetId() == CmdMenu_PushTool_FastSelect.GetId() )
00494 {
00495 found = true;
00496 Submit( new a2dCommand_PushTool( a2dFastSelect::COMID_PushTool_FastSelect ) );
00497 }
00498 else if ( event.GetId() == CmdMenu_PushTool_FastSelect2.GetId() )
00499 {
00500 found = true;
00501 Submit( new a2dCommand_PushTool( a2dCommand_PushTool::Args().which( a2dFastSelect::COMID_PushTool_FastSelect ).shiftadd( true ) ));
00502 }
00503 else if ( event.GetId() == CmdMenu_PushTool_RecursiveEdit.GetId() )
00504 {
00505 found = true;
00506 Submit( new a2dCommand_PushTool( a2dRecursiveEditTool::COMID_PushTool_RecursiveEdit ) );
00507 }
00508 else if ( event.GetId() == CmdMenu_PushTool_MultiEdit.GetId() )
00509 {
00510 found = true;
00511 Submit( new a2dCommand_PushTool( a2dMultiEditTool::COMID_PushTool_MultiEdit ) );
00512 }
00513 else if ( event.GetId() == CmdMenu_PushTool_DragOriginal.GetId() )
00514 {
00515 found = true;
00516 Submit( new a2dCommand_PushTool( a2dDragOrgTool::COMID_PushTool_DragOrg ) );
00517 }
00518 else if ( event.GetId() == CmdMenu_PushTool_RenderImageZoom.GetId() )
00519 {
00520 found = true;
00521 Submit( new a2dCommand_PushTool( a2dRenderImageZoomTool::COMID_PushTool_RenderImageZoom ) );
00522 }
00523 else if ( event.GetId() == CmdMenu_PushTool_Drag.GetId() )
00524 {
00525 found = true;
00526 Submit( new a2dCommand_PushTool( a2dDragTool::COMID_PushTool_Drag ) );
00527 }
00528 else if ( event.GetId() == CmdMenu_PushTool_Copy.GetId() )
00529 {
00530 found = true;
00531 Submit( new a2dCommand_PushTool( a2dCopyTool::COMID_PushTool_Copy ) );
00532 }
00533 else if ( event.GetId() == CmdMenu_PushTool_Rotate.GetId() )
00534 {
00535 found = true;
00536 Submit( new a2dCommand_PushTool( a2dRotateTool::COMID_PushTool_Rotate ) );
00537 }
00538 else if ( event.GetId() == CmdMenu_PushTool_Delete.GetId() )
00539 {
00540 found = true;
00541 Submit( new a2dCommand_PushTool( a2dDeleteTool::COMID_PushTool_Delete ) );
00542 }
00543 else if ( event.GetId() == CmdMenu_PushTool_DrawText.GetId() )
00544 {
00545 found = true;
00546 Submit( new a2dCommand_PushTool( a2dDrawTextTool::COMID_PushTool_DrawText ) );
00547 }
00548 else if ( event.GetId() == CmdMenu_PushTool_Image.GetId() )
00549 {
00550 found = true;
00551 Submit( new a2dCommand_PushTool( a2dImageTool::COMID_PushTool_Image ) );
00552 }
00553 else if ( event.GetId() == CmdMenu_PushTool_DrawRectangleFast.GetId() )
00554 {
00555 found = true;
00556 Submit( new a2dCommand_PushTool(a2dDrawRectangleToolFast::COMID_PushTool_DrawRectangleFast) );
00557 }
00558 else if ( event.GetId() == CmdMenu_PushTool_DrawCircleFast.GetId() )
00559 {
00560 found = true;
00561 Submit( new a2dCommand_PushTool(a2dDrawCircleToolFast::COMID_PushTool_DrawCircleFast) );
00562 }
00563 else if ( event.GetId() == CmdMenu_PushTool_DrawLine.GetId() )
00564 {
00565 found = true;
00566 Submit( new a2dCommand_PushTool( a2dDrawLineTool::COMID_PushTool_DrawLine ) );
00567 }
00568 else if ( event.GetId() == CmdMenu_PushTool_DrawLineScaledArrow.GetId() )
00569 {
00570 found = true;
00571 Submit( new a2dCommand_PushTool( a2dDrawLineTool::COMID_PushTool_DrawLineScaledArrow ) );
00572 }
00573 else if ( event.GetId() == CmdMenu_PushTool_DrawEllipse.GetId() )
00574 {
00575 found = true;
00576 Submit( new a2dCommand_PushTool( a2dDrawEllipseTool::COMID_PushTool_DrawEllipse ) );
00577 }
00578 else if ( event.GetId() == CmdMenu_PushTool_DrawEllipticArc.GetId() )
00579 {
00580 found = true;
00581 Submit( new a2dCommand_PushTool( a2dDrawEllipticArcTool::COMID_PushTool_DrawEllipticArc ) );
00582 }
00583 else if ( event.GetId() == CmdMenu_PushTool_DrawEllipticArc_Chord.GetId() )
00584 {
00585 found = true;
00586 Submit( new a2dCommand_PushTool( a2dDrawEllipticArcTool::COMID_PushTool_DrawEllipticArc_Chord ) );
00587 }
00588 else if ( event.GetId() == CmdMenu_PushTool_DrawArc.GetId() )
00589 {
00590 found = true;
00591 Submit( new a2dCommand_PushTool( a2dDrawArcTool::COMID_PushTool_DrawArc ) );
00592 }
00593 else if ( event.GetId() == CmdMenu_PushTool_DrawArc_Chord.GetId() )
00594 {
00595 found = true;
00596 Submit( new a2dCommand_PushTool( a2dDrawArcTool::COMID_PushTool_DrawArc_Chord ) );
00597 }
00598 else if ( event.GetId() == CmdMenu_PushTool_DrawPolylineL.GetId() )
00599 {
00600 found = true;
00601 Submit( new a2dCommand_PushTool( a2dDrawPolylineLTool::COMID_PushTool_DrawPolylineL ) );
00602 }
00603 else if ( event.GetId() == CmdMenu_PushTool_DrawPolygonL.GetId() )
00604 {
00605 found = true;
00606 Submit( new a2dCommand_PushTool( a2dDrawPolygonLTool::COMID_PushTool_DrawPolygonL ) );
00607 }
00608 else if ( event.GetId() == CmdMenu_PushTool_DrawPolylineL_Splined.GetId() )
00609 {
00610 found = true;
00611 Submit( new a2dCommand_PushTool( a2dDrawPolylineLTool::COMID_PushTool_DrawPolylineL_Splined ) );
00612 }
00613 else if ( event.GetId() == CmdMenu_PushTool_DrawPolygonL_Splined.GetId() )
00614 {
00615 found = true;
00616 Submit( new a2dCommand_PushTool( a2dDrawPolygonLTool::COMID_PushTool_DrawPolygonL_Splined ) );
00617 }
00618 else if ( event.GetId() == CmdMenu_PushTool_DrawPolygonLFast.GetId() )
00619 {
00620 found = true;
00621 Submit( new a2dCommand_PushTool( a2dDrawPolygonLToolFast::COMID_PushTool_DrawPolygonLFast ) );
00622 }
00623 else if ( event.GetId() == CmdMenu_PushTool_DrawPolylineLFast.GetId() )
00624 {
00625 found = true;
00626 Submit( new a2dCommand_PushTool( a2dDrawPolylineLToolFast::COMID_PushTool_DrawPolylineLFast ) );
00627 }
00628 else if ( event.GetId() == CmdMenu_PushTool_Property.GetId() )
00629 {
00630 found = true;
00631 Submit( new a2dCommand_PushTool( a2dPropertyTool::COMID_PushTool_Property ) );
00632 }
00633 else if ( event.GetId() == CmdMenu_PushTool_FastDragMulti.GetId() )
00634 {
00635 found = true;
00636 Submit( new a2dCommand_PushTool(a2dFastDragMultiTool::COMID_PushTool_FastDragMulti) );
00637 }
00638 else if ( event.GetId() == CmdMenu_PushTool_FastCopyMulti.GetId() )
00639 {
00640 found = true;
00641 Submit( new a2dCommand_PushTool(a2dFastCopyMultiTool::COMID_PushTool_FastCopyMulti) );
00642 }
00643 else if ( event.GetId() == CmdMenu_PushTool_Measure.GetId() )
00644 {
00645 found = true;
00646 Submit( new a2dCommand_PushTool( a2dMeasureTool::COMID_PushTool_Measure ) );
00647
00648 if ( !m_measure )
00649 m_measure = new a2dMeasureDlg( NULL );
00650 if ( !m_measure->IsShown() )
00651 m_measure->Show(true);
00652 }
00653 else if ( event.GetId() == CmdMenu_PushTool_DrawWirePolylineL.GetId() )
00654 {
00655 found = true;
00656 Submit( new a2dCommand_PushTool( a2dDrawWirePolylineLTool::COMID_PushTool_DrawWirePolylineL ) );
00657 }
00658 else if ( event.GetId() == CmdMenu_PushTool_DragMulti.GetId() )
00659 {
00660 found = true;
00661 Submit( new a2dCommand_PushTool( a2dDragMultiTool::COMID_PushTool_DragMulti ) );
00662 }
00663 else if ( event.GetId() == CmdMenu_PushTool_CopyMulti.GetId() )
00664 {
00665 found = true;
00666 Submit( new a2dCommand_PushTool( a2dCopyMultiTool::COMID_PushTool_CopyMulti ) );
00667 }
00668 else if ( event.GetId() == CmdMenu_PushTool_DrawRectangle.GetId() )
00669 {
00670 found = true;
00671 Submit( new a2dCommand_PushTool( a2dDrawRectangleTool::COMID_PushTool_DrawRectangle ) );
00672 }
00673 else if ( event.GetId() == CmdMenu_PushTool_DrawCircle.GetId() )
00674 {
00675 found = true;
00676 Submit( new a2dCommand_PushTool( a2dDrawCircleTool::COMID_PushTool_DrawCircle ) );
00677 }
00678 else if ( event.GetId() == CmdMenu_PushTool_DrawVPath.GetId() )
00679 {
00680 found = true;
00681 Submit( new a2dCommand_PushTool( a2dDrawVPathTool::COMID_PushTool_DrawVPath ) );
00682 }
00683 else if ( event.GetId() == CmdMenu_PopTool.GetId() )
00684 {
00685 found = true;
00686 }
00687 else if ( event.GetId() == CmdMenu_InsertGroupRef.GetId() )
00688 {
00689 found = true;
00690 }
00691 else if ( event.GetId() == CmdMenu_ShowDlgLayers.GetId() ||
00692 event.GetId() == CmdMenu_ShowDlgLayersDocument.GetId() ||
00693 event.GetId() == CmdMenu_ShowDlgLayersGlobal.GetId()
00694 )
00695 {
00696 found = true;
00697 a2dCanvasDocument* doc = (a2dCanvasDocument*) GetCurrentDocument();
00698
00699 if ( !m_layersdlg )
00700 {
00701 m_layersdlg = new LayerPropertiesDialog( NULL, NULL, _("Layer of Document"), style| wxRESIZE_BORDER );
00702 }
00703
00704 if ( !m_layersdlg->IsShown() )
00705 {
00706 m_layersdlg->Show(true);
00707 if ( event.GetId() == CmdMenu_ShowDlgLayersDocument.GetId() )
00708 {
00709 a2dCanvasDocument* doc = CheckCanvasDocument();
00710 if ( !doc )
00711 return;
00712
00713 m_layersdlg->Init( doc->GetLayerSetup() );
00714 }
00715 else
00716 m_layersdlg->Init( a2dCanvasGlobals->GetLayerSetup() );
00717 }
00718 else
00719 {
00720 m_layersdlg->Show(false);
00721 }
00722 }
00723 else if ( event.GetId() == CmdMenu_ShowDlgLayerOrderDocument.GetId() ||
00724 event.GetId() == CmdMenu_ShowDlgLayerOrderGlobal.GetId() )
00725 {
00726 found = true;
00727 a2dCanvasDocument* doc = (a2dCanvasDocument*) GetCurrentDocument();
00728
00729 if ( !m_layerOrderDlg )
00730 {
00731 m_layerOrderDlg = new a2dLayerOrderDialog( NULL, NULL, _("Layer of Document"), style| wxRESIZE_BORDER );
00732 }
00733
00734 if ( !m_layerOrderDlg->IsShown() )
00735 {
00736 if ( event.GetId() == CmdMenu_ShowDlgLayerOrderDocument.GetId() )
00737 {
00738 a2dCanvasDocument* doc = CheckCanvasDocument();
00739 if ( !doc )
00740 return;
00741
00742 m_layerOrderDlg->Init( doc->GetLayerSetup() );
00743 }
00744 else
00745 m_layerOrderDlg->Init( a2dCanvasGlobals->GetLayerSetup() );
00746 m_layerOrderDlg->Show(true);
00747 }
00748 else
00749 {
00750 m_layerOrderDlg->Show(false);
00751 }
00752 }
00753 else if ( event.GetId() == CmdMenu_ShowDlgTools.GetId() )
00754 {
00755 found = true;
00756 if ( !m_tooldlg )
00757 m_tooldlg = new ToolDlg( NULL );
00758
00759 if ( m_tooldlg->IsShown() )
00760 {
00761 m_tooldlg->Show(false);
00762 }
00763 else
00764 {
00765 m_tooldlg->Show(true);
00766 }
00767 }
00768 else if ( event.GetId() == CmdMenu_ShowDlgStyle.GetId() )
00769 {
00770 found = true;
00771 if ( !m_styledlg )
00772 {
00773 m_styledlg = new a2dStyleDialog( NULL, style | wxRESIZE_BORDER );
00774 }
00775
00776 if ( GetCurrentDocument() )
00777 {
00778 m_styledlg->SetFill( GetFill() );
00779 m_styledlg->SetStroke( GetStroke() );
00780 m_styledlg->SentStyle();
00781 }
00782
00783 if ( m_styledlg->IsShown() )
00784 {
00785 m_styledlg->Show(false);
00786 }
00787 else
00788 {
00789 m_styledlg->Show(true);
00790 }
00791 }
00792 else if ( event.GetId() == CmdMenu_ShowDlgSnap.GetId() )
00793 {
00794 found = true;
00795 if ( !m_snapSettings )
00796 m_snapSettings = new a2dSnapSettings( NULL );
00797 if ( m_snapSettings->IsShown() )
00798 {
00799 m_snapSettings->Show(false);
00800 }
00801 else
00802 {
00803 m_snapSettings->Show(true);
00804 }
00805 }
00806 else if ( event.GetId() == CmdMenu_ShowDlgGroups.GetId() )
00807 {
00808 found = true;
00809 a2dGroupDlg dialog( NULL, _("choose layer groups"), wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER );
00810 if (dialog.ShowModal() == wxID_OK)
00811 {
00812 }
00813 }
00814 else if ( event.GetId() == CmdMenu_ShowDlgIdentify.GetId() )
00815 {
00816 found = true;
00817 a2dCanvasView* drawer = CheckDrawer();
00818 if ( !drawer )
00819 return;
00820 a2dCanvasDocument* doc = CheckCanvasDocument();
00821 if ( !doc )
00822 return;
00823
00824 if ( !m_identifyDlg )
00825 {
00826 m_identifyDlg = new IdentifyDialog( NULL, -1, _("Identify Selected") );
00827 }
00828
00829 m_identifyDlg->Init( drawer->GetShowObject() );
00830
00831 if ( !m_identifyDlg->IsShown() )
00832 {
00833 m_identifyDlg->Show(true);
00834 }
00835 }
00836 else if ( event.GetId() == CmdMenu_ShowDlgCoordEntry.GetId() )
00837 {
00838 found = true;
00839 if ( !m_coordEntry )
00840 m_coordEntry = new a2dCoordinateEntry( NULL );
00841 if ( m_coordEntry->IsShown() )
00842 {
00843 m_coordEntry->Show(false);
00844 }
00845 else
00846 {
00847 m_coordEntry->Show(true);
00848 }
00849 }
00850 else if ( event.GetId() == CmdMenu_ShowDlgMeasure.GetId() )
00851 {
00852 found = true;
00853 if ( !m_measure )
00854 m_measure = new a2dMeasureDlg( NULL );
00855 if ( m_measure->IsShown() )
00856 {
00857 m_measure->Show(false);
00858 }
00859 else
00860 {
00861 m_measure->Show(true);
00862 }
00863 }
00864 else if ( event.GetId() == CmdMenu_ShowDlgStructure.GetId() )
00865 {
00866 found = true;
00867 a2dCanvasView* drawer = CheckDrawer();
00868 if ( !drawer )
00869 return;
00870 a2dCanvasDocument* doc = CheckCanvasDocument();
00871 if ( !doc )
00872 return;
00873 if ( !m_structDlg )
00874 {
00875 m_structDlg = new a2dCanvasObjectsDialog( NULL, doc, false, true, (wxDEFAULT_DIALOG_STYLE | wxSTAY_ON_TOP |wxRESIZE_BORDER));
00876 }
00877 if ( m_structDlg->IsShown() )
00878 {
00879 m_structDlg->Show(false);
00880 }
00881 else
00882 {
00883 m_structDlg->Show(true);
00884 m_structDlg->Init( doc );
00885 }
00886 }
00887 else if ( event.GetId() == CmdMenu_ShowDlgStructureModal.GetId() )
00888 {
00889 found = true;
00890 a2dCanvasView* drawer = CheckDrawer();
00891 if ( !drawer )
00892 return;
00893 a2dCanvasDocument* doc = CheckCanvasDocument();
00894 if ( !doc )
00895 return;
00896
00897 a2dCanvasObjectsDialog groups( NULL, doc, true, true, (wxDEFAULT_DIALOG_STYLE | wxSTAY_ON_TOP |wxRESIZE_BORDER));
00898 if (groups.ShowModal() == wxID_OK)
00899 {
00900 a2dCommand_SetShowObject* command = new a2dCommand_SetShowObject( a2dCommand_SetShowObject::Args().canvasobject( groups.GetCanvasObject() ) );
00901 a2dGetCmdh()->Submit( command );
00902 }
00903 }
00904 else if ( event.GetId() == CmdMenu_ShowDlgPathSettings.GetId() )
00905 {
00906 found = true;
00907 if ( !m_pathsettings )
00908 m_pathsettings = new a2dPathSettings( NULL );
00909 if ( m_pathsettings->IsShown() )
00910 {
00911 m_pathsettings->Show(false);
00912 }
00913 else
00914 {
00915 m_pathsettings->Show(true);
00916 }
00917 }
00918 else if ( event.GetId() == CmdMenu_ShowDlgSettings.GetId() )
00919 {
00920 found = true;
00921 if ( !m_settings )
00922 m_settings = new a2dSettings(NULL );
00923 if ( m_settings->IsShown() )
00924 {
00925 m_settings->Show(false);
00926 }
00927 else
00928 {
00929 m_settings->Show(true);
00930 }
00931 }
00932 else if ( event.GetId() == CmdMenu_ShowDlgTrans.GetId() )
00933 {
00934 found = true;
00935 if ( !m_transset )
00936 m_transset = new a2dTransDlg( NULL );
00937 if ( m_transset->IsShown() )
00938 {
00939 m_transset->Show(false);
00940 }
00941 else
00942 {
00943 m_transset->Show(true);
00944 }
00945 }
00946 else if ( event.GetId() == CmdMenu_ShowDlgPropEdit.GetId() )
00947 {
00948 found = true;
00949
00950
00951
00952
00953
00954
00955
00956
00957
00958
00959
00960
00961 }
00962 else if ( event.GetId() == CmdMenu_SetLayerDlg.GetId() )
00963 {
00964 found = true;
00965 a2dCanvasDocument* doc = CheckCanvasDocument();
00966 if ( !doc )
00967 return;
00968
00969 a2dLayerDialog dialog( NULL, CheckCanvasDocument()->GetLayerSetup(), false, false, _("Set Layer") );
00970 if (dialog.ShowModal() == wxID_OK)
00971 {
00972 Submit( new a2dCommand_SetLayer( dialog.GetSelectedLayer(), false ) );
00973 }
00974 }
00975 else if ( event.GetId() == CmdMenu_SetTargetDlg.GetId() )
00976 {
00977 found = true;
00978 a2dCanvasDocument* doc = CheckCanvasDocument();
00979 if ( !doc )
00980 return;
00981
00982 a2dLayerDialog dialog( NULL, CheckCanvasDocument()->GetLayerSetup(), false, true, _("Set Target Layer") );
00983 if (dialog.ShowModal() == wxID_OK)
00984 {
00985 Submit( new a2dCommand_SetTarget( dialog.GetSelectedLayer() ) );
00986 }
00987 }
00988 else if ( event.GetId() == CmdMenu_SetLayerDlgModeless.GetId() )
00989 {
00990 found = true;
00991 a2dCanvasDocument* doc = CheckCanvasDocument();
00992 if ( !doc )
00993 return;
00994
00995 if ( !m_layerChooseDlg )
00996 {
00997 m_layerChooseDlg = new a2dLayerDialog( NULL, CheckCanvasDocument()->GetLayerSetup(), false, false, _("Set Layer") );
00998 }
00999
01000 if ( !m_layerChooseDlg->IsShown() )
01001 {
01002 m_layerChooseDlg->Init( doc->GetLayerSetup() );
01003 m_layerChooseDlg->Show(true);
01004 }
01005 else
01006 {
01007 m_layerChooseDlg->Show(false);
01008 }
01009 }
01010 else if ( event.GetId() == CmdMenu_SetFont.GetId() )
01011 {
01012 found = true;
01013 a2dFontDialog dialog( NULL );
01014 if (dialog.ShowModal() == wxID_OK)
01015 {
01016 m_font = dialog.GetFontData();
01017 Submit( new a2dCommand_SetFont(m_font) );
01018 }
01019 }
01020 else if ( event.GetId() == CmdMenu_SetBackgroundStyle.GetId() )
01021 {
01022 found = true;
01023 a2dCanvasView* drawer = CheckDrawer();
01024 if ( !drawer )
01025 return;
01026 a2dStyleDialog b( NULL, wxDEFAULT_DIALOG_STYLE | wxDIALOG_NO_PARENT | wxMINIMIZE_BOX | wxMAXIMIZE_BOX, true );
01027 b.SetFill( drawer->GetBackgroundFill() );
01028 if ( b.ShowModal() == wxID_OK )
01029 drawer->SetBackgroundFill( b.GetFill() );
01030 }
01031 else if ( event.GetId() == CmdMenu_ViewAsImage_Png.GetId() )
01032 {
01033 found = true;
01034 a2dCommandGroup* gr = new a2dCommandGroup( _T("savepng") );
01035 a2dCommand_AskFile* command = new a2dCommand_AskFile( a2dCommand_AskFile::Args().
01036 message( _("Give Name of output PNG file") ).
01037 defaultDir( _T("") ).
01038 extension( _T("*.png") ).
01039 fileFilter( _T("*.png") ).
01040 storeInVariable( _T("ask_file_result") ).
01041 flags( wxFD_SAVE ) );
01042 gr->Add( command );
01043 a2dCommand_ViewAsImageAdv* command2 = new a2dCommand_ViewAsImageAdv( a2dCommand_ViewAsImageAdv::Args().
01044 file( wxFileName( _T("%{ask_file_result}") ) ).
01045 btype( wxBITMAP_TYPE_PNG ).
01046 onView( true )
01047 );
01048 gr->Add( command2 );
01049 Submit( gr );
01050 }
01051 else if ( event.GetId() == CmdMenu_ViewAsImage_Bmp.GetId() )
01052 {
01053 found = true;
01054 a2dCommandGroup* gr = new a2dCommandGroup( _T("savebmp") );
01055 a2dCommand_AskFile* command = new a2dCommand_AskFile( a2dCommand_AskFile::Args().
01056 message( _("Give Name of output BMP file") ).
01057 defaultDir( _T("") ).
01058 extension( _T("*.bmp") ).
01059 fileFilter( _T("*.bmp") ).
01060 storeInVariable( _T("ask_file_result") ).
01061 flags( wxFD_SAVE ) );
01062 gr->Add( command );
01063
01064 a2dCommand_ViewAsImageAdv* command2 = new a2dCommand_ViewAsImageAdv( a2dCommand_ViewAsImageAdv::Args().
01065 file( wxFileName( _T("%{ask_file_result}") ) ).
01066 btype( wxBITMAP_TYPE_BMP ).
01067 onView( true )
01068 );
01069 gr->Add( command2 );
01070 Submit( gr );
01071 }
01072 else if ( event.GetId() == CmdMenu_DocumentAsImage_Png.GetId() )
01073 {
01074 found = true;
01075 a2dCommand_AskFile::Args& (a2dCommand_AskFile::Args::*f)( const wxString& arg);
01076 f = &a2dCommand_AskFile::Args::storeInVariable;
01077
01078 a2dCommandGroup* gr = new a2dCommandGroup( _T("savepng") );
01079 a2dCommand_AskFile* command = new a2dCommand_AskFile( a2dCommand_AskFile::Args().
01080 message( _("Give Name of output PNG file") ).
01081 defaultDir( _T("") ).
01082 extension( _T("*.png") ).
01083 fileFilter( _T("*.png") ).
01084 storeInVariable( _T("ask_file_result") ).
01085 flags( wxFD_SAVE ) );
01086 gr->Add( command );
01087 a2dCommand_ViewAsImageAdv* command2 = new a2dCommand_ViewAsImageAdv( a2dCommand_ViewAsImageAdv::Args().
01088 file( wxFileName( _T("%{ask_file_result}") ) ).
01089 btype( wxBITMAP_TYPE_PNG ));
01090 gr->Add( command2 );
01091 Submit( gr );
01092 }
01093 else if ( event.GetId() == CmdMenu_DocumentAsImage_Bmp.GetId() )
01094 {
01095 found = true;
01096 a2dCommandGroup* gr = new a2dCommandGroup( _T("savebmp") );
01097 a2dCommand_AskFile* command = new a2dCommand_AskFile( a2dCommand_AskFile::Args().
01098 message( _("Give Name of output BMP file") ).
01099 defaultDir( _T("") ).
01100 extension( _T("*.bmp") ).
01101 fileFilter( _T("*.bmp") ).
01102 storeInVariable( _T("ask_file_result") ).
01103 flags( wxFD_SAVE ));
01104 gr->Add( command );
01105
01106 a2dCommand_ViewAsImageAdv* command2 = new a2dCommand_ViewAsImageAdv( a2dCommand_ViewAsImageAdv::Args().
01107 file( wxFileName( _T("%{ask_file_result}") ) ).
01108 btype( wxBITMAP_TYPE_BMP ));
01109 gr->Add( command2 );
01110 Submit( gr );
01111 }
01112 #if wxART2D_USE_SVGIO
01113 else if ( event.GetId() == CmdMenu_ViewAsSvg.GetId() )
01114 {
01115 found = true;
01116 a2dCommandGroup* gr = new a2dCommandGroup( _T("savesvg") );
01117 a2dCommand_AskFile* command = new a2dCommand_AskFile( a2dCommand_AskFile::Args().
01118 message( _("Give Name of output SVG file") ).
01119 defaultDir( _T("") ).
01120 extension( _T("*.svg") ).
01121 fileFilter( _T("*.svg") ).
01122 storeInVariable( _T("ask_file_result") ).
01123 flags( wxFD_SAVE ));
01124 gr->Add( command );
01125
01126 a2dCommand_ViewAsSvg* command2 = new a2dCommand_ViewAsSvg( a2dCommand_ViewAsSvg::Args().
01127 file( wxFileName( _T("%{ask_file_result}") ) ) );
01128 gr->Add( command2 );
01129 Submit( gr );
01130 }
01131 #endif //wxART2D_USE_SVGIO
01132 else if ( event.GetId() == CmdMenu_DocumentAsOdbXml.GetId() )
01133 {
01134 found = true;
01135
01136 a2dCommandGroup* gr = new a2dCommandGroup( _T("fileExportAsOdb") );
01137 a2dCommand_AskFile* command = new a2dCommand_AskFile( a2dCommand_AskFile::Args().
01138 message( _("Give Name of output ODB file") ).
01139 defaultDir( _T("") ).
01140 extension( _T("*.xml") ).
01141 fileFilter( _T("*.xml") ).
01142 storeInVariable( _T("ask_file_result") ).
01143 flags( wxFD_SAVE ) );
01144 gr->Add( command );
01145
01146 a2dCommand_FileExport* command2 = new a2dCommand_FileExport( a2dCommand_FileExport::Args().
01147 file( wxFileName( _T("%{ask_file_result}") ) ).
01148 description( _T("ODB") ).
01149 silent( true ) );
01150 gr->Add( command2 );
01151
01152 Submit( gr );
01153 }
01154 else if ( event.GetId() == CmdMenu_LineBegin.GetId() )
01155 {
01156 found = true;
01157 a2dCanvasObjectList total;
01158
01159 if ( !m_librarypoints )
01160 {
01161 wxMessageBox( _("point library not loaded"), _("Points"), wxICON_INFORMATION | wxOK );
01162 return;
01163 }
01164 m_librarypoints->GetRootObject()->CollectObjects( &total, _T("a2dLibraryReference"), a2dCanvasOFlags::ALL );
01165
01166 a2dCanvasObjectsDialog objects(NULL, &total, true, (wxSTAY_ON_TOP |wxRESIZE_BORDER | wxCAPTION));
01167 if (objects.ShowModal() == wxID_OK)
01168 {
01169 a2dCanvasObject* begin=((a2dLibraryReference*)objects.GetCanvasObject())->GetCanvasObject();
01170 begin->SetPosXY(0,0);
01171 a2dGetCmdhEditor()->Submit(new a2dCommand_SetCanvasProperty( a2dGetCmdhEditor(), a2dCentralCanvasCommandProcessor::PROPID_Begin, begin ));
01172 }
01173 }
01174 else if ( event.GetId() == CmdMenu_LineEnd.GetId() )
01175 {
01176 found = true;
01177 a2dCanvasObjectList total;
01178
01179 if ( !m_librarypoints )
01180 {
01181 wxMessageBox( _("point library not loaded"), _("Points"), wxICON_INFORMATION | wxOK );
01182 return;
01183 }
01184 m_librarypoints->GetRootObject()->CollectObjects( &total, _T("a2dLibraryReference"),a2dCanvasOFlags::ALL );
01185
01186 a2dCanvasObjectsDialog objects(NULL, &total, true, (wxSTAY_ON_TOP |wxRESIZE_BORDER | wxCAPTION));
01187 if (objects.ShowModal() == wxID_OK)
01188 {
01189 a2dCanvasObject* end=((a2dLibraryReference*)objects.GetCanvasObject())->GetCanvasObject();
01190 end->SetPosXY(0,0);
01191 a2dGetCmdhEditor()->Submit(new a2dCommand_SetCanvasProperty( a2dGetCmdhEditor(), a2dCentralCanvasCommandProcessor::PROPID_End, end ));
01192 }
01193 }
01194 else if ( event.GetId() == CmdMenu_LineScale.GetId() )
01195 {
01196 found = true;
01197 long w = wxGetNumberFromUser( _("Give scalex:"), _("scalex:"), _("scale in x for point"),1,0,100);
01198 if (w==0) w=1;
01199 a2dCentralCanvasCommandProcessor::PROPID_EndScaleX->SetPropertyToObject( this, (int) w );
01200 w = wxGetNumberFromUser( _("Give scaley:"), _("scaley:"), _("scale in y for point"),1,0,100);
01201 if (w==0) w=1;
01202 a2dCentralCanvasCommandProcessor::PROPID_EndScaleY->SetPropertyToObject( this, (int) w );
01203 }
01204 else if ( event.GetId() == CmdMenu_Selected_MoveXY.GetId() )
01205 {
01206 found = true;
01207 SetLastXyEntry( 0, 0 );
01208 a2dCoordinateEntry entry( NULL ,-1, true, _("XY for move") );
01209 if ( entry.ShowModal() == wxID_OK)
01210 {
01211 SubmitToDocument( new a2dCommand_MoveMask( entry.m_xcalc, entry.m_ycalc, -1, false) );
01212 }
01213 }
01214 else if ( event.GetId() == CmdMenu_Selected_MoveLayer.GetId() )
01215 {
01216 found = true;
01217 if ( !CheckCanvasDocument() )
01218 return;
01219 a2dLayerDialog dialog( NULL, CheckCanvasDocument()->GetLayerSetup(), false, true, _("Set Target Layer") );
01220 if (dialog.ShowModal() == wxID_OK)
01221 {
01222 Submit( new a2dCommand_SetTarget( dialog.GetSelectedLayer() ) );
01223 SubmitToDocument( new a2dCommand_MoveMask(0,0,-1,true) );
01224 }
01225 }
01226 else if ( event.GetId() == CmdMenu_Selected_CopyXY.GetId() )
01227 {
01228 found = true;
01229 SetLastXyEntry( 0, 0 );
01230 a2dCoordinateEntry entry( NULL ,-1, true, _("XY for copy") );
01231 if ( entry.ShowModal() == wxID_OK)
01232 {
01233 SubmitToDocument( new a2dCommand_CopyMask( entry.m_xcalc, entry.m_ycalc, -1, false) );
01234 }
01235 }
01236 else if ( event.GetId() == CmdMenu_Selected_CopyLayer.GetId() )
01237 {
01238 found = true;
01239 if ( !CheckCanvasDocument() )
01240 return;
01241 a2dLayerDialog dialog( NULL, CheckCanvasDocument()->GetLayerSetup(), false, true, _("Set Target Layer") );
01242 if (dialog.ShowModal() == wxID_OK)
01243 {
01244 Submit( new a2dCommand_SetTarget( dialog.GetSelectedLayer() ) );
01245 SubmitToDocument( new a2dCommand_CopyMask(0,0,-1,true) );
01246 }
01247 }
01248 else if ( event.GetId() == CmdMenu_Selected_Transform.GetId() )
01249 {
01250 found = true;
01251 a2dTransDlg transset( NULL, true );
01252 if ( transset.ShowModal() == wxID_OK )
01253 {
01254 SubmitToDocument( new a2dCommand_TransformMask( transset.m_lworld ) );
01255 }
01256 }
01257 else if ( event.GetId() == CmdMenu_SetMasterTool_SelectFirst.GetId() )
01258 {
01259 found = true;
01260 a2dCanvasView* drawer = CheckDrawer();
01261 if ( !drawer )
01262 return;
01263 a2dStToolContr* contr = wxDynamicCast( drawer->GetCanvasToolContr(), a2dStToolContr );
01264 if ( !contr )
01265 return;
01266
01267 a2dMasterDrawSelectFirst* tool = new a2dMasterDrawSelectFirst( contr );
01268 tool->SetAllowMultiEdit( false );
01269 tool->SetFastTools( true );
01270 contr->StopAllTools();
01271 contr->SetTopTool( tool );
01272 }
01273 else if ( event.GetId() == CmdMenu_SetMasterTool_ZoomFirst.GetId() )
01274 {
01275 found = true;
01276 a2dCanvasView* drawer = CheckDrawer();
01277 if ( !drawer )
01278 return;
01279 a2dStToolContr* contr = wxDynamicCast( drawer->GetCanvasToolContr(), a2dStToolContr );
01280 if ( !contr )
01281 return;
01282
01283 a2dMasterDrawZoomFirst* tool = new a2dMasterDrawZoomFirst( contr );
01284 tool->SetAllowMultiEdit( false );
01285 tool->SetFastTools( true );
01286 contr->StopAllTools();
01287 contr->SetTopTool( tool );
01288 }
01289
01290 if ( !found )
01291 event.Skip();
01292 }
01293
01294 a2dCentralEditorCommandProcessor::a2dCentralEditorCommandProcessor( long flags , bool initialize, int maxCommands )
01295 : a2dCentralCanvasCommandProcessor( flags, initialize, maxCommands )
01296 #if defined(_DEBUG) && defined (SMART_POINTER_DEBUG)
01297 , m_initCurrentSmartPointerOwner(this)
01298 #endif
01299 {
01300 m_tooldlg = NULL;
01301 m_layersdlg = NULL;
01302 m_layerOrderDlg = NULL;
01303 m_layerChooseDlg = NULL;
01304 m_styledlg = NULL;
01305 m_snapSettings = NULL;
01306 m_identifyDlg = NULL;
01307 m_coordEntry = NULL;
01308 m_measure = NULL;
01309 m_pathsettings = NULL;
01310 m_settings = NULL;
01311 m_transset = NULL;
01312 m_propEdit = NULL;
01313 m_structDlg = NULL;
01314
01315 if ( CheckCanvasDocument() )
01316 m_parent = CheckCanvasDocument()->GetRootObject();
01317
01318 m_currentobject = 0;
01319 m_currentfill = *a2dNullFILL;
01320 m_currentstroke = a2dStroke( wxColour(0,255,0), 0, a2dSTROKE_SOLID );
01321
01322 m_currentEnd = 0;
01323 m_currentBegin = 0;
01324 m_currentXscale = m_currentYscale = 1;
01325
01326 m_AppendOrPrepend = true;
01327
01328 m_layer = wxLAYER_DEFAULT;
01329
01330 m_font = *a2dDEFAULT_CANVASFONT;
01331
01332 m_spline = false;
01333 }
01334
01335
01336 a2dCentralEditorCommandProcessor::a2dCentralEditorCommandProcessor( a2dDocumentCommandProcessor* other )
01337 : a2dCentralCanvasCommandProcessor( other )
01338 #if defined(_DEBUG) && defined (SMART_POINTER_DEBUG)
01339 , m_initCurrentSmartPointerOwner(this)
01340 #endif
01341 {
01342 m_tooldlg = NULL;
01343 m_layersdlg = NULL;
01344 m_layerOrderDlg = NULL;
01345 m_layerChooseDlg = NULL;
01346 m_styledlg = NULL;
01347 m_snapSettings = NULL;
01348 m_identifyDlg = NULL;
01349 m_coordEntry = NULL;
01350 m_measure = NULL;
01351 m_pathsettings = NULL;
01352 m_settings = NULL;
01353 m_transset = NULL;
01354 m_propEdit = NULL;
01355 m_structDlg = NULL;
01356
01357 if ( CheckCanvasDocument() )
01358 m_parent = CheckCanvasDocument()->GetRootObject();
01359
01360 m_currentobject = 0;
01361 m_currentfill = *a2dNullFILL;
01362 m_currentstroke = a2dStroke( wxColour(0,255,0), 0, a2dSTROKE_SOLID );
01363
01364 m_currentEnd = 0;
01365 m_currentBegin = 0;
01366 m_currentXscale = m_currentYscale = 1;
01367
01368 m_AppendOrPrepend = true;
01369
01370 m_layer = wxLAYER_DEFAULT;
01371
01372 m_font = *a2dDEFAULT_CANVASFONT;
01373
01374 m_spline = false;
01375 }
01376
01377 a2dCentralEditorCommandProcessor::~a2dCentralEditorCommandProcessor()
01378 {
01379 DeleteDlgs();
01380 }
01381
01382 bool a2dCentralEditorCommandProcessor::IsShownToolDlg() { return m_tooldlg != NULL && m_tooldlg->IsShown(); }
01383
01384 bool a2dCentralEditorCommandProcessor::IsShowna2dStyleDialog() { return m_styledlg != NULL && m_styledlg->IsShown(); }
01385
01386 bool a2dCentralEditorCommandProcessor::IsShownLayerPropertiesDialog() { return m_layersdlg != NULL && m_layersdlg->IsShown(); }
01387
01388 bool a2dCentralEditorCommandProcessor::IsShownLayerOrderDialog() { return m_layerOrderDlg != NULL && m_layerOrderDlg->IsShown(); }
01389
01390 bool a2dCentralEditorCommandProcessor::IsShownIdentifyDialog() { return m_identifyDlg != NULL && m_identifyDlg->IsShown(); }
01391
01392 bool a2dCentralEditorCommandProcessor::IsShowna2dSnapSettings() { return m_snapSettings != NULL && m_snapSettings->IsShown(); }
01393
01394 bool a2dCentralEditorCommandProcessor::IsShowna2dCoordinateEntry() { return m_coordEntry != NULL && m_coordEntry->IsShown(); }
01395
01396 bool a2dCentralEditorCommandProcessor::IsShowna2dMeasureDlg() { return m_measure != NULL && m_measure->IsShown(); }
01397
01398 bool a2dCentralEditorCommandProcessor::IsShowna2dPathSettings() { return m_pathsettings != NULL && m_pathsettings->IsShown(); }
01399
01400 bool a2dCentralEditorCommandProcessor::IsShowna2dSettings() { return m_settings != NULL && m_settings->IsShown(); }
01401
01402 bool a2dCentralEditorCommandProcessor::IsShowna2dTransDlg() { return m_transset!= NULL && m_transset->IsShown(); }
01403
01404 bool a2dCentralEditorCommandProcessor::IsShownPropEditDlg() { return m_propEdit != NULL && m_propEdit->IsShown(); }
01405
01406 bool a2dCentralEditorCommandProcessor::IsShownStructureDlg() { return m_structDlg != NULL && m_structDlg->IsShown(); }
01407
01408 void a2dCentralEditorCommandProcessor::DeleteDlgs()
01409 {
01410 if ( m_tooldlg )
01411 m_tooldlg->Destroy();
01412
01413 if ( m_layersdlg )
01414 m_layersdlg->Destroy();
01415
01416 if ( m_layerOrderDlg )
01417 m_layerOrderDlg->Destroy();
01418
01419 if ( m_layerChooseDlg )
01420 m_layerChooseDlg->Destroy();
01421
01422 if ( m_identifyDlg )
01423 m_identifyDlg->Destroy();
01424
01425 if ( m_styledlg )
01426 m_styledlg->Destroy();
01427
01428 if ( m_snapSettings )
01429 m_snapSettings->Destroy();
01430
01431 if ( m_coordEntry )
01432 m_coordEntry->Destroy();
01433
01434 if ( m_measure )
01435 m_measure->Destroy();
01436
01437 if ( m_transset )
01438 m_transset->Destroy();
01439
01440 if ( m_propEdit )
01441 m_propEdit->Destroy();
01442
01443 if ( m_settings )
01444 m_settings->Destroy();
01445
01446 if ( m_pathsettings )
01447 m_pathsettings->Destroy();
01448
01449 if ( m_structDlg )
01450 m_structDlg->Destroy();
01451
01452 m_tooldlg = NULL;
01453 m_layersdlg = NULL;
01454 m_layerOrderDlg = NULL;
01455 m_layerChooseDlg = NULL;
01456 m_styledlg = NULL;
01457 m_snapSettings = NULL;
01458 m_identifyDlg = NULL;
01459 m_coordEntry = NULL;
01460 m_measure = NULL;
01461 m_pathsettings = NULL;
01462 m_settings = NULL;
01463 m_transset = NULL;
01464 m_propEdit = NULL;
01465 m_structDlg = NULL;
01466 }
01467
01468 void a2dCentralEditorCommandProcessor::OnExit()
01469 {
01470 DeleteDlgs();
01471
01472 a2dCentralCanvasCommandProcessor::OnExit();
01473 }
01474
01475
01476 bool a2dCentralEditorCommandProcessor::InsertGroupRef()
01477 {
01478 a2dCanvasDocument* doc = CheckCanvasDocument();
01479 if ( !doc )
01480 return false;
01481
01482 a2dCanvasView* drawer = CheckDrawer();
01483 if ( drawer )
01484 {
01485 double x = 0;
01486 double y = 0;
01487
01488 a2dCanvasObjectsDialog groups( doc->GetAssociatedWindow(), doc, true, false, (wxSTAY_ON_TOP |wxRESIZE_BORDER | wxCAPTION) );
01489 if (groups.ShowModal() == wxID_OK )
01490 {
01491 a2dCanvasObjectReference* groupref = new a2dCanvasObjectReference( x, y, groups.GetCanvasObject() );
01492 drawer->GetShowObject()->Prepend( groupref );
01493 }
01494 }
01495 return true;
01496 }
01497
01498 bool a2dCentralEditorCommandProcessor::ShowDlg( const a2dCommandId* comID, bool modal, bool onTop )
01499 {
01500 return false;
01501 }
01502
01503
01504
01505
01506
01507
01508 bool a2dCommand_PushTool::Do()
01509 {
01510 a2dCanvasDocument* doc = GetCanvasCmp()->CheckCanvasDocument();
01511 if ( !doc )
01512 return false;
01513
01514 a2dCanvasView* drawer = GetCanvasCmp()->CheckDrawer();
01515 if ( !drawer )
01516 {
01517 a2dDocviewGlobals->ReportError( a2dError_NoView );
01518 return false;
01519 }
01520
01521 a2dCentralCanvasCommandProcessor* docmanager = GetCanvasCmp();
01522 a2dCanvasCommandProcessor* Cdmp = doc->GetCanvasCommandProcessor();
01523
01524 a2dStToolContr* contr = (a2dStToolContr*) drawer->GetCanvasToolContr();
01525
01526 if ( docmanager->GetPopBeforePush() )
01527 {
01528 a2dSmrtPtr<a2dBaseTool> poped;
01529 contr->PopTool( poped );
01530 }
01531 if ( contr )
01532 {
01533 if ( m_args.argValue.which == &a2dSelectTool::COMID_PushTool_Select )
01534 {
01535 a2dSelectTool* selt = new a2dSelectTool(contr);
01536
01537 if ( !m_args.argValue.shiftadd )
01538 selt->SetShiftIsAdd();
01539
01540 if ( docmanager->GetOneShotTools() ) selt->SetOneShot();
01541 contr->PushTool(selt);
01542 selt->SetStroke( a2dStroke(wxColour(200,0,0 ),0,a2dSTROKE_LONG_DASH));
01543 }
01544 else if ( m_args.argValue.which == &a2dFastSelect::COMID_PushTool_FastSelect )
01545 {
01546 a2dFastSelect* selt = new a2dFastSelect(contr);
01547
01548 if ( !m_args.argValue.shiftadd )
01549 selt->SetShiftIsAdd();
01550
01551 if ( docmanager->GetOneShotTools() ) selt->SetOneShot();
01552 contr->PushTool(selt);
01553 selt->SetStroke( a2dStroke(wxColour(200,0,0 ),0,a2dSTROKE_LONG_DASH));
01554 }
01555 else if ( m_args.argValue.which == &a2dRecursiveEditTool::COMID_PushTool_RecursiveEdit )
01556 {
01557 a2dRecursiveEditTool* edit = new a2dRecursiveEditTool(contr);
01558 if ( docmanager->GetOneShotTools() ) edit->SetOneShot();
01559 contr->PushTool(edit);
01560 }
01561 else if ( m_args.argValue.which == &a2dObjectEditTool::COMID_PushTool_ObjectEdit )
01562 {
01563 a2dObjectEditTool* edit = new a2dObjectEditTool(contr);
01564 if ( docmanager->GetOneShotTools() ) edit->SetOneShot();
01565 contr->PushTool(edit);
01566 }
01567 else if ( m_args.argValue.which == &a2dMultiEditTool::COMID_PushTool_MultiEdit )
01568 {
01569 a2dMultiEditTool* edit = new a2dMultiEditTool( contr );
01570 if ( docmanager->GetOneShotTools() ) edit->SetOneShot();
01571 contr->PushTool(edit);
01572 }
01573 else if ( m_args.argValue.which == &a2dDragTool::COMID_PushTool_Drag )
01574 {
01575 a2dDragTool* drag = new a2dDragTool(contr);
01576 if ( docmanager->GetOneShotTools() ) drag->SetOneShot();
01577 contr->PushTool(drag);
01578 }
01579 else if ( m_args.argValue.which == &a2dDragOrgTool::COMID_PushTool_DragOrg )
01580 {
01581 a2dDragOrgTool* drag = new a2dDragOrgTool(contr);
01582 if ( docmanager->GetOneShotTools() ) drag->SetOneShot();
01583 contr->PushTool(drag);
01584 }
01585 else if ( m_args.argValue.which == &a2dCopyTool::COMID_PushTool_Copy )
01586 {
01587 a2dCopyTool* copy = new a2dCopyTool(contr);
01588 if ( docmanager->GetOneShotTools() ) copy->SetOneShot();
01589 contr->PushTool(copy);
01590 }
01591 else if ( m_args.argValue.which == &a2dRotateTool::COMID_PushTool_Rotate )
01592 {
01593 a2dRotateTool* rot = new a2dRotateTool(contr);
01594 if ( docmanager->GetOneShotTools() ) rot->SetOneShot();
01595 contr->PushTool(rot);
01596 }
01597 else if ( m_args.argValue.which == &a2dZoomTool::COMID_PushTool_Zoom )
01598 {
01599 a2dZoomTool* zoomt = new a2dZoomTool(contr);
01600 contr->PushTool(zoomt);
01601 zoomt->SetStroke( a2dStroke(wxColour(0,0,0 ),1,a2dSTROKE_LONG_DASH));
01602 }
01603 else if ( m_args.argValue.which == &a2dZoomFast::COMID_PushTool_ZoomFast )
01604 {
01605 a2dZoomFast* zoomt = new a2dZoomFast(contr);
01606 contr->PushTool(zoomt);
01607 zoomt->SetStroke( a2dStroke(wxColour(0,0,0 ),1,a2dSTROKE_LONG_DASH));
01608 }
01609 else if ( m_args.argValue.which == &a2dRenderImageZoomTool::COMID_PushTool_RenderImageZoom )
01610 {
01611 #if wxART2D_USE_CANEXTOBJ
01612 a2dRenderImageZoomTool* zoomt = new a2dRenderImageZoomTool(contr);
01613 if ( docmanager->GetOneShotTools() ) zoomt->SetOneShot();
01614 contr->PushTool(zoomt);
01615 zoomt->SetStroke( a2dStroke(wxColour(200,0,0 ),0,a2dSTROKE_LONG_DASH));
01616 #endif
01617 }
01618 else if ( m_args.argValue.which == &a2dDeleteTool::COMID_PushTool_Delete )
01619 {
01620 a2dDeleteTool* deletet = new a2dDeleteTool(contr);
01621 if ( docmanager->GetOneShotTools() ) deletet->SetOneShot();
01622 contr->PushTool(deletet);
01623 }
01624 else if ( m_args.argValue.which == &a2dDrawTextTool::COMID_PushTool_DrawText )
01625 {
01626 a2dDrawTextTool* draw = new a2dDrawTextTool(contr);
01627 if ( docmanager->GetOneShotTools() ) draw->SetOneShot();
01628
01629
01630 contr->PushTool(draw);
01631 }
01632 else if ( m_args.argValue.which == &a2dImageTool::COMID_PushTool_Image )
01633 {
01634 a2dImageTool* draw = new a2dImageTool(contr);
01635 if ( docmanager->GetOneShotTools() ) draw->SetOneShot();
01636 contr->PushTool(draw);
01637 }
01638 else if ( m_args.argValue.which == &a2dDrawRectangleTool::COMID_PushTool_DrawRectangle )
01639 {
01640 a2dDrawRectangleTool* draw = new a2dDrawRectangleTool(contr);
01641 if ( docmanager->GetOneShotTools() ) draw->SetOneShot();
01642 contr->PushTool(draw);
01643 }
01644 else if ( m_args.argValue.which == &a2dDrawRectangleToolFast::COMID_PushTool_DrawRectangleFast )
01645 {
01646 a2dDrawRectangleToolFast* draw = new a2dDrawRectangleToolFast(contr);
01647 if ( docmanager->GetOneShotTools() ) draw->SetOneShot();
01648 contr->PushTool(draw);
01649 }
01650 else if ( m_args.argValue.which == &a2dDrawCircleTool::COMID_PushTool_DrawCircle )
01651 {
01652 a2dDrawCircleTool* draw = new a2dDrawCircleTool(contr);
01653 if ( docmanager->GetOneShotTools() ) draw->SetOneShot();
01654 contr->PushTool(draw);
01655 }
01656 else if ( m_args.argValue.which == &a2dDrawCircleToolFast::COMID_PushTool_DrawCircleFast )
01657 {
01658 a2dDrawCircleToolFast* draw = new a2dDrawCircleToolFast(contr);
01659 if ( docmanager->GetOneShotTools() ) draw->SetOneShot();
01660 contr->PushTool(draw);
01661 }
01662 else if ( m_args.argValue.which == &a2dDrawLineTool::COMID_PushTool_DrawLine )
01663 {
01664 a2dDrawLineTool* draw = new a2dDrawLineTool(contr);
01665 if ( docmanager->GetOneShotTools() ) draw->SetOneShot();
01666 contr->PushTool(draw);
01667 }
01668 else if ( m_args.argValue.which == &a2dDrawLineTool::COMID_PushTool_DrawLineScaledArrow )
01669 {
01670 a2dDrawLineTool* draw = new a2dDrawLineTool(contr);
01671 if ( docmanager->GetOneShotTools() ) draw->SetOneShot();
01672 contr->PushTool(draw);
01673 draw->SetTemplateObject( new a2dScaledEndLine() );
01674 }
01675 else if ( m_args.argValue.which == &a2dDrawEllipseTool::COMID_PushTool_DrawEllipse )
01676 {
01677 a2dDrawEllipseTool* draw = new a2dDrawEllipseTool(contr);
01678 if ( docmanager->GetOneShotTools() ) draw->SetOneShot();
01679 contr->PushTool(draw);
01680 }
01681 else if ( m_args.argValue.which == &a2dDrawEllipticArcTool::COMID_PushTool_DrawEllipticArc )
01682 {
01683 a2dDrawEllipticArcTool* draw = new a2dDrawEllipticArcTool(contr);
01684 if ( docmanager->GetOneShotTools() ) draw->SetOneShot();
01685 contr->PushTool(draw);
01686 }
01687 else if ( m_args.argValue.which == &a2dDrawEllipticArcTool::COMID_PushTool_DrawEllipticArc_Chord )
01688 {
01689 a2dDrawEllipticArcTool* draw = new a2dDrawEllipticArcTool(contr);
01690 if ( docmanager->GetOneShotTools() ) draw->SetOneShot();
01691 contr->PushTool(draw);
01692 draw->SetChord( true );
01693 }
01694 else if ( m_args.argValue.which == &a2dDrawArcTool::COMID_PushTool_DrawArc )
01695 {
01696 a2dDrawArcTool* draw = new a2dDrawArcTool(contr);
01697 if ( docmanager->GetOneShotTools() ) draw->SetOneShot();
01698 contr->PushTool(draw);
01699 }
01700 else if ( m_args.argValue.which == &a2dDrawArcTool::COMID_PushTool_DrawArc_Chord )
01701 {
01702 a2dDrawArcTool* draw = new a2dDrawArcTool(contr);
01703 if ( docmanager->GetOneShotTools() ) draw->SetOneShot();
01704 contr->PushTool(draw);
01705 draw->SetChord( true );
01706 }
01707 else if ( m_args.argValue.which == &a2dDrawPolylineLTool::COMID_PushTool_DrawPolylineL )
01708 {
01709 a2dDrawPolylineLTool* draw = new a2dDrawPolylineLTool(contr);
01710 if ( docmanager->GetOneShotTools() ) draw->SetOneShot();
01711 draw->SetSpline( false );
01712 draw->SetLineBegin( docmanager->GetLineBegin() );
01713 draw->SetLineEnd( docmanager->GetLineEnd() );
01714 docmanager->SetSpline( false );
01715 contr->PushTool(draw);
01716 }
01717 else if ( m_args.argValue.which == &a2dDrawPolylineLTool::COMID_PushTool_DrawPolylineL_Splined )
01718 {
01719 a2dDrawPolylineLTool* draw = new a2dDrawPolylineLTool(contr);
01720 if ( docmanager->GetOneShotTools() ) draw->SetOneShot();
01721 draw->SetSpline( true );
01722 draw->SetLineBegin( docmanager->GetLineBegin() );
01723 draw->SetLineEnd( docmanager->GetLineEnd() );
01724 docmanager->SetSpline( true );
01725 contr->PushTool(draw);
01726 }
01727 else if ( m_args.argValue.which == &a2dDrawPolylineLToolFast::COMID_PushTool_DrawPolylineLFast )
01728 {
01729 a2dDrawPolylineLToolFast* draw = new a2dDrawPolylineLToolFast(contr);
01730 if ( docmanager->GetOneShotTools() ) draw->SetOneShot();
01731 draw->SetSpline( false );
01732 docmanager->SetSpline( false );
01733 contr->PushTool(draw);
01734 }
01735 else if ( m_args.argValue.which == &a2dDrawPolylineLToolFast::COMID_PushTool_DrawPolylineLFast_Splined )
01736 {
01737 a2dDrawPolylineLToolFast* draw = new a2dDrawPolylineLToolFast(contr);
01738 if ( docmanager->GetOneShotTools() ) draw->SetOneShot();
01739 draw->SetSpline( true );
01740 docmanager->SetSpline( true );
01741 contr->PushTool(draw);
01742 }
01743 else if ( m_args.argValue.which == &a2dDrawPolygonLTool::COMID_PushTool_DrawPolygonL )
01744 {
01745 a2dDrawPolygonLTool* draw = new a2dDrawPolygonLTool(contr);
01746 if ( docmanager->GetOneShotTools() ) draw->SetOneShot();
01747 draw->SetSpline( false );
01748 docmanager->SetSpline( false );
01749 contr->PushTool(draw);
01750 }
01751 else if ( m_args.argValue.which == &a2dDrawPolygonLTool::COMID_PushTool_DrawPolygonL_Splined )
01752 {
01753 a2dDrawPolygonLTool* draw = new a2dDrawPolygonLTool(contr);
01754 if ( docmanager->GetOneShotTools() ) draw->SetOneShot();
01755 draw->SetSpline( true );
01756 docmanager->SetSpline( true );
01757 contr->PushTool(draw);
01758 }
01759 else if ( m_args.argValue.which == &a2dDrawPolygonLToolFast::COMID_PushTool_DrawPolygonLFast )
01760 {
01761 a2dDrawPolygonLToolFast* draw = new a2dDrawPolygonLToolFast(contr);
01762 if ( docmanager->GetOneShotTools() ) draw->SetOneShot();
01763 contr->PushTool(draw);
01764 }
01765 else if ( m_args.argValue.which == &a2dDrawPolygonLToolFast::COMID_PushTool_DrawPolygonLFast_Splined )
01766 {
01767 a2dDrawPolygonLToolFast* draw = new a2dDrawPolygonLToolFast(contr);
01768 if ( docmanager->GetOneShotTools() ) draw->SetOneShot();
01769 draw->SetSpline( true );
01770 docmanager->SetSpline( true );
01771 contr->PushTool(draw);
01772 }
01773 else if ( m_args.argValue.which == &a2dDragMultiTool::COMID_PushTool_DragMulti )
01774 {
01775 a2dDragMultiTool* drag = new a2dDragMultiTool(contr);
01776 if ( docmanager->GetOneShotTools() ) drag->SetOneShot();
01777 contr->PushTool(drag);
01778 }
01779 else if ( m_args.argValue.which == &a2dFastDragMultiTool::COMID_PushTool_FastDragMulti )
01780 {
01781 a2dFastDragMultiTool* drag = new a2dFastDragMultiTool(contr);
01782 if ( docmanager->GetOneShotTools() ) drag->SetOneShot();
01783 contr->PushTool(drag);
01784 }
01785 else if ( m_args.argValue.which == &a2dFastCopyMultiTool::COMID_PushTool_FastCopyMulti )
01786 {
01787 a2dFastCopyMultiTool* drag = new a2dFastCopyMultiTool(contr);
01788 if ( docmanager->GetOneShotTools() ) drag->SetOneShot();
01789 contr->PushTool(drag);
01790 }
01791 else if ( m_args.argValue.which == &a2dCopyMultiTool::COMID_PushTool_CopyMulti )
01792 {
01793 a2dCopyMultiTool* copy = new a2dCopyMultiTool(contr);
01794 if ( docmanager->GetOneShotTools() ) copy->SetOneShot();
01795 contr->PushTool(copy);
01796 }
01797 else if ( m_args.argValue.which == &a2dPropertyTool::COMID_PushTool_Property )
01798 {
01799 a2dPropertyTool* propertyedit = new a2dPropertyTool(contr);
01800 if ( docmanager->GetOneShotTools() ) propertyedit->SetOneShot();
01801 contr->PushTool(propertyedit);
01802 }
01803 else if ( m_args.argValue.which == &a2dMeasureTool::COMID_PushTool_Measure )
01804 {
01805 a2dMeasureTool* draw = new a2dMeasureTool(contr);
01806 if ( docmanager->GetOneShotTools() ) draw->SetOneShot();
01807 contr->PushTool(draw);
01808 }
01809 else if ( m_args.argValue.which == &a2dDrawWirePolylineLTool::COMID_PushTool_DrawWirePolylineL )
01810 {
01811 a2dDrawWirePolylineLTool* draw = new a2dDrawWirePolylineLTool(contr);
01812 if ( docmanager->GetOneShotTools() ) draw->SetOneShot();
01813 contr->PushTool(draw);
01814 }
01815 else if ( m_args.argValue.which == &a2dCentralEditorCommandProcessor::COMID_PopTool )
01816 {
01817 return docmanager->PopTool() != NULL;
01818 }
01819 else if ( m_args.argValue.which == &a2dDrawVPathTool::COMID_PushTool_DrawVPath )
01820 {
01821 a2dDrawVPathTool* draw = new a2dDrawVPathTool(contr);
01822 if ( docmanager->GetOneShotTools() ) draw->SetOneShot();
01823 contr->PushTool(draw);
01824 }
01825 else
01826 a2dDocviewGlobals->ReportError( a2dError_NoTool );
01827
01828 if ( contr->GetFirstTool() )
01829 {
01830 a2dStTool* draw = (a2dStTool*) contr->GetFirstTool();
01831 if ( wxDynamicCast( draw, a2dStDrawTool ) )
01832 wxDynamicCast( draw, a2dStDrawTool )->SetEditAtEnd( docmanager->GetEditAtEndTools() );
01833 if ( wxDynamicCast( draw, a2dStDrawToolFast ) )
01834 wxDynamicCast( draw, a2dStDrawToolFast )->SetEditAtEnd( docmanager->GetEditAtEndTools() );
01835 draw->SetActive();
01836 }
01837 return true;
01838 }
01839 a2dDocviewGlobals->ReportError( a2dError_NoController );
01840 return false;
01841 }
01842
01843 bool a2dCommand_PushTool::Undo()
01844 {
01845 return false;
01846 }
01847