Mod/Web/Gui/Workbench.cpp

Go to the documentation of this file.
00001 /***************************************************************************
00002  *   Copyright (c) 2008 Werner Mayer <wmayer[at]users.sourceforge.net>     *
00003  *                                                                         *
00004  *   This file is part of the FreeCAD CAx development system.              *
00005  *                                                                         *
00006  *   This library is free software; you can redistribute it and/or         *
00007  *   modify it under the terms of the GNU Library General Public           *
00008  *   License as published by the Free Software Foundation; either          *
00009  *   version 2 of the License, or (at your option) any later version.      *
00010  *                                                                         *
00011  *   This library  is distributed in the hope that it will be useful,      *
00012  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
00013  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
00014  *   GNU Library General Public License for more details.                  *
00015  *                                                                         *
00016  *   You should have received a copy of the GNU Library General Public     *
00017  *   License along with this library; see the file COPYING.LIB. If not,    *
00018  *   write to the Free Software Foundation, Inc., 59 Temple Place,         *
00019  *   Suite 330, Boston, MA  02111-1307, USA                                *
00020  *                                                                         *
00021  ***************************************************************************/
00022 
00023 
00024 #include "PreCompiled.h"
00025 
00026 #ifndef _PreComp_
00027 # include <qobject.h>
00028 #endif
00029 
00030 #include "Workbench.h"
00031 #include <Gui/ToolBarManager.h>
00032 #include <Gui/MenuManager.h>
00033 #include <Gui/ToolBarManager.h>
00034 #include <Gui/DockWindowManager.h>
00035 #include <Gui/Application.h>
00036 #include <Gui/Action.h>
00037 #include <Gui/Command.h>
00038 #include <Gui/Selection.h>
00039 #include <Gui/ToolBoxManager.h>
00040 #include <App/Document.h>
00041 #include <App/DocumentObject.h>
00042 
00043 using namespace WebGui;
00044 
00045 #if 0 // needed for Qt's lupdate utility
00046     qApp->translate("Workbench", "Navigation");
00047 #endif
00048 
00050 TYPESYSTEM_SOURCE(WebGui::Workbench, Gui::StdWorkbench)
00051 
00052 Workbench::Workbench()
00053 {
00054 }
00055 
00056 Workbench::~Workbench()
00057 {
00058 }
00059 
00060 void Workbench::setupContextMenu(const char* recipient,Gui::MenuItem* item) const
00061 {
00062     //if (strcmp(recipient,"View") == 0)
00063     //{
00064     //    Gui::MenuItem* StdViews = new Gui::MenuItem();
00065     //    StdViews->setCommand( "Standard views" );
00066 
00067     //    *StdViews << "Std_ViewAxo" << "Separator" << "Std_ViewFront" << "Std_ViewTop" << "Std_ViewRight"
00068     //              << "Std_ViewRear" << "Std_ViewBottom" << "Std_ViewLeft";
00069 
00070     //    *item << "Std_ViewFitAll" << "Std_ViewFitSelection" << StdViews
00071     //          << "Separator" << "Std_ViewDockUndockFullscreen";
00072 
00073     //    if ( Gui::Selection().countObjectsOfType(App::DocumentObject::getClassTypeId()) > 0 )
00074     //        *item << "Separator" << "Std_SetAppearance" << "Std_ToggleVisibility" << "Std_TreeSelection" 
00075     //              << "Std_RandomColor" << "Separator" << "Std_Delete";
00076     //}
00077     //else if (strcmp(recipient,"Tree") == 0)
00078     //{
00079     //    if ( Gui::Selection().countObjectsOfType(App::DocumentObject::getClassTypeId()) > 0 )
00080     //        *item << "Std_SetAppearance" << "Std_ToggleVisibility" 
00081     //              << "Std_RandomColor" << "Separator" << "Std_Delete";
00082     //}
00083 }
00084 
00085 Gui::MenuItem* Workbench::setupMenuBar() const
00086 {
00087     return Gui::StdWorkbench::setupMenuBar();
00088     //Gui::CommandManager &mgr = Gui::Application::Instance->commandManager();
00090     //Gui::MenuItem* menuBar = new Gui::MenuItem;
00091 
00092 //    // File
00093 //    Gui::MenuItem* file = new Gui::MenuItem( menuBar );
00094 //    file->setCommand("&File");
00095 //    *file << "Std_New" << "Std_Open" << "Separator" << "Std_CloseActiveWindow"
00096 //          << "Std_CloseAllWindows" << "Separator" << "Std_Save" << "Std_SaveAs"
00097 //          << "Separator" << "Std_Import" << "Std_Export" << "Std_ProjectInfo" 
00098 //        //<< "Separator" << "Std_Print" << "Std_PrintPdf"
00099 //          << "Separator" << "Std_RecentFiles" << "Separator" << "Std_Quit";
00100 //
00101 //    // Edit
00102 //    Gui::MenuItem* edit = new Gui::MenuItem( menuBar );
00103 //    edit->setCommand("&Edit");
00104 //    *edit << "Std_Undo" << "Std_Redo" << "Separator" << "Std_Cut" << "Std_Copy"
00105 //          << "Std_Paste" << "Std_DuplicateSelection" << "Separator"
00106 //          << "Std_Refresh" << "Std_SelectAll" << "Std_Delete" << "Std_Placement"
00107 //          << "Separator" << "Std_DlgPreferences";
00108 //
00109 //    // Standard views
00110 //    Gui::MenuItem* stdviews = new Gui::MenuItem;
00111 //    stdviews->setCommand("Standard views");
00112 //    *stdviews << "Std_ViewFitAll" << "Std_ViewFitSelection" << "Std_ViewAxo"
00113 //              << "Separator" << "Std_ViewFront" << "Std_ViewRight"
00114 //              << "Std_ViewTop" << "Separator" << "Std_ViewRear" 
00115 //              << "Std_ViewLeft" << "Std_ViewBottom";
00116 //
00117 //    // stereo
00118 //    Gui::MenuItem* view3d = new Gui::MenuItem;
00119 //    view3d->setCommand("&Stereo");
00120 //    *view3d << "Std_ViewIvStereoRedGreen" << "Std_ViewIvStereoQuadBuff" 
00121 //            << "Std_ViewIvStereoInterleavedRows" << "Std_ViewIvStereoInterleavedColumns" 
00122 //            << "Std_ViewIvStereoOff" << "Separator" << "Std_ViewIvIssueCamPos";
00123 //
00124 //    // zoom
00125 //    Gui::MenuItem* zoom = new Gui::MenuItem;
00126 //    zoom->setCommand("&Zoom");
00127 //    *zoom << "Std_ViewZoomIn" << "Std_ViewZoomOut" << "Separator" << "Std_ViewBoxZoom";
00128 //
00129 //    // Visibility
00130 //    Gui::MenuItem* visu = new Gui::MenuItem;
00131 //    visu->setCommand("Visibility");
00132 //    *visu << "Std_ToggleVisibility" << "Std_ShowSelection" << "Std_HideSelection"
00133 //          << "Separator" << "Std_ToggleObjects" << "Std_ShowObjects" << "Std_HideObjects";
00134 //
00135 //    // View
00136 //    Gui::MenuItem* view = new Gui::MenuItem( menuBar );
00137 //    view->setCommand("&View");
00138 //    *view << "Std_ViewCreate" << "Std_OrthographicCamera" << "Std_PerspectiveCamera" << "Separator" 
00139 //          << stdviews << "Std_FreezeViews" << "Separator" << view3d << zoom
00140 //          << "Std_ViewDockUndockFullscreen" << "Std_ToggleClipPlane" << "Separator" << visu
00141 //          << "Std_SetAppearance" << "Std_ToggleVisibility" << "Std_RandomColor" << "Separator" 
00142 //          //<< "Std_MeasureDistance" << "Separator" 
00143 //          << "Std_Workbench" << "Std_ToolBarMenu" << "Std_DockViewMenu" << "Separator" 
00144 //          << "Std_ViewStatusBar" << "Std_UserInterface";
00145 //
00146 //    // Tools
00147 //    Gui::MenuItem* tool = new Gui::MenuItem( menuBar );
00148 //    tool->setCommand("&Tools");
00149 //    *tool << "Std_CommandLine" << "Std_DlgParameter" << "Separator" << "Std_DlgMacroRecord"
00150 //          << "Std_MacroStopRecord" << "Std_DlgMacroExecute" << "Std_DlgMacroExecuteDirect" 
00151 //          << "Separator" << "Std_ViewScreenShot" << "Separator" << "Std_DlgCustomize";
00152 //
00153 //    // Mesh ****************************************************************************************************
00154 //    Gui::MenuItem* mesh = new Gui::MenuItem( menuBar );
00155 //
00156 //    // submenu analyze
00157 //    Gui::MenuItem* analyze = new Gui::MenuItem();
00158 //    analyze->setCommand("Analyze");
00159 //    *analyze << "Mesh_Evaluation" 
00160 //             << "Mesh_EvaluateFacet" 
00161 //             << "Mesh_CurvatureInfo" 
00162 //             << "Separator" 
00163 //             << "Mesh_EvaluateSolid" 
00164 //             << "Mesh_BoundingBox";
00165 //
00166 //    // submenu boolean
00167 //    Gui::MenuItem* boolean = new Gui::MenuItem();
00168 //    boolean->setCommand("Boolean");
00169 //    *boolean << "Mesh_Union" 
00170 //             << "Mesh_Intersection" 
00171 //             << "Mesh_Difference";
00172 //
00173 //    mesh->setCommand("&Meshes");
00174 //    *mesh << "Mesh_Import" 
00175 //          << "Mesh_Export" 
00176 //          << "Mesh_FromGeometry" 
00177 //          << "Separator"
00178 //          << analyze 
00179 //          << "Mesh_HarmonizeNormals" 
00180 //          << "Mesh_FlipNormals" 
00181 //          << "Separator" 
00182 //          << "Mesh_FillupHoles" 
00183 //          << "Mesh_FillInteractiveHole" 
00184 //          << "Mesh_RemoveComponents"
00185 //          << "Mesh_RemoveCompByHand" 
00186 //          << "Separator" 
00187 //          << "Mesh_BuildRegularSolid" 
00188 //          << boolean << "Separator" 
00189 //          << "Mesh_PolyCut"
00190 //          << "Mesh_PolySplit" 
00191 //          << "Mesh_PolySegm" 
00192 //          << "Mesh_ToolMesh" 
00193 //          << "Mesh_VertexCurvature";
00194 //
00195 //    // Part ****************************************************************************************************
00196 //
00197 //    Gui::MenuItem* part = new Gui::MenuItem(menuBar);
00198 //    part->setCommand("&Part");
00199 //
00200 //    // submenu boolean
00201 //    Gui::MenuItem* para = new Gui::MenuItem();
00202 //    para->setCommand("Parametric");
00203 //    *para << "Part_Box"
00204 //          << "Part_Cylinder"
00205 //          << "Part_Sphere"
00206 //          << "Part_Cone"
00207 //          << "Part_Torus"
00208 //          << "Part_Primitives";
00209 //    *part << para
00210 //          << "Part_Boolean"
00211 //          << "Part_Extrude"
00212 //          << "Part_Revolve"
00213 //          << "Part_Fillet";
00214 //
00215 //#   ifdef WEB_SHOW_SKETCHER
00216 //    if (mgr.getCommandByName("Sketcher_NewSketch")) {
00217 //        Gui::MenuItem* sketch = new Gui::MenuItem(menuBar);
00218 //        sketch->setCommand("Ske&tch");
00219 //        *sketch 
00220 //            << "Sketcher_NewSketch"
00221 //            << "Separator" 
00222 //            << "PartDesign_Pad" 
00223 //            << "PartDesign_Fillet"
00224 //        ;
00225 //    }
00226 //#   endif
00227 //
00228 //    // Drawing ****************************************************************************************************
00229 //
00230 //    Gui::MenuItem* drawing = new Gui::MenuItem(menuBar);
00231 //
00232 //    drawing->setCommand("&Drawing");
00233 //    *drawing
00234 //        << "Drawing_Open" 
00235 //        << "Separator" 
00236 //        << "Drawing_NewA3Landscape"  
00237 //        << "Drawing_NewView" 
00238 //        << "Drawing_ExportPage"
00239 //    ;
00240 //
00241 //    // Raytracing ****************************************************************************************************
00242 //
00243 //    Gui::MenuItem* raytracing = new Gui::MenuItem(menuBar);
00244 //
00245 //    raytracing->setCommand("&Raytracing");
00246 //    *raytracing 
00247 //        << "Raytracing_WriteView" 
00248 //        << "Raytracing_WriteCamera" 
00249 //        << "Raytracing_WritePart"; 
00250 //    ;
00251 //
00252 //    // Drafting ****************************************************************************************************
00253 //#   ifdef WEB_USE_DRAFTING
00254 //    if (mgr.getCommandByName("Draft_Line")) {
00255 //        Gui::MenuItem* Drafting = new Gui::MenuItem(menuBar);
00256 //
00257 //        Drafting->setCommand("&Drafting");
00258 //        *Drafting 
00259 //            << "Draft_SelectPlane"
00260 //            << "Draft_Line"
00261 //            << "Draft_Polyline"
00262 //            << "Draft_Circle"
00263 //            << "Draft_Arc"
00264 //            << "Draft_Rectangle"
00265 //            << "Draft_Text"
00266 //            << "Draft_Dimension"
00267 //            << "Separator" 
00268 //            << "Draft_Move" 
00269 //            << "Draft_Rotate" 
00270 //            << "Draft_Offset" 
00271 //            << "Draft_Trimex" 
00272 //            << "Draft_Upgrade" 
00273 //            << "Draft_Downgrade" 
00274 //            << "Draft_Scale" 
00275 //            << "Separator" 
00276 //            << "Draft_ApplyStyle"
00277 //        ;
00278 //    }
00279 //#   endif
00280 //
00281 //    // xxx ****************************************************************************************************
00282 //
00283 //
00284 //    // Windows
00285 //    Gui::MenuItem* wnd = new Gui::MenuItem( menuBar );
00286 //    wnd->setCommand("&Windows");
00287 //    *wnd << "Std_ActivateNextWindow" << "Std_ActivatePrevWindow" << "Separator"
00288 //         << "Std_TileWindows" << "Std_CascadeWindows"
00289 //         << "Std_ArrangeIcons" << "Separator" << "Std_WindowsMenu" << "Std_Windows";
00290 //    
00291 //    // help ****************************************************************************************************
00292 //    // Separator
00293 //    Gui::MenuItem* sep = new Gui::MenuItem( menuBar );
00294 //    sep->setCommand( "Separator" );
00295 //
00296 //    // Help
00297 //    Gui::MenuItem* helpWebsites = new Gui::MenuItem;
00298 //    helpWebsites->setCommand("&Online-help");
00299 //    *helpWebsites << "Std_OnlineHelpWebsite" 
00300 //                  << "Std_FreeCADWebsite" 
00301 //                  << "Std_PythonWebsite";
00302 //
00303 //    Gui::MenuItem* help = new Gui::MenuItem( menuBar );
00304 //    help->setCommand("&Help");
00305 //    *help << "Std_OnlineHelp" 
00306 //          << "Std_OnlineHelpPython" 
00307 //          << "Std_PythonHelp"
00308 //          << helpWebsites  
00309 //          << "Separator" 
00310 //          << "Test_Test" 
00311 //          << "Separator" 
00312 //          << "Std_About"
00313 //          << "Std_AboutQt" 
00314 //          << "Separator" 
00315 //          << "Std_WhatsThis" ;
00316 //
00317 //      return menuBar;
00318 }
00319 
00320 Gui::ToolBarItem* Workbench::setupToolBars() const
00321 {
00322     Gui::ToolBarItem* root = StdWorkbench::setupToolBars();
00323 
00324     // web navigation toolbar
00325     Gui::ToolBarItem* navigation = new Gui::ToolBarItem(root);
00326     navigation->setCommand("Navigation");
00327     *navigation << "Web_OpenWebsite" 
00328                 << "Separator" 
00329                 << "Web_BrowserBack" 
00330                 << "Web_BrowserNext" 
00331                 << "Web_BrowserRefresh"
00332                 << "Web_BrowserStop"
00333                 << "Separator"
00334                 << "Web_BrowserZoomIn"
00335                 << "Web_BrowserZoomOut";
00336 
00337     return root;
00338 
00339 }
00340 
00341 Gui::ToolBarItem* Workbench::setupCommandBars() const
00342 {
00343     Gui::ToolBarItem* root = new Gui::ToolBarItem;
00344     return root;
00345 }
00346 
00347 Gui::DockWindowItems* Workbench::setupDockWindows() const
00348 {
00349     Gui::DockWindowItems* root = Gui::StdWorkbench::setupDockWindows();
00350     //root->setVisibility(false); // hide all dock windows by default
00351     //root->setVisibility("Std_CombiView",true); // except of the combi view
00352     return root;
00353 }

Generated on Wed Nov 23 19:01:11 2011 for FreeCAD by  doxygen 1.6.1