VR-Forces 4.0.4 Class Documentation
include/vrfGuiCoreQt/DtConditionalMenu.h
Go to the documentation of this file.
00001 /******************************************************************************
00002 ** Copyright (c) 2009 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 ******************************************************************************/
00005 
00008 
00010 
00011 #pragma once
00012 
00013 #include <vrvUtil/signalslib.h>
00014 #include <vrfGuiCoreQt/vrfGuiCoreQt.h>
00015 #include <vrfGuiCoreQt/DtConfigurableMenu.h> 
00016 
00017 #include <vrvCore/DtSelectionManager.h> 
00018 
00019 #include <QtGui/QMenu>
00020 
00021 class QEvent;
00022 class DtSimStatement;
00023 
00024 namespace makVrf
00025 {
00026    class DtVrfConditionalExpressionCreator;
00027    class DtVrfConditionalAction;
00028 
00029    class DT_DLL_VRFGUICOREQT DtVrfConditionalMenu : public QMenu
00030    {
00031    public:
00032       DtVrfConditionalMenu(makVrv::DtDe& de, const QString& title, QWidget* parent);
00033 
00034       virtual ~DtVrfConditionalMenu();
00035 
00036       boost::signal<void (const DtSimStatement&)> signal_addConditional;
00037 
00038       void setEntitySet(const makVrv::DtSelectionManager::IdSet& i)
00039       {
00040          myEntitySet = i;
00041       }
00042 
00043       const makVrv::DtSelectionManager::IdSet& entitySet() const
00044       {
00045          return myEntitySet;
00046       }
00047 
00048    protected:
00049       virtual void slot_onConditionComplete(const DtSimStatement&);
00050 
00051    protected:
00052       virtual bool eventFilter(QObject *, QEvent *);
00053       virtual void actionAdded(QEvent*);
00054       virtual bool shouldAddAsPartOfMenu(const QList<QAction*>& acts, QAction* toMatch) const;
00055 
00056    protected:
00057       makVrv::DtSelectionManager::IdSet      myEntitySet;
00058       std::vector<DtVrfConditionalAction*>   myDisconnectFrom;
00059       makVrv::DtDe&                          myDe;
00060    };
00061 
00062    class DT_DLL_VRFGUICOREQT DtConditionalMenu : public DtConfigurableMenu
00063    { 
00064    public:
00065 
00067       DtConditionalMenu(makVrv::DtDe&);
00068 
00070       virtual ~DtConditionalMenu();
00071 
00073       virtual QMenu* createMenu(makVrv::DtDe&, QWidget* parent);
00074 
00075       static DtConditionalMenu& instance(makVrv::DtDe&);
00076 
00080       static DtConditionalMenu* menuInstance(makVrv::DtDe&);
00081 
00082       virtual DtConditionalMenu* newInstance();
00083 
00084    public:
00086       virtual void addCondition(const std::string& p, DtVrfConditionalExpressionCreator* i);
00087       virtual void addConditionAfter(const std::string& p, const std::string& after, DtVrfConditionalExpressionCreator* i);
00088       virtual void addConditionBefore(const std::string& p, const std::string& before, DtVrfConditionalExpressionCreator* i);
00089       virtual void removeCondition(const std::string& r);
00090 
00091    public:
00093       virtual DtSubMenuConfiguration& menuConfiguration();
00094 
00096       virtual DtConfigurableMenuAssembler& menuAssembler();
00097 
00098    protected:
00100       virtual void createMenuConfiguration(makVrv::DtDe& de);
00101 
00102    protected:
00104       static DtConfigurableMenuAssembler* theMenuAssembler;
00105       static DtSubMenuConfiguration* theMenuConfiguration;
00106    }; 
00107 }

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)