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
23 class QTX_EXPORT Selection
26 virtual int count() const = 0;
27 virtual QtxValue param( const int, const QString& ) const = 0;
28 virtual QtxValue globalParam( const QString& ) const;
30 virtual QChar equality() const;
31 virtual QString selCountParam() const;
33 static QChar defEquality();
34 static QString defSelCountParam();
38 class Operations : public QtxStrings
41 Operations( QtxPopupMgr* );
42 virtual ~Operations();
44 virtual int prior( const QString&, bool isBin ) const;
45 virtual QtxParser::Error calculate( const QString&, QtxValue&, QtxValue& ) const;
50 QtxPopupMgr* myPopupMgr;
52 QMap< QString, QtxValue > myValues;
55 friend class Operations;
61 QtxPopupMgr( QPopupMenu*, QObject* = 0 );
62 virtual ~QtxPopupMgr();
64 virtual int registerAction( QAction*,
65 const QString& visible,
66 const QString& toggle = QString::null,
68 virtual void unRegisterAction( const int );
70 virtual bool isVisible( const int actId, const int place ) const;
72 bool hasRule( QAction*, bool visibility ) const;
73 bool hasRule( const int, bool visibility ) const;
74 void setRule( QAction*, const QString&, bool visibility );
75 void setRule( const int, const QString&, bool visibility );
76 void updatePopup( QPopupMenu*, Selection* );
78 //return name of parameter corresponding to selected objects count
79 //it will be set automatically
81 virtual bool load( const QString&, QtxActionMgr::Reader& );
84 typedef QMap< QAction*, QtxParser* > RulesMap;
87 virtual bool isSatisfied( QAction*, bool visibility ) const;
88 void setParams( QtxParser*, QStringList& ) const;
89 RulesMap& map( bool visibility ) const;
91 void createOperations();
94 RulesMap myVisibility, myToggle;
95 Selection* myCurrentSelection;
96 QtxListOfOperations* myOperations;
101 class QtxPopupMgr::PopupCreator : public QtxActionMgr::Creator
104 PopupCreator( QtxActionMgr::Reader*, QtxPopupMgr* );
105 virtual ~PopupCreator();
107 virtual int append( const QString&, const bool,
108 const ItemAttributes&, const int );
110 virtual QString visibleRule( const ItemAttributes& ) const;
111 virtual QString toggleRule( const ItemAttributes& ) const;