![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2012 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 00007 00008 #pragma once 00009 00010 #include <vrfGuiCoreQt/vrfGuiCoreQt.h> 00011 #include <vrvCoreQt/DtMenuItem.h> 00012 #include <vrvCoreQt/DtMenu.h> 00013 #include <QMenu> 00014 #include <QAction> 00015 #include <QObject> 00016 #include <QMessageBox> 00017 00018 namespace makVrf 00019 { 00023 typedef void (DtSimpleMenuItemAction) (makVrv::DtDe& de, void* usr); 00024 00031 class DT_DLL_VRFGUICOREQT DtSimpleMenu : public makVrv::DtMenu 00032 { 00033 public: 00034 DtSimpleMenu(makVrv::DtDe& de, std::string menuId, std::string menuText) 00035 : makVrv::DtMenu(de, menuId) 00036 , myMenuText(menuText) 00037 { } 00038 00039 virtual ~DtSimpleMenu() { } 00040 00042 virtual std::string menuText() { return myMenuText; } 00043 QMenu* createMenu(makVrv::DtDe& de, QWidget* parent) 00044 { 00045 return new QMenu(QObject::tr(myMenuText.c_str()), parent); 00046 } 00047 00048 protected: 00049 std::string myMenuText; 00050 }; 00051 00058 class DT_DLL_VRFGUICOREQT DtSimpleMenuItem : public makVrv::DtMenuItem 00059 { 00060 public: 00061 DtSimpleMenuItem(makVrv::DtDe& de, std::string menuItemId, std::string menuItemText) 00062 : makVrv::DtMenuItem(menuItemId) 00063 , myDe(de) 00064 , myMenuItemText(menuItemText) 00065 , myActionFunction(0) 00066 , myUser(0) 00067 { } 00068 00069 virtual ~DtSimpleMenuItem() 00070 { 00071 myActionFunction = 0; 00072 myUser = 0; 00073 } 00074 00076 virtual std::string menuItemText() { return myMenuItemText; } 00077 00078 virtual QAction* createAction(makVrv::DtDe&, QWidget* parent) 00079 { 00080 return new QAction(QObject::tr(myMenuItemText.c_str()), parent); 00081 } 00082 00089 virtual void setAction(DtSimpleMenuItemAction* actionFunction, void* usr) 00090 { 00091 myActionFunction = actionFunction; 00092 myUser = usr; 00093 } 00094 00095 protected: 00097 void on_triggered() 00098 { 00099 if (myActionFunction) myActionFunction(myDe, myUser); 00100 } 00101 00102 DtSimpleMenuItemAction* myActionFunction; 00103 void* myUser; 00104 std::string myMenuItemText; 00105 makVrv::DtDe& myDe; 00106 }; 00107 00108 }