• Skip to content
  • Skip to link menu
Trinity API Reference
  • Trinity API Reference
  • tdemdi
 

tdemdi

tdemdimainfrm.h
00001 //----------------------------------------------------------------------------
00002 //    filename             : tdemdimainfrm.h
00003 //----------------------------------------------------------------------------
00004 //    Project              : KDE MDI extension
00005 //
00006 //    begin                : 07/1999       by Szymon Stefanek as part of kvirc
00007 //                                         (an IRC application)
00008 //    changes              : 09/1999       by Falk Brettschneider to create an
00009 //                           - 06/2000     stand-alone Qt extension set of
00010 //                                         classes and a Qt-based library
00011 //                         : 02/2000       by Massimo Morin (mmorin@schedsys.com)
00012 //                           2000-2003     maintained by the KDevelop project
00013 //    patches              : */2000        by Lars Beikirch (Lars.Beikirch@gmx.net)
00014 //                         : 01/2003       by Jens Zurheide (jens.zurheide@gmx.de)
00015 //
00016 //    copyright            : (C) 1999-2003 by Falk Brettschneider
00017 //                                         and
00018 //                                         Szymon Stefanek (stefanek@tin.it)
00019 //    email                :  falkbr@kdevelop.org (Falk Brettschneider)
00020 //----------------------------------------------------------------------------
00021 //
00022 //----------------------------------------------------------------------------
00023 //
00024 //    This program is free software; you can redistribute it and/or modify
00025 //    it under the terms of the GNU Library General Public License as
00026 //    published by the Free Software Foundation; either version 2 of the
00027 //    License, or (at your option) any later version.
00028 //
00029 //----------------------------------------------------------------------------
00030 
00031 #ifndef _TDEMDIMAINFRM_H_
00032 #define _TDEMDIMAINFRM_H_
00033 
00034 #include <tdeparts/dockmainwindow.h>
00035 #include <tdemenubar.h>
00036 #include <tdepopupmenu.h>
00037 
00038 #include <tqptrlist.h>
00039 #include <tqrect.h>
00040 #include <tqapplication.h>
00041 #include <tqdom.h>
00042 #include <tqguardedptr.h>
00043 
00044 #include "tdemditaskbar.h"
00045 #include "tdemdichildarea.h"
00046 #include "tdemdichildview.h"
00047 #include "tdemdiiterator.h"
00048 #include "tdemdilistiterator.h"
00049 #include "tdemdinulliterator.h"
00050 #include "tdemditoolviewaccessor.h"
00051 
00052 class TQTimer;
00053 class TQPopupMenu;
00054 class TQMenuBar;
00055 
00056 
00057 class TQToolButton;
00058 
00059 namespace KMDIPrivate
00060 {
00061 class KMDIGUIClient;
00062 }
00063 
00064 class KMdiDockContainer;
00065 class KMdiMainFrmPrivate;
00066 
00072 class KMDI_EXPORT KMdiViewCloseEvent : public TQCustomEvent
00073 {
00074 public:
00075     KMdiViewCloseEvent( KMdiChildView* pWnd ) : TQCustomEvent( TQEvent::User, pWnd ) {}
00076 };
00077 
00239 class KMDI_EXPORT KMdiMainFrm : public KParts::DockMainWindow
00240 {
00241     friend class KMdiChildView;
00242     friend class KMdiTaskBar;
00243     Q_OBJECT
00244 
00245     friend class KMdiToolViewAccessor;
00246     // attributes
00247 protected:
00248     KMdi::MdiMode m_mdiMode;
00249     KMdiChildArea *m_pMdi;
00250     KMdiTaskBar *m_pTaskBar;
00251     TQPtrList<KMdiChildView> *m_pDocumentViews;
00252     TQMap<TQWidget*, KMdiToolViewAccessor*> *m_pToolViews;
00253     KMdiChildView *m_pCurrentWindow;
00254     TQPopupMenu *m_pWindowPopup;
00255     TQPopupMenu *m_pTaskBarPopup;
00256     TQPopupMenu *m_pWindowMenu;
00257     TQPopupMenu *m_pDockMenu;
00258     TQPopupMenu *m_pMdiModeMenu;
00259     TQPopupMenu *m_pPlacingMenu;
00260     KMenuBar *m_pMainMenuBar;
00261 
00262     TQPixmap *m_pUndockButtonPixmap;
00263     TQPixmap *m_pMinButtonPixmap;
00264     TQPixmap *m_pRestoreButtonPixmap;
00265     TQPixmap *m_pCloseButtonPixmap;
00266 
00267     TQToolButton *m_pUndock;
00268     TQToolButton *m_pMinimize;
00269     TQToolButton *m_pRestore;
00270     TQToolButton *m_pClose;
00271     TQPoint m_undockPositioningOffset;
00272     bool m_bMaximizedChildFrmMode;
00273     int m_oldMainFrmHeight;
00274     int m_oldMainFrmMinHeight;
00275     int m_oldMainFrmMaxHeight;
00276     static KMdi::FrameDecor m_frameDecoration;
00277     bool m_bSDIApplication;
00278     KDockWidget* m_pDockbaseAreaOfDocumentViews;
00279     TQDomDocument* m_pTempDockSession;
00280     bool m_bClearingOfWindowMenuBlocked;
00281 
00282     TQTimer* m_pDragEndTimer;
00283 
00284     bool m_bSwitching;
00285 
00286     KDockWidget* m_leftContainer;
00287     KDockWidget* m_rightContainer;
00288     KDockWidget* m_topContainer;
00289     KDockWidget* m_bottomContainer;
00290 
00291 
00292 private:
00293     KMdiMainFrmPrivate* d;
00294     KMDIPrivate::KMDIGUIClient* m_mdiGUIClient;
00295     bool m_managedDockPositionMode;
00296 
00297     // methods
00298 public:
00299 #ifdef qdoc
00300     KMdiMainFrm( TQWidget* parentWidget, const char* name = "", KMdi::MdiMode mdiMode = KMdi::ChildframeMode, WFlags flags = WType_TopLevel | WDestructiveClose );
00301 #else
00302     KMdiMainFrm( TQWidget* parentWidget, const char* name = "", KMdi::MdiMode mdiMode = KMdi::ChildframeMode, WFlags flags = (WFlags)(WType_TopLevel | WDestructiveClose) );
00303 #endif
00304     virtual ~KMdiMainFrm();
00305 
00310     void setStandardMDIMenuEnabled( bool showModeMenu = true );
00311 
00312     void setManagedDockPositionModeEnabled( bool enabled );
00313 
00317     bool isInMaximizedChildFrmMode() { return m_bMaximizedChildFrmMode; }
00318 
00322     KMdi::MdiMode mdiMode() { return m_mdiMode; }
00323 
00327     KMdiChildView* activeWindow();
00328 
00336     virtual TQPopupMenu * taskBarPopup( KMdiChildView *pWnd, bool bIncludeWindowPopup = false );
00337 
00342     virtual TQPopupMenu * windowPopup( KMdiChildView *pWnd, bool bIncludeTaskbarPopup = true );
00343 
00347     virtual void applyOptions();
00348 
00352     KMdiChildView * findWindow( const TQString& caption );
00353 
00354     enum ExistsAs {DocumentView, ToolView, AnyView};
00358     bool windowExists( KMdiChildView *pWnd, ExistsAs as );
00359 
00372     virtual bool event( TQEvent* e );
00373 
00377     virtual void setSysButtonsAtMenuPosition();
00378 
00382     virtual int taskBarHeight() { return m_pTaskBar ? m_pTaskBar->height() : 0; }
00383 
00388     virtual void setUndockPositioningOffset( TQPoint offset ) { m_undockPositioningOffset = offset; }
00389 
00396     // FIXME And what exactly are we supposed to fix? -mattr
00397     KMdiIterator<KMdiChildView*>* createIterator()
00398     {
00399         if ( m_pDocumentViews == 0L )
00400         {
00401             return new KMdiNullIterator<KMdiChildView*>();
00402         }
00403         else
00404         {
00405             return new KMdiListIterator<KMdiChildView>( *m_pDocumentViews );
00406         }
00407     }
00408 
00412     void deleteIterator( KMdiIterator<KMdiChildView*>* pIt )
00413     {
00414         delete pIt;
00415     }
00416 
00422     TQPopupMenu* windowMenu() const  { return m_pWindowMenu; };
00423 
00427     virtual void setBackgroundColor( const TQColor &c ) { m_pMdi->setBackgroundColor( c ); }
00428 
00432     virtual void setBackgroundPixmap( const TQPixmap &pm ) { m_pMdi->setBackgroundPixmap( pm ); }
00433 
00438     void setDefaultChildFrmSize( const TQSize& sz ) { m_pMdi->m_defaultChildFrmSize = sz; }
00439 
00443     TQSize defaultChildFrmSize() { return m_pMdi->m_defaultChildFrmSize; }
00444 
00448     virtual void setMinimumSize( int minw, int minh );
00449 
00453     int childFrameModeHeight() { return m_oldMainFrmHeight; };
00460     virtual void setMenuForSDIModeSysButtons( KMenuBar* menuBar = 0 );
00461 
00465     static int frameDecorOfAttachedViews() { return m_frameDecoration; }
00466 
00473     void fakeSDIApplication();
00474 
00478     bool isFakingSDIApplication() const { return m_bSDIApplication; }
00479 
00480     virtual bool eventFilter( TQObject *obj, TQEvent *e );
00481     void findRootDockWidgets( TQPtrList<KDockWidget>* pRootDockWidgetList, TQValueList<TQRect>* pPositionList );
00482 
00484     void setSwitching( const bool switching ) { m_bSwitching = switching; }
00485     bool switching( void ) const { return m_bSwitching; }
00486 
00487 public slots:
00492     KMdiChildView* createWrapper( TQWidget *view, const TQString& name, const TQString& shortName );
00493 
00503     virtual void addWindow( KMdiChildView* pWnd, int flags = KMdi::StandardAdd );
00504 
00505     //KDE4: merge the two methods
00521     void addWindow( KMdiChildView* pWnd, int flags, int index );
00522 
00534     virtual void addWindow( KMdiChildView* pWnd, TQPoint pos, int flags = KMdi::StandardAdd );
00535 
00547     virtual void addWindow( KMdiChildView* pWnd, TQRect rectNormal, int flags = KMdi::StandardAdd );
00548 
00553     virtual KMdiToolViewAccessor *addToolWindow( TQWidget* pWnd, KDockWidget::DockPosition pos = KDockWidget::DockNone,
00554                                                  TQWidget* pTargetWnd = 0L, int percent = 50, const TQString& tabToolTip = 0,
00555                                                  const TQString& tabCaption = 0 );
00556 
00557     virtual void deleteToolWindow( TQWidget* pWnd );
00558     virtual void deleteToolWindow( KMdiToolViewAccessor *accessor );
00559 
00564     KMdiToolViewAccessor *createToolWindow();
00565 
00571     virtual void removeWindowFromMdi( KMdiChildView *pWnd );
00572 
00577     virtual void closeWindow( KMdiChildView *pWnd, bool layoutTaskBar = true );
00578 
00582     virtual void slot_toggleTaskBar();
00583 
00589     virtual void attachWindow( KMdiChildView *pWnd, bool bShow = true, bool bAutomaticResize = false );
00590 
00595     virtual void detachWindow( KMdiChildView *pWnd, bool bShow = true );
00596 
00601     virtual void childWindowCloseRequest( KMdiChildView *pWnd );
00602 
00606     virtual void closeAllViews();
00607 
00611     virtual void iconifyAllViews();
00612 
00616     virtual void closeActiveView();
00617 
00621     virtual void switchToToplevelMode();
00622     virtual void finishToplevelMode();
00623 
00627     virtual void switchToChildframeMode();
00628     virtual void finishChildframeMode();
00629 
00633     virtual void switchToTabPageMode();
00634     virtual void finishTabPageMode();
00635 
00639     virtual void switchToIDEAlMode();
00640     virtual void finishIDEAlMode( bool full = true );
00641 
00646     void setIDEAlModeStyle( int flags ) KDE_DEPRECATED;
00647     //KDE4: Get rid of the above.
00653     void setToolviewStyle( int flags );
00657     bool isViewTaskBarOn();
00658 
00662     virtual void showViewTaskBar();
00663 
00667     virtual void hideViewTaskBar();
00668 
00672     virtual void fillWindowMenu();
00673 
00677     virtual void cascadeWindows() { m_pMdi->cascadeWindows(); }
00678 
00682     virtual void cascadeMaximized() { m_pMdi->cascadeMaximized(); }
00683 
00687     virtual void expandVertical() { m_pMdi->expandVertical(); }
00688 
00692     virtual void expandHorizontal() { m_pMdi->expandHorizontal(); }
00693 
00697     virtual void tilePragma() { m_pMdi->tilePragma(); }
00698 
00702     virtual void tileAnodine() { m_pMdi->tileAnodine(); }
00703 
00707     virtual void tileVertically() { m_pMdi->tileVertically(); }
00708 
00713     virtual void setFrameDecorOfAttachedViews( int frameDecor );
00714 
00718     virtual void setEnableMaximizedChildFrmMode( bool bEnable );
00719 
00723     virtual void activateNextWin();
00724 
00728     virtual void activatePrevWin();
00729 
00733     virtual void activateFirstWin();
00734 
00738     virtual void activateLastWin();
00739 
00743     virtual void activateView( int index );
00744 
00745 private:
00746     void setupToolViewsForIDEALMode();
00747     void setupTabbedDocumentViewSpace();
00748     class KMdiDocumentViewTabWidget * m_documentTabWidget;
00749 
00750 protected:
00751 
00752     virtual void resizeEvent( TQResizeEvent * );
00753 
00757     virtual void createTaskBar();
00758 
00762     virtual void createMdiManager();
00763 
00768     void blockClearingOfWindowMenu( bool bBlocked ) { m_bClearingOfWindowMenuBlocked = bBlocked; }
00769 
00770     void findToolViewsDockedToMain( TQPtrList<KDockWidget>* list, KDockWidget::DockPosition dprtmw );
00771     void dockToolViewsIntoContainers( TQPtrList<KDockWidget>& widgetsToReparent, KDockWidget *container );
00772     TQStringList prepareIdealToTabs( KDockWidget* container );
00773     void idealToolViewsToStandardTabs( TQStringList widgetNames, KDockWidget::DockPosition pos, int sizee );
00774 
00776     KMdi::TabWidgetVisibility tabWidgetVisibility();
00777 
00779     void setTabWidgetVisibility( KMdi::TabWidgetVisibility );
00780 
00782     class KTabWidget * tabWidget() const;
00783 
00784 
00785 protected slots:  // Protected slots
00790     virtual void activateView( KMdiChildView *pWnd );
00791 
00795     virtual void taskbarButtonRightClicked( KMdiChildView *pWnd );
00796 
00800     void switchOffMaximizeModeForMenu( KMdiChildFrm* oldChild );
00801 
00805     void updateSysButtonConnections( KMdiChildFrm* oldChild, KMdiChildFrm* newChild );
00806 
00810     void windowMenuItemActivated( int id );
00811 
00815     void dockMenuItemActivated( int id );
00816 
00820     void popupWindowMenu( TQPoint p );
00821 
00825     void dragEndTimeOut();
00826 
00830     void closeViewButtonPressed();
00831 
00832 signals:
00836     void lastChildFrmClosed();
00837 
00841     void lastChildViewClosed();
00842 
00846     void leftTopLevelMode();
00847 
00851     void childViewIsDetachedNow( TQWidget* );
00852 
00854     void collapseOverlapContainers();
00855 
00857     void mdiModeHasBeenChangedTo( KMdi::MdiMode );
00858 
00859     void viewActivated( KMdiChildView* );
00860     void viewDeactivated( KMdiChildView* );
00861 
00862 public slots:
00863     void prevToolViewInDock();
00864     void nextToolViewInDock();
00865 
00866 private slots:
00867     void setActiveToolDock( KMdiDockContainer* );
00868     void removeFromActiveDockList( KMdiDockContainer* );
00869     void slotDocCurrentChanged( TQWidget* );
00870     void verifyToplevelHeight();
00871 #define protected public
00872 signals:
00873 #undef protected
00874 
00875     void toggleTop();
00876     void toggleLeft();
00877     void toggleRight();
00878     void toggleBottom();
00879 };
00880 
00881 #endif //_TDEMDIMAINFRM_H_
00882 
00883 // kate: space-indent off; tab-width 4; replace-tabs off; indent-mode csands;
00884 

tdemdi

Skip menu "tdemdi"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

tdemdi

Skip menu "tdemdi"
  • arts
  • dcop
  • dnssd
  • interfaces
  •   kspeech
  •     interface
  •     library
  •   tdetexteditor
  • kate
  • kded
  • kdoctools
  • kimgio
  • kjs
  • libtdemid
  • libtdescreensaver
  • tdeabc
  • tdecmshell
  • tdecore
  • tdefx
  • tdehtml
  • tdeinit
  • tdeio
  •   bookmarks
  •   httpfilter
  •   kpasswdserver
  •   kssl
  •   tdefile
  •   tdeio
  •   tdeioexec
  • tdeioslave
  •   http
  • tdemdi
  •   tdemdi
  • tdenewstuff
  • tdeparts
  • tdeprint
  • tderandr
  • tderesources
  • tdespell2
  • tdesu
  • tdeui
  • tdeunittest
  • tdeutils
  • tdewallet
Generated for tdemdi by doxygen 1.7.6.1
This website is maintained by Timothy Pearson.