KDevelop API Documentation

src/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); 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.0.4.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed Oct 6 17:39:13 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003