VR-Forces 4.0.4 Class Documentation
include/bhave3DGui/bhaveNewCrowdItemDialog.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 2009 MaK Technologies, Inc.
00003 ** All rights reserved.
00004 *********************************************************************/
00005 /*********************************************************************
00006 ** $RCSfile: bhaveNewCrowdItemDialog.h,v $ $Revision: 1.1 $ $State: Exp $
00007 *********************************************************************/
00008 
00011 
00012 #ifndef bhave3DNewCrowdItemDialog_H_
00013 #define bhave3DNewCrowdItemDialog_H_
00014 
00015 #include <bhave3DGui/bhave3DGuiDefines.h>
00016 #include <vrvCoreQt/DtMenuManager.h>
00017 #include <vrvCoreQt/DtQtMenuAssembler.h>
00018 #include <vrvUtil/signalslib.h>
00019 
00020 #include <vrfGuiCoreQt/DtVrfTaskSetMenu.h>
00021 #include "bhave3DGui/ui_bhaveNewCrowdItemDialogUi.h"
00022 #include "bhave3DGui/bhaveNewCrowdItemDialogInterface.h"
00023 
00024 class QTreeWidgetItem;
00025 
00026 namespace makVrf
00027 {
00028    namespace makVrfQt
00029    {
00030       class DtVrfTaskSetMenu;
00031    }
00032 }
00033 
00034 
00035 namespace BHAVE
00036 {
00037    namespace BHAVE3DGui
00038    {
00039 
00040       class DtBhaveEntityCreatePalette;
00041 
00045 
00046       class DT_DLL_bhave3DGui DtBhaveNewCrowdMenuManager : public makVrv::DtMenuManager
00047       {
00048       public:
00049          DtBhaveNewCrowdMenuManager() : makVrv::DtMenuManager()
00050          {
00051          }
00052       };
00053 
00054       class DT_DLL_bhave3DGui DtBhaveNewCrowdMenuAssembler : public makVrv::DtQtMenuAssembler
00055       {
00056          public:
00057             DtBhaveNewCrowdMenuAssembler(makVrv::DtDe&, QWidget*, QMenuBar*);
00058 
00059             virtual ~DtBhaveNewCrowdMenuAssembler()
00060             {
00061                myMenuBuilders.clear();
00062                myMenuItemBuilders.clear();
00063             }
00064 
00065             virtual void unregisterMenu(const std::string& s)
00066             {
00067                makVrv::DtMenu* b = menuBuilder(s);
00068 
00069                if (b)
00070                {
00071                   MenuBuilderMap::iterator iter = myMenuBuilders.begin();
00072 
00073                   while (iter != myMenuBuilders.end())
00074                   {
00075                      if (iter->second == b)
00076                      {  
00080                         MenuBuilderMap::iterator iter2;
00081                         iter2 = iter;
00082                         ++iter;
00083                         myMenuBuilders.erase(iter);
00084                      }
00085                      else
00086                      {
00087                         ++iter;
00088                      }
00089                   }
00090                }
00091             }
00092 
00094             QMenuBar* menuBar()
00095             {
00096                return myMenuBar;
00097             }
00098 
00100             virtual QWidget* menuWindow();
00101 
00103             virtual makVrv::DtMenuManager& menuManager();
00104 
00106             QMenu* findMenu(const makVrv::DtMenuPath& path)
00107             {
00108                return myMenuManager.findMenu(path);
00109             }
00110 
00111          protected:
00112             QWidget*              myMainWindow;
00113             QMenuBar*             myMenuBar;
00114             DtBhaveNewCrowdMenuManager myMenuManager;
00115       };
00116       
00120       class DT_DLL_bhave3DGui DtBhaveNewCrowdItemDialog : public QWidget, public DtBhaveNewCrowdItemDialogInterface
00121       {
00122          Q_OBJECT
00123 
00124       public:
00125 
00127          DtBhaveNewCrowdItemDialog(makVrv::DtDe& de, QWidget* parent = NULL, const Qt::WindowFlags& flags = 0);
00128 
00130          virtual ~DtBhaveNewCrowdItemDialog();
00131 
00133          virtual bool init(DtCreateItemData* initialData = NULL);
00134          
00136          virtual void disableMenus();
00137 
00139          virtual void enableMenus();
00140 
00142          virtual void enableMenu(QMenu* qtMenu, bool b);
00143 
00148          virtual void completeCreation(int num, const DtString & placement, const QString & stringType);
00149 
00151          virtual void setEntity(const makVrf::DtEntityMapperKey& x);
00152 
00153          virtual void addSetRequest(const DtSetDataRequest&);
00154          virtual void addTaskRequest(const DtSimTask&);
00155 
00157          virtual const DtCreateItemData & crowdCreationData();
00158 
00159       protected:
00161          virtual void slot_onDialogCreated();
00162 
00164          virtual void slot_onDialogDestroyed();
00165          
00166       protected slots:
00167 
00169          virtual void accept();
00170 
00172          virtual void onCreateObjectName(QTreeWidgetItem* i, int col);
00173 
00174          virtual void displayEntityPalette();
00175        
00176       protected:   
00177 
00179          virtual void setupGui();
00180 
00182          //virtual void setupUi(QWidget* p);
00183 
00185          virtual void closeEvent(QCloseEvent* e);
00186 
00188          virtual bool createMenus();
00189          virtual void createEntityPalette();
00190          virtual void createTaskMenu();
00191          virtual void createSetMenu();
00192 
00193          virtual void finalizeMenus();
00194          virtual void finalizeTaskMenu();
00195          virtual void finalizeSetMenu();
00196 
00197          virtual void setupMenuForCrowdDialog(makVrf::DtVrfTaskSetMenu*);
00198 
00201          virtual void slot_createObjectType(const makVrf::DtEntityMapperKey& x);
00202 
00204          virtual void slot_addSetRequest(std::vector<std::string> names, const DtSetDataRequest&);
00205 
00207          virtual void slot_addTaskRequest(std::vector<std::string> names, const DtSimTask&);
00208 
00211          virtual void keyPressEvent(QKeyEvent *e);
00212 
00213       signals:
00214 
00216          void closing();
00217 
00220          void accepted(const DtCreateItemData&);
00221 
00222       protected:
00223 
00224          Ui::NewCrowdItemDialogUi myUiImpl;
00225 
00226          makVrv::DtDe&                       myDe;
00227 
00228          DtBhaveEntityCreatePalette*         myEntityPalettePanel;
00229 
00230          makVrf::DtVrfTaskSetMenu*    myTaskMenu;
00231          makVrv::DtMenu*                            myTaskMenuBuilder;
00232          makVrf::DtVrfTaskSetMenu*    mySetMenu;
00233          makVrv::DtMenu*                            mySetMenuBuilder;
00234 
00235          makVrf::DtEntityMapperKey*   myEntityMapperKey;
00236          QString              myEntityText;
00237          DtCreateItemData                     myCreateItem;
00238       };
00239    }
00240 }
00241 
00242 #endif

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)