kdeui Library API Documentation

kmainwindow.h

00001 /*
00002     This file is part of the KDE libraries
00003 
00004     This library is free software; you can redistribute it and/or
00005     modify it under the terms of the GNU Library General Public
00006     License version 2 as published by the Free Software Foundation.
00007 
00008     This library is distributed in the hope that it will be useful,
00009     but WITHOUT ANY WARRANTY; without even the implied warranty of
00010     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00011     Library General Public License for more details.
00012 
00013     You should have received a copy of the GNU Library General Public License
00014     along with this library; see the file COPYING.LIB.  If not, write to
00015     the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
00016     Boston, MA 02111-1307, USA.
00017 
00018     $Id: kmainwindow.h,v 1.58.2.4 2003/03/03 14:39:42 lunakl Exp $
00019 
00020 */
00021 
00022 #ifndef KMAINWINDOW_H
00023 #define KMAINWINDOW_H
00024 
00025 #include "kxmlguifactory.h"
00026 #include "kxmlguiclient.h"
00027 #include "kxmlguibuilder.h"
00028 #include <qmainwindow.h>
00029 #include <ktoolbar.h>
00030 
00031 class KPopupMenu;
00032 class KXMLGUIFactory;
00033 class KConfig;
00034 class KHelpMenu;
00035 class KStatusBar;
00036 class QStatusBar;
00037 class KMenuBar;
00038 class KMWSessionManaged;
00039 class KMainWindowPrivate;
00040 class KAccel;
00041 class KToolBarMenuAction;
00042 
00043 
00044 #define KDE_DEFAULT_WINDOWFLAGS WType_TopLevel | WDestructiveClose
00045 
00046 
00097 class KMainWindow : public QMainWindow, public KXMLGUIBuilder, virtual public KXMLGUIClient
00098 {
00099     friend class KMWSessionManaged;
00100     Q_OBJECT
00101 
00102 public:
00131     KMainWindow( QWidget* parent = 0, const char *name = 0, WFlags f = WType_TopLevel | WDestructiveClose );
00132 
00133 
00140     virtual ~KMainWindow();
00141 
00166     KPopupMenu* helpMenu( const QString &aboutAppText = QString::null,
00167               bool showWhatsThis = TRUE );
00168 
00191     KPopupMenu* customHelpMenu( bool showWhatsThis = TRUE );
00192 
00241     static bool canBeRestored( int number );
00242 
00250     static const QString classNameOfToplevel( int number );
00251 
00260     bool restore( int number, bool show = TRUE );
00261 
00262     virtual KXMLGUIFactory *guiFactory();
00263 
00283     void createGUI( const QString &xmlfile = QString::null, bool _conserveMemory = TRUE );
00284 
00291     void setHelpMenuEnabled(bool showHelpMenu = true);
00292 
00296     bool isHelpMenuEnabled();
00297 
00298 
00303      bool hasMenuBar();
00304 
00310     KMenuBar *menuBar();
00311 
00318     KStatusBar *statusBar();
00319 
00323     static QPtrList<KMainWindow>* memberList;
00324 
00335     KToolBar *toolBar( const char *name=0 );
00336 
00340     QPtrListIterator<KToolBar> toolBarIterator();
00341 
00346     KAccel *accel();
00347 
00348     void setFrameBorderWidth( int ) {}
00349 
00367     void setAutoSaveSettings( const QString & groupName = QString::fromLatin1("MainWindow"),
00368                               bool saveWindowSize = true );
00369 
00374     void resetAutoSaveSettings();
00375 
00381     bool autoSaveSettings() const;
00382 
00390     QString autoSaveGroup() const;
00391 
00400     void applyMainWindowSettings(KConfig *config, const QString &groupName = QString::null);
00401 
00410     void saveMainWindowSettings(KConfig *config, const QString &groupName = QString::null);
00411 
00430     void setStandardToolBarMenuEnabled( bool enable );
00432     bool isStandardToolBarMenuEnabled() const;
00433 
00438     KAction *toolBarMenuAction();
00439 
00440     // why do we support old gcc versions? using KXMLGUIBuilder::finalizeGUI;
00442     virtual void finalizeGUI( KXMLGUIClient *client );
00443 
00447     void finalizeGUI( bool force );
00448 
00453     bool initialGeometrySet() const;
00454 
00459     QSize sizeForCentralWidgetSize(QSize size);
00460 
00461 public slots:
00469     virtual void setCaption( const QString &caption );
00479     virtual void setCaption( const QString &caption, bool modified );
00480 
00487     virtual void setPlainCaption( const QString &caption );
00488 
00510     void appHelpActivated( void );
00511 
00518     virtual void slotStateChanged(const QString &newstate);
00519 
00528     void slotStateChanged(const QString &newstate,
00529                           KXMLGUIClient::ReverseStateChange); // KDE 4.0: remove this
00530 
00531 
00539 //     void slotStateChanged(const QString &newstate,
00540 //                           bool reverse); // KDE 4.0: enable this
00541 
00545     void setSettingsDirty();
00546 
00547 protected:
00548     void paintEvent( QPaintEvent* e );
00549     void childEvent( QChildEvent* e);
00550     void resizeEvent( QResizeEvent* e);
00558     virtual void closeEvent ( QCloseEvent *);
00588     virtual bool queryExit();
00589 
00621     virtual bool queryClose();
00635     virtual void saveProperties( KConfig* ) {}
00636 
00640     virtual void readProperties( KConfig* ) {}
00641 
00658     virtual void saveGlobalProperties( KConfig* sessionConfig );
00659 
00665     virtual void readGlobalProperties( KConfig* sessionConfig );
00666     void savePropertiesInternal( KConfig*, int );
00667     bool readPropertiesInternal( KConfig*, int );
00668 
00672     bool settingsDirty() const;
00676     QString settingsGroup() const;
00681     void saveWindowSize( KConfig * config ) const;
00687     void restoreWindowSize( KConfig * config );
00688 
00690     void parseGeometry(bool parsewidth);
00691 
00692 protected slots:
00693 
00718     virtual void showAboutApplication();
00719 
00720 private slots:
00724     void shuttingDown();
00725 
00726     void saveAutoSaveSettings();
00727 
00728 private:
00729     KMenuBar *internalMenuBar();
00730     KStatusBar *internalStatusBar();
00731     KHelpMenu *mHelpMenu, *helpMenu2;
00732     KXMLGUIFactory *factory_;
00733     QPtrList<KToolBar> toolbarList;
00734 protected:
00735     virtual void virtual_hook( int id, void* data );
00736 private:
00737     KMainWindowPrivate *d;
00738     void initKMainWindow(const char *name);
00739 };
00740 
00741 #define RESTORE(type) { int n = 1;\
00742     while (KMainWindow::canBeRestored(n)){\
00743       (new type)->restore(n);\
00744       n++;}}
00745 
00746 
00747 #endif
KDE Logo
This file is part of the documentation for kdelibs Version 3.1.4.
Documentation copyright © 1996-2002 the KDE developers.
Generated on Sun Feb 27 22:15:04 2005 by doxygen 1.3.4 written by Dimitri van Heesch, © 1997-2001