Code Search for Developers
 
 
  

CSceneGraphEditMenu.h from osgDesigner at Krugle


Show CSceneGraphEditMenu.h syntax highlighted

#ifndef __CSCENEGRAPHEDITMENU_H__
#define __CSCENEGRAPHEDITMENU_H__ 

#include <osgIntrospectionToolKit/signalslib.hpp>

#include <QtCore/QtCore>
#include <QtGui/QtGui>

#include <map>

#include <osgIntrospection/Value>
namespace osgIntrospection 
{
    class Type;
    class PropertyInfo;
}

namespace osgDesigner
{

    class CSceneGraphView;
    class CSceneGraphModel;
    
    class CSceneGraphEditMenu : public QMenu
    {
        Q_OBJECT
        
        public:
        	
            CSceneGraphEditMenu(QWidget * parent = 0);
            CSceneGraphEditMenu(const QString & title, QWidget * parent = 0);
            virtual ~CSceneGraphEditMenu();
            
            void        createSceneGraphMenu(CSceneGraphView* sgv, CSceneGraphModel* sgm, QModelIndexList& mil);    
            
            QAction *   actionExpandAll();
            QAction *   actionCollapseAll();
            QAction *   actionCopyByReference();
            QAction *   actionCut();
            QAction *   actionPast();
            
        protected:
        
            std::size_t createAddActionMenu();
            void _createNewActionMenu(const osgIntrospection::Type* type, QMenu* menu);
            void createNewActionMenu(QModelIndex& mi, QMenu* menu);
            void createAction();
            void copyItemByIntance(osgIntrospection::ValueList& valueList);
            
        protected slots:

            void expandItemSlot();
            void collapseItemSlot();
            void cutItemSlot();
            void copyItemByIntanceSlot();
            void copyItemByIntanceDialogSlot();
            void copyItemByReferenceSlot();
            void pasteItemSlot();
            void newItemSlot(QAction* action);
            void addItemSlot(QAction* action);
            void removeItemSlot();
            void setFromFileSlot();
            void viewItemInPropertiesViewSlot();
            void viewItemInNewPropertiesViewSlot();
            
        protected:
            
            void _recursive_expandItem(QModelIndex& mi);
            void _recursive_collapseItem(QModelIndex& mi);
        
            
        private:
            
            CSceneGraphModel*       _sgm;
            CSceneGraphView*        _sgv;
            
            QModelIndexList         _mil;
            
            QMenu*                  _newActionMenu;
            QMenu*                  _addActionMenu;
            QMenu*                  _viewInMenu;

            QAction*                _expandAct;
            QAction*                _collapseAct;
            QAction*                _undoAct;
            QAction*                _cutAct;
            QAction*                _copyByIntanceAct;
            QAction*                _copyByIntanceDialogAct;
            QAction*                _copyByReferenceAct;
            QAction*                _pasteAct;
            QAction*                _removeAct;
            QAction*                _viewInPropertiesViewAct;
            QAction*                _viewInNewPropertiesViewAct;
            
            QAction*                _setFromClipBoardAct;
            QAction*                _setFromFileAct;
            
            
            std::map<QMenu*, const osgIntrospection::PropertyInfo*>     _addArrayMenuMap;
    };

}

#endif // ** __CSCENEGRAPHEDITMENU_H__ ** //




See more files for this project here

osgDesigner

osgDesigner is a graphical tool used to modify an OpenSceneGraph (OSG) scene using the osgIntrospection framework. OpenSceneGraph developpers will be able to extend osgDesigner at need using (editor | render | osgIntrospection wrapper) plugin system.

Project homepage: http://sourceforge.net/projects/osgdesigner
Programming language(s): C++,Shell Script
License: other

  CConfig.h
  CFileMenu.h
  CMainWindow.h
  CPropertiesModel.h
  CPropertiesView.h
  CPropertiesWidget.h
  CPropertyInfoModel.h
  CSceneGraphEditMenu.h
  CSceneGraphModel.h
  CSceneGraphView.h
  CSceneGraphWidget.h
  CTypeModel.h
  CTypeWidget.h
  CValueMimeData.h
  CValueModel.h
  CValueView.h
  Export.h
  FlagsConstructorDialog.h
  FlowLayout.h
  IEditorWidgetABC.h
  IListModel.h
  ITreeModel.h
  MACRO.h
  PluginManagerDialog.h
  SConfigManager.h
  SWorkSpace.h