VR-Forces 4.0.4 Class Documentation
include/vrfGuiCoreQt/simpleMenu.h
Go to the documentation of this file.
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 }

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)