kdeui Library API Documentation

kactionclasses.h

00001 /* This file is part of the KDE libraries 00002 Copyright (C) 1999 Reginald Stadlbauer <reggie@kde.org> 00003 (C) 1999 Simon Hausmann <hausmann@kde.org> 00004 (C) 2000 Nicolas Hadacek <haadcek@kde.org> 00005 (C) 2000 Kurt Granroth <granroth@kde.org> 00006 (C) 2000 Michael Koch <koch@kde.org> 00007 (C) 2001 Holger Freyther <freyther@kde.org> 00008 (C) 2002 Ellis Whitehead <ellis@kde.org> 00009 (C) 2003 Andras Mantia <amantia@kde.org> 00010 00011 This library is free software; you can redistribute it and/or 00012 modify it under the terms of the GNU Library General Public 00013 License version 2 as published by the Free Software Foundation. 00014 00015 This library is distributed in the hope that it will be useful, 00016 but WITHOUT ANY WARRANTY; without even the implied warranty of 00017 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00018 Library General Public License for more details. 00019 00020 You should have received a copy of the GNU Library General Public License 00021 along with this library; see the file COPYING.LIB. If not, write to 00022 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 00023 Boston, MA 02111-1307, USA. 00024 */ 00025 //$Id: kactionclasses.h,v 1.187 2004/01/05 11:05:55 bhards Exp $ 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 // TODO public KSelectAction 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 //Not all constructors - because we need an icon, since this action only makes 01028 // sense when being plugged at least in a toolbar. 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
KDE Logo
This file is part of the documentation for kdeui Library Version 3.2.3.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Fri Oct 8 11:14:23 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003