00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef __kactionclasses_h__
00028 #define __kactionclasses_h__
00029
00030 #include <kaction.h>
00031
00032 #include <qkeysequence.h>
00033 #include <qobject.h>
00034 #include <qvaluelist.h>
00035 #include <qguardedptr.h>
00036 #include <kguiitem.h>
00037 #include <kshortcut.h>
00038 #include <kstdaction.h>
00039 #include <kicontheme.h>
00040
00041 class QMenuBar;
00042 class QPopupMenu;
00043 class QComboBox;
00044 class QPoint;
00045 class QIconSet;
00046 class QString;
00047 class KToolBar;
00048
00049 class KAccel;
00050 class KAccelActions;
00051 class KConfig;
00052 class KConfigBase;
00053 class KURL;
00054 class KInstance;
00055 class KToolBar;
00056 class KActionCollection;
00057 class KPopupMenu;
00058 class KMainWindow;
00059
00067 class KToggleAction : public KAction
00068 {
00069 Q_OBJECT
00070 Q_PROPERTY( bool checked READ isChecked WRITE setChecked )
00071 Q_PROPERTY( QString exclusiveGroup READ exclusiveGroup WRITE setExclusiveGroup )
00072 public:
00073
00084 KToggleAction( const QString& text, const KShortcut& cut = KShortcut(), QObject* parent = 0, const char* name = 0 );
00085
00094 KToggleAction( const QString& text, const KShortcut& cut,
00095 const QObject* receiver, const char* slot, QObject* parent, const char* name = 0 );
00096
00104 KToggleAction( const QString& text, const QIconSet& pix, const KShortcut& cut = KShortcut(),
00105 QObject* parent = 0, const char* name = 0 );
00106
00114 KToggleAction( const QString& text, const QString& pix, const KShortcut& cut = KShortcut(),
00115 QObject* parent = 0, const char* name = 0 );
00116
00126 KToggleAction( const QString& text, const QIconSet& pix, const KShortcut& cut,
00127 const QObject* receiver, const char* slot, QObject* parent, const char* name = 0 );
00128
00138 KToggleAction( const QString& text, const QString& pix, const KShortcut& cut,
00139 const QObject* receiver, const char* slot,
00140 QObject* parent, const char* name = 0 );
00141
00146 KToggleAction( QObject* parent = 0, const char* name = 0 );
00147
00151 virtual ~KToggleAction();
00152
00164 virtual int plug( QWidget* widget, int index = -1 );
00165
00169 bool isChecked() const;
00170
00175 QString exclusiveGroup() const;
00176
00183 virtual void setExclusiveGroup( const QString& name );
00184
00185 public slots:
00189 virtual void setChecked( bool );
00190
00191 protected slots:
00192 virtual void slotActivated();
00193
00194 protected:
00195 virtual void updateChecked( int id );
00196
00197 signals:
00198 void toggled( bool );
00199
00200 protected:
00201 virtual void virtual_hook( int id, void* data );
00202 private:
00203 class KToggleActionPrivate;
00204 KToggleActionPrivate *d;
00205 };
00206
00211 class KRadioAction : public KToggleAction
00212 {
00213 Q_OBJECT
00214 public:
00225 KRadioAction( const QString& text, const KShortcut& cut = KShortcut(), QObject* parent = 0, const char* name = 0 );
00226
00235 KRadioAction( const QString& text, const KShortcut& cut,
00236 const QObject* receiver, const char* slot, QObject* parent, const char* name = 0 );
00237
00245 KRadioAction( const QString& text, const QIconSet& pix, const KShortcut& cut = KShortcut(),
00246 QObject* parent = 0, const char* name = 0 );
00247
00255 KRadioAction( const QString& text, const QString& pix, const KShortcut& cut = KShortcut(),
00256 QObject* parent = 0, const char* name = 0 );
00257
00267 KRadioAction( const QString& text, const QIconSet& pix, const KShortcut& cut,
00268 const QObject* receiver, const char* slot, QObject* parent, const char* name = 0 );
00269
00279 KRadioAction( const QString& text, const QString& pix, const KShortcut& cut,
00280 const QObject* receiver, const char* slot,
00281 QObject* parent, const char* name = 0 );
00282
00287 KRadioAction( QObject* parent = 0, const char* name = 0 );
00288
00289 protected:
00290 virtual void slotActivated();
00291
00292 protected:
00293 virtual void virtual_hook( int id, void* data );
00294 private:
00295 class KRadioActionPrivate;
00296 KRadioActionPrivate *d;
00297 };
00298
00310 class KSelectAction : public KAction
00311 {
00312 Q_OBJECT
00313 Q_PROPERTY( int currentItem READ currentItem WRITE setCurrentItem )
00314 Q_PROPERTY( QStringList items READ items WRITE setItems )
00315 Q_PROPERTY( bool editable READ isEditable WRITE setEditable )
00316 Q_PROPERTY( int comboWidth READ comboWidth WRITE setComboWidth )
00317 Q_PROPERTY( QString currentText READ currentText )
00318 Q_PROPERTY( bool menuAccelsEnabled READ menuAccelsEnabled WRITE setMenuAccelsEnabled )
00319 public:
00320
00331 KSelectAction( const QString& text, const KShortcut& cut = KShortcut(), QObject* parent = 0, const char* name = 0 );
00332
00341 KSelectAction( const QString& text, const KShortcut& cut,
00342 const QObject* receiver, const char* slot, QObject* parent, const char* name = 0 );
00343
00351 KSelectAction( const QString& text, const QIconSet& pix, const KShortcut& cut = KShortcut(),
00352 QObject* parent = 0, const char* name = 0 );
00353
00361 KSelectAction( const QString& text, const QString& pix, const KShortcut& cut = KShortcut(),
00362 QObject* parent = 0, const char* name = 0 );
00363
00373 KSelectAction( const QString& text, const QIconSet& pix, const KShortcut& cut,
00374 const QObject* receiver, const char* slot, QObject* parent, const char* name = 0 );
00375
00385 KSelectAction( const QString& text, const QString& pix, const KShortcut& cut,
00386 const QObject* receiver, const char* slot,
00387 QObject* parent, const char* name = 0 );
00388
00393 KSelectAction( QObject* parent = 0, const char* name = 0 );
00394
00398 virtual ~KSelectAction();
00399
00411 virtual int plug( QWidget* widget, int index = -1 );
00412
00417 virtual bool isEditable() const;
00418
00423 virtual QStringList items() const;
00424
00428 virtual void changeItem( int index, const QString& text );
00429
00433 virtual QString currentText() const;
00434
00439 virtual int currentItem() const;
00440
00445 virtual int comboWidth() const;
00446
00450 QPopupMenu* popupMenu() const;
00451
00456 void setRemoveAmpersandsInCombo( bool b ) KDE_DEPRECATED;
00458 bool removeAmpersandsInCombo() const;
00459
00466 void setMenuAccelsEnabled( bool b );
00468 bool menuAccelsEnabled() const;
00469
00470 public slots:
00476 virtual void setCurrentItem( int index );
00477
00482 virtual void setItems( const QStringList &lst );
00483
00487 virtual void clear();
00488
00493 virtual void setEditable( bool );
00494
00500 virtual void setComboWidth( int width );
00501
00502 protected:
00503 virtual void changeItem( int id, int index, const QString& text );
00504
00511 QStringList comboItems() const;
00512
00513 protected slots:
00514 virtual void slotActivated( int id );
00515 virtual void slotActivated( const QString &text );
00516 virtual void slotActivated();
00517
00518 signals:
00523 void activated( int index );
00528 void activated( const QString& text );
00529
00530 protected:
00531 virtual void updateCurrentItem( int id );
00532
00533 virtual void updateComboWidth( int id );
00534
00535 virtual void updateItems( int id );
00536
00537 virtual void updateClear( int id );
00538
00539 protected:
00540 virtual void virtual_hook( int id, void* data );
00541 private:
00542 void setupMenu() const;
00543 class KSelectActionPrivate;
00544 KSelectActionPrivate *d;
00545
00546 };
00547
00549
00552 class KDE_DEPRECATED KListAction : public KSelectAction
00553 {
00554 Q_OBJECT
00555 public:
00566 KListAction( const QString& text, const KShortcut& cut = KShortcut(), QObject* parent = 0,
00567 const char* name = 0 );
00568
00577 KListAction( const QString& text, const KShortcut& cut, const QObject* receiver,
00578 const char* slot, QObject* parent, const char* name = 0 );
00579
00587 KListAction( const QString& text, const QIconSet& pix, const KShortcut& cut = KShortcut(),
00588 QObject* parent = 0, const char* name = 0 );
00589
00597 KListAction( const QString& text, const QString& pix, const KShortcut& cut = KShortcut(),
00598 QObject* parent = 0, const char* name = 0 );
00599
00609 KListAction( const QString& text, const QIconSet& pix, const KShortcut& cut,
00610 const QObject* receiver, const char* slot, QObject* parent,
00611 const char* name = 0 );
00612
00622 KListAction( const QString& text, const QString& pix, const KShortcut& cut,
00623 const QObject* receiver, const char* slot, QObject* parent,
00624 const char* name = 0 );
00625
00630 KListAction( QObject* parent = 0, const char* name = 0 );
00631
00635 virtual ~KListAction();
00636
00637
00638 virtual QString currentText() const;
00639 virtual int currentItem() const;
00640
00641
00642 public slots:
00648 virtual void setCurrentItem( int index );
00649
00650 protected:
00651 virtual void virtual_hook( int id, void* data );
00652 private:
00653 class KListActionPrivate;
00654 KListActionPrivate *d;
00655 };
00656
00666 class KRecentFilesAction : public KListAction
00667 {
00668 Q_OBJECT
00669 Q_PROPERTY( uint maxItems READ maxItems WRITE setMaxItems )
00670 public:
00678 KRecentFilesAction( const QString& text, const KShortcut& cut,
00679 QObject* parent, const char* name = 0,
00680 uint maxItems = 10 );
00681
00692 KRecentFilesAction( const QString& text, const KShortcut& cut,
00693 const QObject* receiver, const char* slot,
00694 QObject* parent, const char* name = 0,
00695 uint maxItems = 10 );
00696
00705 KRecentFilesAction( const QString& text, const QIconSet& pix, const KShortcut& cut,
00706 QObject* parent, const char* name = 0,
00707 uint maxItems = 10 );
00708
00717 KRecentFilesAction( const QString& text, const QString& pix, const KShortcut& cut,
00718 QObject* parent, const char* name = 0,
00719 uint maxItems = 10 );
00720
00732 KRecentFilesAction( const QString& text, const QIconSet& pix, const KShortcut& cut,
00733 const QObject* receiver, const char* slot,
00734 QObject* parent, const char* name = 0,
00735 uint maxItems = 10 );
00736
00748 KRecentFilesAction( const QString& text, const QString& pix, const KShortcut& cut,
00749 const QObject* receiver, const char* slot,
00750 QObject* parent, const char* name = 0,
00751 uint maxItems = 10 );
00752
00758 KRecentFilesAction( QObject* parent = 0, const char* name = 0,
00759 uint maxItems = 10 );
00760
00764 virtual ~KRecentFilesAction();
00765
00766 virtual int plug( QWidget *widget, int index = -1 );
00767
00771 uint maxItems() const;
00772
00773 public slots:
00782 void setMaxItems( uint maxItems );
00783
00791 void loadEntries( KConfig* config, QString groupname=QString::null );
00792
00800 void saveEntries( KConfig* config, QString groupname=QString::null );
00801
00807 void addURL( const KURL& url );
00808
00814 void removeURL( const KURL& url );
00815
00819 void clearURLList();
00820
00821 signals:
00822
00828 void urlSelected( const KURL& url );
00829
00830 protected slots:
00831 void itemSelected( const QString& string );
00832 void menuAboutToShow();
00833 void menuItemActivated( int id );
00834 void slotClicked();
00835 virtual void slotActivated(int);
00836 virtual void slotActivated(const QString& );
00837 virtual void slotActivated();
00838
00839 protected:
00840 virtual void virtual_hook( int id, void* data );
00841
00842 private:
00843 void init();
00844
00845 class KRecentFilesActionPrivate;
00846 KRecentFilesActionPrivate *d;
00847 };
00848
00849 class KFontAction : public KSelectAction
00850 {
00851 Q_OBJECT
00852 Q_PROPERTY( QString font READ font WRITE setFont )
00853 public:
00854 KFontAction( const QString& text, const KShortcut& cut = KShortcut(), QObject* parent = 0,
00855 const char* name = 0 );
00856 KFontAction( const QString& text, const KShortcut& cut,
00857 const QObject* receiver, const char* slot, QObject* parent,
00858 const char* name = 0 );
00859 KFontAction( const QString& text, const QIconSet& pix, const KShortcut& cut = KShortcut(),
00860 QObject* parent = 0, const char* name = 0 );
00861 KFontAction( const QString& text, const QString& pix, const KShortcut& cut = KShortcut(),
00862 QObject* parent = 0, const char* name = 0 );
00863 KFontAction( const QString& text, const QIconSet& pix, const KShortcut& cut,
00864 const QObject* receiver, const char* slot, QObject* parent,
00865 const char* name = 0 );
00866 KFontAction( const QString& text, const QString& pix, const KShortcut& cut,
00867 const QObject* receiver, const char* slot, QObject* parent,
00868 const char* name = 0 );
00869
00870 KFontAction( QObject* parent = 0, const char* name = 0 );
00871 ~KFontAction();
00872
00873 QString font() const {
00874 return currentText();
00875 }
00876
00877 int plug( QWidget*, int index = -1 );
00878
00879 public slots:
00880 void setFont( const QString &family );
00881
00882 protected:
00883 virtual void virtual_hook( int id, void* data );
00884 private:
00885 class KFontActionPrivate;
00886 KFontActionPrivate *d;
00887 };
00888
00889 class KFontSizeAction : public KSelectAction
00890 {
00891 Q_OBJECT
00892 Q_PROPERTY( int fontSize READ fontSize WRITE setFontSize )
00893 public:
00894 KFontSizeAction( const QString& text, const KShortcut& cut = KShortcut(), QObject* parent = 0,
00895 const char* name = 0 );
00896 KFontSizeAction( const QString& text, const KShortcut& cut, const QObject* receiver,
00897 const char* slot, QObject* parent, const char* name = 0 );
00898 KFontSizeAction( const QString& text, const QIconSet& pix, const KShortcut& cut = KShortcut(),
00899 QObject* parent = 0, const char* name = 0 );
00900 KFontSizeAction( const QString& text, const QString& pix, const KShortcut& cut = KShortcut(),
00901 QObject* parent = 0, const char* name = 0 );
00902 KFontSizeAction( const QString& text, const QIconSet& pix, const KShortcut& cut,
00903 const QObject* receiver, const char* slot,
00904 QObject* parent, const char* name = 0 );
00905 KFontSizeAction( const QString& text, const QString& pix, const KShortcut& cut,
00906 const QObject* receiver, const char* slot,
00907 QObject* parent, const char* name = 0 );
00908 KFontSizeAction( QObject* parent = 0, const char* name = 0 );
00909
00910 virtual ~KFontSizeAction();
00911
00912 virtual int fontSize() const;
00913
00914 public slots:
00915 virtual void setFontSize( int size );
00916
00917 protected slots:
00918 virtual void slotActivated( int );
00919 virtual void slotActivated( const QString& );
00920 virtual void slotActivated() { KAction::slotActivated(); }
00921
00922 signals:
00923 void fontSizeChanged( int );
00924
00925 private:
00926 void init();
00927
00928
00929 protected:
00930 virtual void virtual_hook( int id, void* data );
00931 private:
00932 class KFontSizeActionPrivate;
00933 KFontSizeActionPrivate *d;
00934 };
00935
00936
00947 class KActionMenu : public KAction
00948 {
00949 Q_OBJECT
00950 Q_PROPERTY( bool delayed READ delayed WRITE setDelayed )
00951 Q_PROPERTY( bool stickyMenu READ stickyMenu WRITE setStickyMenu )
00952
00953 public:
00954 KActionMenu( const QString& text, QObject* parent = 0,
00955 const char* name = 0 );
00956 KActionMenu( const QString& text, const QIconSet& icon,
00957 QObject* parent = 0, const char* name = 0 );
00958 KActionMenu( const QString& text, const QString& icon,
00959 QObject* parent = 0, const char* name = 0 );
00960 KActionMenu( QObject* parent = 0, const char* name = 0 );
00961 virtual ~KActionMenu();
00962
00963 virtual void insert( KAction*, int index = -1 );
00964 virtual void remove( KAction* );
00965
00966 KPopupMenu* popupMenu() const;
00967 void popup( const QPoint& global );
00968
00973 bool delayed() const;
00987 void setDelayed(bool _delayed);
00988
00993 bool stickyMenu() const;
01002 void setStickyMenu(bool sticky);
01003
01004 virtual int plug( QWidget* widget, int index = -1 );
01005
01006 protected:
01007 virtual void virtual_hook( int id, void* data );
01008 private:
01009 class KActionMenuPrivate;
01010 KActionMenuPrivate *d;
01011 };
01012
01020 class KToolBarPopupAction : public KAction
01021 {
01022 Q_OBJECT
01023 Q_PROPERTY( bool delayed READ delayed WRITE setDelayed )
01024 Q_PROPERTY( bool stickyMenu READ stickyMenu WRITE setStickyMenu )
01025
01026 public:
01027
01028
01039 KToolBarPopupAction( const QString& text, const QString& icon, const KShortcut& cut = KShortcut(),
01040 QObject* parent = 0, const char* name = 0 );
01041
01057 KToolBarPopupAction( const QString& text, const QString& icon, const KShortcut& cut,
01058 const QObject* receiver, const char* slot,
01059 QObject* parent = 0, const char* name = 0 );
01060
01076 KToolBarPopupAction( const KGuiItem& item, const KShortcut& cut,
01077 const QObject* receiver, const char* slot,
01078 KActionCollection* parent, const char* name );
01079
01080 virtual ~KToolBarPopupAction();
01081
01082 virtual int plug( QWidget *widget, int index = -1 );
01083
01089 KPopupMenu *popupMenu() const;
01090
01095 bool delayed() const;
01101 void setDelayed(bool delayed);
01106 bool stickyMenu() const;
01116 void setStickyMenu(bool sticky);
01117
01118 private:
01119 KPopupMenu *m_popup;
01120 bool m_delayed:1;
01121 bool m_stickyMenu:1;
01122 protected:
01123 virtual void virtual_hook( int id, void* data );
01124 private:
01125 class KToolBarPopupActionPrivate;
01126 KToolBarPopupActionPrivate *d;
01127 };
01128
01142 class KToggleToolBarAction : public KToggleAction
01143 {
01144 Q_OBJECT
01145 public:
01152 KToggleToolBarAction( const char* toolBarName, const QString& text,
01153 KActionCollection* parent, const char* name );
01154 KToggleToolBarAction( KToolBar *toolBar, const QString &text,
01155 KActionCollection *parent, const char *name );
01156 virtual ~KToggleToolBarAction();
01157
01158 virtual int plug( QWidget * widget, int index = -1 );
01159
01160 KToolBar *toolBar() { return m_toolBar; }
01161
01162 public slots:
01163 virtual void setChecked( bool );
01164
01165 private:
01166 QCString m_toolBarName;
01167 QGuardedPtr<KToolBar> m_toolBar;
01168 protected:
01169 virtual void virtual_hook( int id, void* data );
01170 private:
01171 class KToggleToolBarActionPrivate;
01172 KToggleToolBarActionPrivate *d;
01173 };
01174
01187 class KToggleFullScreenAction : public KToggleAction
01188 {
01189 Q_OBJECT
01190 public:
01200 KToggleFullScreenAction( const KShortcut &cut,
01201 const QObject* receiver, const char* slot,
01202 QObject* parent, QWidget* window,
01203 const char* name );
01204 virtual ~KToggleFullScreenAction();
01205
01209 void setWindow( QWidget* window );
01210 public slots:
01211 virtual void setChecked( bool );
01212 protected:
01216 virtual bool eventFilter( QObject* o, QEvent* e );
01217 private:
01218 QWidget* window;
01219 protected:
01220 virtual void virtual_hook( int id, void* data );
01221 private:
01222 class KToggleFullScreenActionPrivate;
01223 KToggleFullScreenActionPrivate *d;
01224 };
01225
01226
01231 class KWidgetAction : public KAction
01232 {
01233 Q_OBJECT
01234 public:
01240 KWidgetAction( QWidget* widget, const QString& text,
01241 const KShortcut& cut,
01242 const QObject* receiver, const char* slot,
01243 KActionCollection* parent, const char* name );
01244 virtual ~KWidgetAction();
01245
01249 QWidget* widget() { return m_widget; }
01250
01251 void setAutoSized( bool );
01252
01257 virtual int plug( QWidget* widget, int index = -1 );
01262 virtual void unplug( QWidget *w );
01263 protected slots:
01264 void slotToolbarDestroyed();
01265 private:
01266 QGuardedPtr<QWidget> m_widget;
01267 bool m_autoSized;
01268 protected:
01269 virtual void virtual_hook( int id, void* data );
01270 private:
01271 class KWidgetActionPrivate;
01272 KWidgetActionPrivate *d;
01273 };
01274
01275 class KActionSeparator : public KAction
01276 {
01277 Q_OBJECT
01278 public:
01279 KActionSeparator( QObject* parent = 0, const char* name = 0 );
01280 virtual ~KActionSeparator();
01281
01282 virtual int plug( QWidget *widget, int index = -1 );
01283
01284 protected:
01285 virtual void virtual_hook( int id, void* data );
01286 private:
01287 class KActionSeparatorPrivate;
01288 KActionSeparatorPrivate *d;
01289 };
01290
01301 class KPasteTextAction: public KAction
01302 {
01303 Q_OBJECT
01304 public:
01320 KPasteTextAction( const QString& text, const QString& icon, const KShortcut& cut,
01321 const QObject* receiver, const char* slot,
01322 QObject* parent = 0, const char* name = 0 );
01323
01324 virtual ~KPasteTextAction();
01325
01336 void setMixedMode(bool mode);
01337
01338 virtual int plug( QWidget *widget, int index = -1 );
01339
01340 protected slots:
01341 void menuAboutToShow();
01342 void menuItemActivated( int id);
01343 virtual void slotActivated();
01344
01345 protected:
01346 virtual void virtual_hook( int id, void* data );
01347
01348 private:
01349 KPopupMenu *m_popup;
01350 bool m_mixedMode;
01351 class KPasteTextActionPrivate;
01352 KPasteTextActionPrivate *d;
01353 };
01354
01355 #endif