kmainwindow.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef KMAINWINDOW_H
00022 #define KMAINWINDOW_H
00023
00024 #include "kxmlguifactory.h"
00025 #include "kxmlguiclient.h"
00026 #include "kxmlguibuilder.h"
00027 #include <qmainwindow.h>
00028 #include <qmetaobject.h>
00029 #include <ktoolbar.h>
00030 #include <kdemacros.h>
00031
00032 class KPopupMenu;
00033 class KXMLGUIFactory;
00034 class KConfig;
00035 class KHelpMenu;
00036 class KStatusBar;
00037 class QStatusBar;
00038 class KMenuBar;
00039 class KMWSessionManaged;
00040 class KMainWindowPrivate;
00041 class KAccel;
00042 class KToolBarMenuAction;
00043 class DCOPObject;
00044
00045 #define KDE_DEFAULT_WINDOWFLAGS WType_TopLevel | WDestructiveClose
00046
00047
00098 class KMainWindow : public QMainWindow, public KXMLGUIBuilder, virtual public KXMLGUIClient
00099 {
00100 friend class KMWSessionManaged;
00101 Q_OBJECT
00102
00103 public:
00136 KMainWindow( QWidget* parent = 0, const char *name = 0, WFlags f = WType_TopLevel | WDestructiveClose );
00137
00148 enum CreationFlags
00149 {
00150 NoDCOPObject = 1
00151 };
00152
00158 KMainWindow( int cflags, QWidget* parent = 0, const char *name = 0, WFlags f = WType_TopLevel | WDestructiveClose );
00159
00166 virtual ~KMainWindow();
00167
00192 KPopupMenu* helpMenu( const QString &aboutAppText = QString::null,
00193 bool showWhatsThis = true );
00194
00217 KPopupMenu* customHelpMenu( bool showWhatsThis = true );
00218
00285 static bool canBeRestored( int number );
00286
00294
00295 static const QString classNameOfToplevel( int number );
00296
00300
00301 virtual void show();
00302
00306
00307 virtual void hide();
00308
00317 bool restore( int number, bool show = true );
00318
00319 virtual KXMLGUIFactory *guiFactory();
00320
00340 void createGUI( const QString &xmlfile = QString::null, bool _conserveMemory = true );
00341
00348 void setHelpMenuEnabled(bool showHelpMenu = true);
00349
00353 bool isHelpMenuEnabled();
00354
00355
00360 bool hasMenuBar();
00361
00367 KMenuBar *menuBar();
00368
00375 KStatusBar *statusBar();
00376
00380 static QPtrList<KMainWindow>* memberList;
00381
00392 KToolBar *toolBar( const char *name=0 );
00393
00397 QPtrListIterator<KToolBar> toolBarIterator();
00398
00403 KAccel *accel();
00404
00405 void setFrameBorderWidth( int ) {}
00406
00438 void setAutoSaveSettings( const QString & groupName = QString::fromLatin1("MainWindow"),
00439 bool saveWindowSize = true );
00440
00445 void resetAutoSaveSettings();
00446
00452 bool autoSaveSettings() const;
00453
00461 QString autoSaveGroup() const;
00462
00472 void applyMainWindowSettings(KConfig *config, const QString &groupName, bool force);
00473
00474 void applyMainWindowSettings(KConfig *config, const QString &groupName = QString::null);
00475
00484 void saveMainWindowSettings(KConfig *config, const QString &groupName = QString::null);
00485
00504 void setStandardToolBarMenuEnabled( bool enable );
00506 bool isStandardToolBarMenuEnabled() const;
00507
00508
00529 void createStandardStatusBarAction();
00530
00534 enum StandardWindowOptions
00535 {
00544 ToolBar = 1,
00545
00549 Keys = 2,
00550
00555 StatusBar = 4,
00556
00567 Save = 8,
00568
00573 Create = 16
00574 };
00575
00587 void setupGUI( int options = ToolBar | Keys | StatusBar | Save | Create, const QString& xmlfile = QString::null );
00588
00593 KAction *toolBarMenuAction();
00594
00599 void setupToolbarMenuActions();
00600
00601
00603 virtual void finalizeGUI( KXMLGUIClient *client );
00604
00608 void finalizeGUI( bool force );
00609
00614 bool initialGeometrySet() const;
00615
00620 void ignoreInitialGeometry();
00621
00637
00638 QSize sizeForCentralWidgetSize(QSize size) KDE_DEPRECATED;
00639
00640 public slots:
00653 int configureToolbars();
00654
00662 virtual void setCaption( const QString &caption );
00672 virtual void setCaption( const QString &caption, bool modified );
00673
00680 virtual void setPlainCaption( const QString &caption );
00681
00703 void appHelpActivated( void );
00704
00711 virtual void slotStateChanged(const QString &newstate);
00712
00721 void slotStateChanged(const QString &newstate,
00722 KXMLGUIClient::ReverseStateChange);
00723
00724
00732
00733
00734
00742 void setSettingsDirty();
00743
00744 protected:
00745 void paintEvent( QPaintEvent* e );
00746 void childEvent( QChildEvent* e);
00747 void resizeEvent( QResizeEvent* e);
00755 virtual void closeEvent ( QCloseEvent *);
00756
00757
00758
00759
00760
00761
00762
00763
00764
00765
00766
00767
00795 virtual bool queryExit();
00796
00831 virtual bool queryClose();
00832
00846 virtual void saveProperties( KConfig* ) {}
00847
00851 virtual void readProperties( KConfig* ) {}
00852
00869 virtual void saveGlobalProperties( KConfig* sessionConfig );
00870
00876 virtual void readGlobalProperties( KConfig* sessionConfig );
00877 void savePropertiesInternal( KConfig*, int );
00878 bool readPropertiesInternal( KConfig*, int );
00879
00883 bool settingsDirty() const;
00887 QString settingsGroup() const;
00892 void saveWindowSize( KConfig * config ) const;
00898 void restoreWindowSize( KConfig * config );
00899
00901 void parseGeometry(bool parsewidth);
00902
00903 protected slots:
00908 void saveNewToolbarConfig();
00909
00934 virtual void showAboutApplication();
00935
00959 void saveAutoSaveSettings();
00960
00961 private slots:
00965 void shuttingDown();
00966
00967 private:
00968 KMenuBar *internalMenuBar();
00969 KStatusBar *internalStatusBar();
00970 KHelpMenu *mHelpMenu, *helpMenu2;
00971 KXMLGUIFactory *factory_;
00972 QPtrList<KToolBar> toolbarList;
00973 protected:
00974 virtual void virtual_hook( int id, void* data );
00975 private:
00976 KMainWindowPrivate *d;
00977 void initKMainWindow(const char *name, int cflags);
00978 };
00979
00980 #define RESTORE(type) { int n = 1;\
00981 while (KMainWindow::canBeRestored(n)){\
00982 (new type)->restore(n);\
00983 n++;}}
00984
00985 #define KDE_RESTORE_MAIN_WINDOWS_NUM_TEMPLATE_ARGS 3
00986
00997 template <typename T>
00998 inline void kRestoreMainWindows() {
00999 for ( int n = 1 ; KMainWindow::canBeRestored( n ) ; ++n ) {
01000 const QString className = KMainWindow::classNameOfToplevel( n );
01001 if ( className == QString::fromLatin1( T::staticMetaObject()->className() ) )
01002 (new T)->restore( n );
01003 }
01004 }
01005
01006 template <typename T0, typename T1>
01007 inline void kRestoreMainWindows() {
01008 const char * classNames[2];
01009 classNames[0] = T0::staticMetaObject()->className();
01010 classNames[1] = T1::staticMetaObject()->className();
01011 for ( int n = 1 ; KMainWindow::canBeRestored( n ) ; ++n ) {
01012 const QString className = KMainWindow::classNameOfToplevel( n );
01013 if ( className == QString::fromLatin1( classNames[0] ) )
01014 (new T0)->restore( n );
01015 else if ( className == QString::fromLatin1( classNames[1] ) )
01016 (new T1)->restore( n );
01017 }
01018 }
01019
01020 template <typename T0, typename T1, typename T2>
01021 inline void kRestoreMainWindows() {
01022 const char * classNames[3];
01023 classNames[0] = T0::staticMetaObject()->className();
01024 classNames[1] = T1::staticMetaObject()->className();
01025 classNames[2] = T1::staticMetaObject()->className();
01026 for ( int n = 1 ; KMainWindow::canBeRestored( n ) ; ++n ) {
01027 const QString className = KMainWindow::classNameOfToplevel( n );
01028 if ( className == QString::fromLatin1( classNames[0] ) )
01029 (new T0)->restore( n );
01030 else if ( className == QString::fromLatin1( classNames[1] ) )
01031 (new T1)->restore( n );
01032 else if ( className == QString::fromLatin1( classNames[2] ) )
01033 (new T2)->restore( n );
01034 }
01035 }
01036
01037 #endif
This file is part of the documentation for kdeui Library Version 3.3.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Thu Sep 23 17:11:54 2004 by
doxygen 1.3.8-20040913 written by
Dimitri van Heesch, © 1997-2003