summaryrefslogtreecommitdiffstats
path: root/tdemdi/tdemdi/mainwindow.h
diff options
context:
space:
mode:
Diffstat (limited to 'tdemdi/tdemdi/mainwindow.h')
-rw-r--r--tdemdi/tdemdi/mainwindow.h199
1 files changed, 199 insertions, 0 deletions
diff --git a/tdemdi/tdemdi/mainwindow.h b/tdemdi/tdemdi/mainwindow.h
new file mode 100644
index 000000000..0916cb908
--- /dev/null
+++ b/tdemdi/tdemdi/mainwindow.h
@@ -0,0 +1,199 @@
+/* This file is part of the KDE libraries
+ Copyright (C) 2004 Christoph Cullmann <cullmann@kde.org>
+ Copyright (C) 2002,2003 Joseph Wenninger <jowenn@kde.org>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+
+ Based on:
+
+ //----------------------------------------------------------------------------
+ // Project : KDE MDI extension
+ //
+ // begin : 07/1999 by Szymon Stefanek as part of kvirc
+ // (an IRC application)
+ // changes : 09/1999 by Falk Brettschneider to create an
+ // - 06/2000 stand-alone Qt extension set of
+ // classes and a Qt-based library
+ // : 02/2000 by Massimo Morin (mmorin@schedsys.com)
+ // 2000-2003 maintained by the KDevelop project
+ // patches : -/2000 by Lars Beikirch (Lars.Beikirch@gmx.net)
+ // : 01/2003 by Jens Zurheide (jens.zurheide@gmx.de)
+ //
+ // copyright : (C) 1999-2003 by Falk Brettschneider
+ // and
+ // Szymon Stefanek (stefanek@tin.it)
+ // email : falkbr@tdevelop.org (Falk Brettschneider)
+ //----------------------------------------------------------------------------
+*/
+
+#ifndef _KMDI_MAINWINDOW_H_
+#define _KMDI_MAINWINDOW_H_
+
+#include <tdeparts/dockmainwindow.h>
+#include <kmenubar.h>
+#include <kpopupmenu.h>
+
+#include <tqptrlist.h>
+#include <tqrect.h>
+#include <tqapplication.h>
+#include <tqguardedptr.h>
+
+#include <tdemdi/global.h>
+
+class TQPopupMenu;
+class TQMenuBar;
+
+#include <tdemdi/toolviewaccessor.h>
+
+namespace KMDIPrivate {
+ class MainWindowPrivate;
+ class GUIClient;
+}
+
+namespace KMDI
+{
+
+class DockContainer;
+class TabWidget;
+
+class KMDI_EXPORT MainWindow : public KParts::DockMainWindow
+{
+ Q_OBJECT
+
+ friend class KMDI::ToolViewAccessor;
+
+ public:
+ /**
+ * Constructor.
+ */
+ MainWindow ( TQWidget* parentWidget, const char* name = "");
+
+ /**
+ * Destructor.
+ */
+ virtual ~MainWindow ();
+
+ public:
+ /**
+ * get the central tabwidget
+ * add all your content as child to this widget
+ * or as multiple tabs
+ * @return tabwidget in central of window
+ */
+ TabWidget *tabWidget ();
+
+ /**
+ * Using this method you have to use the setWidget method of the access object, and it is very recommendet, that you use
+ * the widgetContainer() method for the parent of your newly created widget
+ * @return created toolview
+ */
+ KMDI::ToolViewAccessor *createToolWindow();
+
+ /**
+ * Usually called from addWindow() when adding a tool view window. It reparents the given widget
+ * as toplevel and stay-on-top on the application's main widget.
+ * @param pWnd widget for the toolview
+ * @param pos docking position
+ * @param pTargetWnd
+ * @param percent
+ * @param tabToolTip
+ * @param tabCaption
+ * @return created toolview
+ */
+ KMDI::ToolViewAccessor *addToolWindow( TQWidget* pWnd, KDockWidget::DockPosition pos = KDockWidget::DockNone, TQWidget* pTargetWnd = 0L, int percent = 50, const TQString& tabToolTip = 0, const TQString& tabCaption = 0);
+
+ /**
+ * delete the toolview belonging to the given accessor
+ * @param accessor toolview to delete
+ */
+ void deleteToolWindow( KMDI::ToolViewAccessor *accessor);
+
+ /**
+ * delete the toolview belonging to the given pWnd
+ * @param pWnd toolview to be deleted
+ */
+ void deleteToolWindow( TQWidget* pWnd);
+
+ /**
+ * Sets the appearance of the toolview tabs.
+ * @param flags See KMDI::ToolviewStyle.
+ */
+ void setToolViewStyle(int flags);
+
+ public slots:
+ void prevToolViewInDock();
+ void nextToolViewInDock();
+
+ signals:
+ void collapseOverlapContainers();
+
+ protected:
+ void findToolViewsDockedToMain(TQPtrList<KDockWidget>* list,KDockWidget::DockPosition dprtmw);
+ void dockToolViewsIntoContainers(TQPtrList<KDockWidget>& widgetsToReparent,KDockWidget *container);
+
+ private:
+ /**
+ * setup main dock + tab widget
+ */
+ void setupMainDock ();
+
+ /**
+ * setup the sidebars for the toolviews
+ * and other internals to get them working
+ */
+ void setupToolViews ();
+
+ /**
+ * setup the menuentries
+ * must be done AFTER setupToolViews ()
+ */
+ void setupGUIClient ();
+
+ private slots:
+ void setActiveToolDock(DockContainer*);
+ void removeFromActiveDockList(DockContainer*);
+
+ #define protected public
+ signals:
+ #undef protected
+ void toggleTop();
+ void toggleLeft();
+ void toggleRight();
+ void toggleBottom();
+
+ protected:
+ KMDIPrivate::GUIClient *m_guiClient;
+ TQMap <TQWidget*, KMDI::ToolViewAccessor*> *m_toolViews;
+
+ KDockWidget *m_leftContainer;
+ KDockWidget *m_rightContainer;
+ KDockWidget *m_topContainer;
+ KDockWidget *m_bottomContainer;
+
+ KMDI::TabWidget *m_tabWidget;
+
+ private:
+ /**
+ * private d-pointer for BC
+ */
+ KMDIPrivate::MainWindowPrivate *d;
+};
+
+}
+
+#endif //_MainWindow_H_
+
+// kate: space-indent on; indent-width 2; replace-tabs on;