KDevelop API Documentation

mainwindow.h

Go to the documentation of this file.
00001 /***************************************************************************
00002   kdevmainwindow.h - KDevelop main widget for all KMdi-based user
00003                    interface modes (Childframe, TabPage, Toplevel)
00004                              -------------------
00005     begin                : 22 Dec 2002
00006     copyright            : (C) 2002 by the KDevelop team
00007     email                : team@kdevelop.org
00008  ***************************************************************************/
00009 
00010 /***************************************************************************
00011  *                                                                         *
00012  *   This program is free software; you can redistribute it and/or modify  *
00013  *   it under the terms of the GNU General Public License as published by  *
00014  *   the Free Software Foundation; either version 2 of the License, or     *
00015  *   (at your option) any later version.                                   *
00016  *                                                                         *
00017  ***************************************************************************/
00018 #ifndef _MAINWINDOW_H_
00019 #define _MAINWINDOW_H_
00020 
00021 
00022 #include <qmap.h>
00023 #include <qptrlist.h>
00024 #include <qdict.h>
00025 
00026 
00027 #include <kmdimainfrm.h>
00028 #include <kmdichildview.h>
00029 
00030 
00031 #include "kdevmainwindow.h"
00032 
00033 class QDomElement;
00034 class ViewMenuAction;
00035 class ViewMenuActionPrivateData;
00036 class MainWindowShare;
00037 
00042 class MainWindow : public KMdiMainFrm, public KDevMainWindow
00043 {
00044   Q_OBJECT
00045 
00046 public:
00047 
00048   MainWindow(QWidget* parent=0, const char *name=0, KMdi::MdiMode = KMdi::IDEAlMode);
00049   ~MainWindow();
00050 
00051   void embedPartView(QWidget *view, const QString &title, const QString &toolTip = QString::null );    
00052   void embedSelectView(QWidget *view, const QString &title, const QString &toolTip);  
00053   void embedOutputView(QWidget *view, const QString &title, const QString &toolTip);  
00054 
00055   void embedSelectViewRight ( QWidget* view, const QString& title, const QString &toolTip);  
00056 
00057   void removeView(QWidget *view);
00058   void setViewAvailable(QWidget *pView, bool bEnabled);
00059 
00060   void raiseView(QWidget *view);
00061   void lowerView(QWidget *view);
00062   void lowerAllViews();
00063 
00064   void loadSettings();
00065 
00066   KMainWindow *main();                                        
00067 
00068   void init();
00069 
00070   void prepareToCloseViews();
00071   void guiRestoringFinished();
00072 
00073   virtual void setUserInterfaceMode(const QString& uiMode);
00074 
00075   virtual void callCommand(const QString& command);
00076 
00078   virtual void childWindowCloseRequest(KMdiChildView *pWnd);
00079 
00080   enum EView {OutputView, TreeView};
00081 
00083   void storeOutputViewTab();
00084 
00086   void restoreOutputViewTab();
00087 
00088 public slots:
00089 
00090   void setCaption( const QString &);
00091   void createGUI(KParts::Part *part);
00092   void gotoNextWindow();
00093   void gotoPreviousWindow();
00094   void gotoFirstWindow();
00095   void gotoLastWindow();
00097   virtual void fillWindowMenu();
00099   virtual void switchToToplevelMode();
00101   virtual void switchToChildframeMode();
00103   virtual void switchToTabPageMode();
00105   virtual void switchToIDEAlMode();
00106 
00107   virtual void raiseEditor();
00108 
00110   virtual void fillOutputToolViewsMenu();
00112   virtual void fillTreeToolViewsMenu();
00113 
00115   virtual void toggleSingleToolWin(const ViewMenuActionPrivateData &ActionData);
00116 
00118   virtual void toggleToolDockBaseState(const ViewMenuActionPrivateData &ActionData);
00119 
00121   virtual void showAllToolWin(EView eView,bool show);
00122 
00124   virtual void updateActionState();
00125 
00126 protected:
00128   KParts::ReadOnlyPart * getPartFromWidget(const QWidget * pWidget) const;
00130   void resizeEvent(QResizeEvent *ev);
00134 private slots:
00135   void slotReactToProjectOpened();
00136   void slotRestoreAdditionalViewProperties(const QString& viewName, const QDomElement* viewEl);
00137   void slotSaveAdditionalViewProperties(const QString& viewName, QDomElement* viewEl);
00138   void slotToggleViewbar();
00139   void slotViewActivated(KMdiChildView* view);
00140   void slotPartURLChanged( KParts::ReadOnlyPart *);
00141 private:
00142 
00144   void fillToolViewsMenu(EView eView);
00147   void setWindowMenu(QPopupMenu *menu);
00148 
00149   virtual bool queryClose();
00150   virtual bool queryExit();
00151 
00152 
00167   KMdiChildView *wrapper(
00168               QWidget *view,
00169               const QString &name);
00170 
00171   void createStatusBar();
00172   void createFramework();
00173   void createActions();
00174 
00175   void saveSettings();
00176   void saveMDISettings();
00177   void loadMDISettings();
00178 
00179   void clearWindowMenu();
00180   void checkAndFixToolViewObjectName(QWidget* view, const QString& shortName);
00181 
00182 // attributes (private)
00183 
00184   QMap<QWidget*,KMdiChildView*> m_widgetMap;       
00185 
00186   QMap<KMdiChildView*,QWidget*> m_childViewMap;    
00187 
00188   QDict<KMdiChildView>          m_captionDict;     
00189 
00190   QPtrList<QWidget> m_outputViews;                 
00191   QPtrList<QWidget> m_selectViews;                 
00192   QPtrList<KMdiChildView> m_partViews;             
00193   QPtrList<QWidget> m_unavailableViews;            
00194 
00195   // Members for dealing with the tool views
00196   bool             m_myWindowsReady;               
00197   ViewMenuAction * m_pShowOutputViews;             
00198   ViewMenuAction * m_pShowTreeViews;               
00199   KActionMenu *    m_pTreeToolViewsMenu;           
00200   KActionMenu *    m_pOutputToolViewsMenu;         
00201   QString          m_CurrentOutputTab;             
00202   QString          m_CurrentTreeTab;               
00203   KToggleAction*   m_toggleViewbar;
00204 
00205   MainWindowShare*   m_pMainWindowShare;
00206 
00207   QValueList<int>  m_windowMenus;
00208 
00209   bool             m_bUiModeSwitchPending;
00210   bool             m_bRemoveViewPending;
00211 
00212   int mdiStyle;
00213 };
00214 
00215 //=========================
00218 struct ViewMenuActionPrivateData
00219 {
00220   KDockWidget * pDockWidget;                        
00221   QWidget *pChildView;
00222   MainWindow::EView eView;                         
00223 };
00224 
00227 class ViewMenuAction : public KToggleAction
00228 {
00229  Q_OBJECT
00230  public:
00231   ViewMenuAction(ViewMenuActionPrivateData Data, const QString &Name);
00252     ViewMenuAction(
00253              ViewMenuActionPrivateData Data,
00254              const QString& text, const QString& pix, const KShortcut& cut,
00255              const QObject* receiver, const char* slot,
00256              KActionCollection* parent, const char* name );
00257 
00258   const ViewMenuActionPrivateData* getData(void)
00259     {return &WindowData;}
00260 
00261   signals:
00262     void activated (const ViewMenuActionPrivateData &);
00263   protected slots:
00264     virtual void slotActivated();
00265 
00266   private:
00268   ViewMenuActionPrivateData WindowData;    
00269 
00270 };
00271 
00272 
00273 #endif
KDE Logo
This file is part of the documentation for KDevelop Version 3.1.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed Mar 23 00:03:58 2005 by doxygen 1.3.9.1 written by Dimitri van Heesch, © 1997-2003