2 #ifndef __QTX_POPUP_MGR_HEADER__
3 #define __QTX_POPUP_MGR_HEADER__
6 #include "QtxActionMenuMgr.h"
8 #include "QtxStdOperations.h"
12 class QtxListOfOperations;
14 //================================================================
17 //================================================================
18 class QTX_EXPORT QtxPopupMgr : public QtxActionMenuMgr
26 virtual int count() const = 0;
27 virtual QtxValue param( const int, const QString& ) const = 0;
31 class Operations : public QtxStrings
34 Operations( QtxPopupMgr* );
35 virtual ~Operations();
37 virtual int prior( const QString&, bool isBin ) const;
38 virtual QtxParser::Error calculate( const QString&, QtxValue&, QtxValue& ) const;
43 QtxPopupMgr* myPopupMgr;
45 QMap< QString, QtxValue > myValues;
48 friend class Operations;
54 QtxPopupMgr( QPopupMenu*, QObject* = 0 );
55 virtual ~QtxPopupMgr();
57 virtual int registerAction( QAction*,
58 const QString& visible,
59 const QString& toggle = QString::null,
61 virtual void unRegisterAction( const int );
63 virtual bool isVisible( const int actId, const int place ) const;
65 bool hasRule( QAction*, bool visibility ) const;
66 bool hasRule( const int, bool visibility ) const;
67 void setRule( QAction*, const QString&, bool visibility );
68 void setRule( const int, const QString&, bool visibility );
69 void updatePopup( QPopupMenu*, Selection* );
71 virtual QChar equality() const;
72 virtual QString selCountParam() const;
73 //return name of parameter corresponding to selected objects count
74 //it will be set automatically
76 virtual bool load( const QString&, QtxActionMgr::Reader& );
79 typedef QMap< QAction*, QtxParser* > RulesMap;
82 virtual bool isSatisfied( QAction*, bool visibility ) const;
83 void setParams( QtxParser*, QStringList& ) const;
84 RulesMap& map( bool visibility ) const;
86 void createOperations();
89 RulesMap myVisibility, myToggle;
90 Selection* myCurrentSelection;
91 QtxListOfOperations* myOperations;
96 class QtxPopupMgr::PopupCreator : public QtxActionMgr::Creator
99 PopupCreator( QtxActionMgr::Reader*, QtxPopupMgr* );
100 virtual ~PopupCreator();
102 virtual int append( const QString&, const bool,
103 const ItemAttributes&, const int );
105 virtual QString visibleRule( const ItemAttributes& ) const;
106 virtual QString toggleRule( const ItemAttributes& ) const;