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

tdemdi

  • tdemdi
tdemdimainfrm.h
1//----------------------------------------------------------------------------
2// filename : tdemdimainfrm.h
3//----------------------------------------------------------------------------
4// Project : KDE MDI extension
5//
6// begin : 07/1999 by Szymon Stefanek as part of kvirc
7// (an IRC application)
8// changes : 09/1999 by Falk Brettschneider to create an
9// - 06/2000 stand-alone Qt extension set of
10// classes and a Qt-based library
11// : 02/2000 by Massimo Morin (mmorin@schedsys.com)
12// 2000-2003 maintained by the KDevelop project
13// patches : */2000 by Lars Beikirch (Lars.Beikirch@gmx.net)
14// : 01/2003 by Jens Zurheide (jens.zurheide@gmx.de)
15//
16// copyright : (C) 1999-2003 by Falk Brettschneider
17// and
18// Szymon Stefanek (stefanek@tin.it)
19// email : falkbr@kdevelop.org (Falk Brettschneider)
20//----------------------------------------------------------------------------
21//
22//----------------------------------------------------------------------------
23//
24// This program is free software; you can redistribute it and/or modify
25// it under the terms of the GNU Library General Public License as
26// published by the Free Software Foundation; either version 2 of the
27// License, or (at your option) any later version.
28//
29//----------------------------------------------------------------------------
30
31#ifndef _TDEMDIMAINFRM_H_
32#define _TDEMDIMAINFRM_H_
33
34#include <tdeparts/dockmainwindow.h>
35#include <tdemenubar.h>
36#include <tdepopupmenu.h>
37
38#include <tqptrlist.h>
39#include <tqrect.h>
40#include <tqapplication.h>
41#include <tqdom.h>
42#include <tqguardedptr.h>
43
44#include "tdemditaskbar.h"
45#include "tdemdichildarea.h"
46#include "tdemdichildview.h"
47#include "tdemdiiterator.h"
48#include "tdemdilistiterator.h"
49#include "tdemdinulliterator.h"
50#include "tdemditoolviewaccessor.h"
51
52class TQTimer;
53class TQPopupMenu;
54class TQMenuBar;
55
56
57class TQToolButton;
58
59namespace KMDIPrivate
60{
61class KMDIGUIClient;
62}
63
64class KMdiDockContainer;
65class KMdiMainFrmPrivate;
66
72class KMDI_EXPORT KMdiViewCloseEvent : public TQCustomEvent
73{
74public:
75 KMdiViewCloseEvent( KMdiChildView* pWnd ) : TQCustomEvent( TQEvent::User, pWnd ) {}
76};
77
239class KMDI_EXPORT KMdiMainFrm : public KParts::DockMainWindow
240{
241 friend class KMdiChildView;
242 friend class KMdiTaskBar;
243 TQ_OBJECT
244
245 friend class KMdiToolViewAccessor;
246 // attributes
247protected:
248 KMdi::MdiMode m_mdiMode;
249 KMdiChildArea *m_pMdi;
250 KMdiTaskBar *m_pTaskBar;
251 TQPtrList<KMdiChildView> *m_pDocumentViews;
252 TQMap<TQWidget*, KMdiToolViewAccessor*> *m_pToolViews;
253 KMdiChildView *m_pCurrentWindow;
254 TQPopupMenu *m_pWindowPopup;
255 TQPopupMenu *m_pTaskBarPopup;
256 TQPopupMenu *m_pWindowMenu;
257 TQPopupMenu *m_pDockMenu;
258 TQPopupMenu *m_pMdiModeMenu;
259 TQPopupMenu *m_pPlacingMenu;
260 KMenuBar *m_pMainMenuBar;
261
262 TQPixmap *m_pUndockButtonPixmap;
263 TQPixmap *m_pMinButtonPixmap;
264 TQPixmap *m_pRestoreButtonPixmap;
265 TQPixmap *m_pCloseButtonPixmap;
266
267 TQToolButton *m_pUndock;
268 TQToolButton *m_pMinimize;
269 TQToolButton *m_pRestore;
270 TQToolButton *m_pClose;
271 TQPoint m_undockPositioningOffset;
272 bool m_bMaximizedChildFrmMode;
273 int m_oldMainFrmHeight;
274 int m_oldMainFrmMinHeight;
275 int m_oldMainFrmMaxHeight;
276 static KMdi::FrameDecor m_frameDecoration;
277 bool m_bSDIApplication;
278 KDockWidget* m_pDockbaseAreaOfDocumentViews;
279 TQDomDocument* m_pTempDockSession;
280 bool m_bClearingOfWindowMenuBlocked;
281
282 TQTimer* m_pDragEndTimer;
283
284 bool m_bSwitching;
285
286 KDockWidget* m_leftContainer;
287 KDockWidget* m_rightContainer;
288 KDockWidget* m_topContainer;
289 KDockWidget* m_bottomContainer;
290
291
292private:
293 KMdiMainFrmPrivate* d;
294 KMDIPrivate::KMDIGUIClient* m_mdiGUIClient;
295 bool m_managedDockPositionMode;
296
297 // methods
298public:
299#ifdef qdoc
300 KMdiMainFrm( TQWidget* parentWidget, const char* name = "", KMdi::MdiMode mdiMode = KMdi::ChildframeMode, WFlags flags = WType_TopLevel | WDestructiveClose );
301#else
302 KMdiMainFrm( TQWidget* parentWidget, const char* name = "", KMdi::MdiMode mdiMode = KMdi::ChildframeMode, WFlags flags = (WFlags)(WType_TopLevel | WDestructiveClose) );
303#endif
304 virtual ~KMdiMainFrm();
305
310 void setStandardMDIMenuEnabled( bool showModeMenu = true );
311
312 void setManagedDockPositionModeEnabled( bool enabled );
313
317 bool isInMaximizedChildFrmMode() { return m_bMaximizedChildFrmMode; }
318
322 KMdi::MdiMode mdiMode() { return m_mdiMode; }
323
327 KMdiChildView* activeWindow();
328
336 virtual TQPopupMenu * taskBarPopup( KMdiChildView *pWnd, bool bIncludeWindowPopup = false );
337
342 virtual TQPopupMenu * windowPopup( KMdiChildView *pWnd, bool bIncludeTaskbarPopup = true );
343
347 virtual void applyOptions();
348
352 KMdiChildView * findWindow( const TQString& caption );
353
354 enum ExistsAs {DocumentView, ToolView, AnyView};
358 bool windowExists( KMdiChildView *pWnd, ExistsAs as );
359
372 virtual bool event( TQEvent* e );
373
377 virtual void setSysButtonsAtMenuPosition();
378
382 virtual int taskBarHeight() { return m_pTaskBar ? m_pTaskBar->height() : 0; }
383
388 virtual void setUndockPositioningOffset( TQPoint offset ) { m_undockPositioningOffset = offset; }
389
396 // FIXME And what exactly are we supposed to fix? -mattr
397 KMdiIterator<KMdiChildView*>* createIterator()
398 {
399 if ( m_pDocumentViews == 0L )
400 {
401 return new KMdiNullIterator<KMdiChildView*>();
402 }
403 else
404 {
405 return new KMdiListIterator<KMdiChildView>( *m_pDocumentViews );
406 }
407 }
408
412 void deleteIterator( KMdiIterator<KMdiChildView*>* pIt )
413 {
414 delete pIt;
415 }
416
422 TQPopupMenu* windowMenu() const { return m_pWindowMenu; };
423
427 virtual void setBackgroundColor( const TQColor &c ) { m_pMdi->setBackgroundColor( c ); }
428
432 virtual void setBackgroundPixmap( const TQPixmap &pm ) { m_pMdi->setBackgroundPixmap( pm ); }
433
438 void setDefaultChildFrmSize( const TQSize& sz ) { m_pMdi->m_defaultChildFrmSize = sz; }
439
443 TQSize defaultChildFrmSize() { return m_pMdi->m_defaultChildFrmSize; }
444
448 virtual void setMinimumSize( int minw, int minh );
449
453 int childFrameModeHeight() { return m_oldMainFrmHeight; };
460 virtual void setMenuForSDIModeSysButtons( KMenuBar* menuBar = 0 );
461
465 static int frameDecorOfAttachedViews() { return m_frameDecoration; }
466
473 void fakeSDIApplication();
474
478 bool isFakingSDIApplication() const { return m_bSDIApplication; }
479
480 virtual bool eventFilter( TQObject *obj, TQEvent *e );
481 void findRootDockWidgets( TQPtrList<KDockWidget>* pRootDockWidgetList, TQValueList<TQRect>* pPositionList );
482
484 void setSwitching( const bool switching ) { m_bSwitching = switching; }
485 bool switching( void ) const { return m_bSwitching; }
486
487public slots:
492 KMdiChildView* createWrapper( TQWidget *view, const TQString& name, const TQString& shortName );
493
503 virtual void addWindow( KMdiChildView* pWnd, int flags = KMdi::StandardAdd );
504
505 //KDE4: merge the two methods
521 void addWindow( KMdiChildView* pWnd, int flags, int index );
522
534 virtual void addWindow( KMdiChildView* pWnd, TQPoint pos, int flags = KMdi::StandardAdd );
535
547 virtual void addWindow( KMdiChildView* pWnd, TQRect rectNormal, int flags = KMdi::StandardAdd );
548
553 virtual KMdiToolViewAccessor *addToolWindow( TQWidget* pWnd, KDockWidget::DockPosition pos = KDockWidget::DockNone,
554 TQWidget* pTargetWnd = 0L, int percent = 50, const TQString& tabToolTip = 0,
555 const TQString& tabCaption = 0 );
556
557 virtual void deleteToolWindow( TQWidget* pWnd );
558 virtual void deleteToolWindow( KMdiToolViewAccessor *accessor );
559
564 KMdiToolViewAccessor *createToolWindow();
565
571 virtual void removeWindowFromMdi( KMdiChildView *pWnd );
572
577 virtual void closeWindow( KMdiChildView *pWnd, bool layoutTaskBar = true );
578
582 virtual void slot_toggleTaskBar();
583
589 virtual void attachWindow( KMdiChildView *pWnd, bool bShow = true, bool bAutomaticResize = false );
590
595 virtual void detachWindow( KMdiChildView *pWnd, bool bShow = true );
596
601 virtual void childWindowCloseRequest( KMdiChildView *pWnd );
602
606 virtual void closeAllViews();
607
611 virtual void iconifyAllViews();
612
616 virtual void closeActiveView();
617
621 virtual void switchToToplevelMode();
622 virtual void finishToplevelMode();
623
627 virtual void switchToChildframeMode();
628 virtual void finishChildframeMode();
629
633 virtual void switchToTabPageMode();
634 virtual void finishTabPageMode();
635
639 virtual void switchToIDEAlMode();
640 virtual void finishIDEAlMode( bool full = true );
641
646 void setIDEAlModeStyle( int flags ) TDE_DEPRECATED;
647 //KDE4: Get rid of the above.
653 void setToolviewStyle( int flags );
657 bool isViewTaskBarOn();
658
662 virtual void showViewTaskBar();
663
667 virtual void hideViewTaskBar();
668
672 virtual void fillWindowMenu();
673
677 virtual void cascadeWindows() { m_pMdi->cascadeWindows(); }
678
682 virtual void cascadeMaximized() { m_pMdi->cascadeMaximized(); }
683
687 virtual void expandVertical() { m_pMdi->expandVertical(); }
688
692 virtual void expandHorizontal() { m_pMdi->expandHorizontal(); }
693
697 virtual void tilePragma() { m_pMdi->tilePragma(); }
698
702 virtual void tileAnodine() { m_pMdi->tileAnodine(); }
703
707 virtual void tileVertically() { m_pMdi->tileVertically(); }
708
713 virtual void setFrameDecorOfAttachedViews( int frameDecor );
714
718 virtual void setEnableMaximizedChildFrmMode( bool bEnable );
719
723 virtual void activateNextWin();
724
728 virtual void activatePrevWin();
729
733 virtual void activateFirstWin();
734
738 virtual void activateLastWin();
739
743 virtual void activateView( int index );
744
745private:
746 void setupToolViewsForIDEALMode();
747 void setupTabbedDocumentViewSpace();
748 class KMdiDocumentViewTabWidget * m_documentTabWidget;
749
750protected:
751
752 virtual void resizeEvent( TQResizeEvent * );
753
757 virtual void createTaskBar();
758
762 virtual void createMdiManager();
763
768 void blockClearingOfWindowMenu( bool bBlocked ) { m_bClearingOfWindowMenuBlocked = bBlocked; }
769
770 void findToolViewsDockedToMain( TQPtrList<KDockWidget>* list, KDockWidget::DockPosition dprtmw );
771 void dockToolViewsIntoContainers( TQPtrList<KDockWidget>& widgetsToReparent, KDockWidget *container );
772 TQStringList prepareIdealToTabs( KDockWidget* container );
773 void idealToolViewsToStandardTabs( TQStringList widgetNames, KDockWidget::DockPosition pos, int sizee );
774
776 KMdi::TabWidgetVisibility tabWidgetVisibility();
777
779 void setTabWidgetVisibility( KMdi::TabWidgetVisibility );
780
782 class KTabWidget * tabWidget() const;
783
784
785protected slots: // Protected slots
790 virtual void activateView( KMdiChildView *pWnd );
791
795 virtual void taskbarButtonRightClicked( KMdiChildView *pWnd );
796
800 void switchOffMaximizeModeForMenu( KMdiChildFrm* oldChild );
801
805 void updateSysButtonConnections( KMdiChildFrm* oldChild, KMdiChildFrm* newChild );
806
810 void windowMenuItemActivated( int id );
811
815 void dockMenuItemActivated( int id );
816
820 void popupWindowMenu( TQPoint p );
821
825 void dragEndTimeOut();
826
830 void closeViewButtonPressed();
831
832signals:
836 void lastChildFrmClosed();
837
841 void lastChildViewClosed();
842
846 void leftTopLevelMode();
847
851 void childViewIsDetachedNow( TQWidget* );
852
854 void collapseOverlapContainers();
855
857 void mdiModeHasBeenChangedTo( KMdi::MdiMode );
858
859 void viewActivated( KMdiChildView* );
860 void viewDeactivated( KMdiChildView* );
861
862public slots:
863 void prevToolViewInDock();
864 void nextToolViewInDock();
865
866private slots:
867 void setActiveToolDock( KMdiDockContainer* );
868 void removeFromActiveDockList( KMdiDockContainer* );
869 void slotDocCurrentChanged( TQWidget* );
870 void verifyToplevelHeight();
871#define protected public
872signals:
873#undef protected
874
875 void toggleTop();
876 void toggleLeft();
877 void toggleRight();
878 void toggleBottom();
879};
880
881#endif //_TDEMDIMAINFRM_H_
KMDIPrivate::KMDIGUIClient
A class derived from KXMLGUIClient that handles the various KMDI modes.
Definition: tdemdiguiclient.h:43
KMdiChildArea
Internal class.
Definition: tdemdichildarea.h:53
KMdiChildArea::cascadeMaximized
void cascadeMaximized()
Cascades all windows resizing them to the maximum available size.
Definition: tdemdichildarea.cpp:404
KMdiChildArea::expandVertical
void expandVertical()
Maximize all windows but only in vertical direction.
Definition: tdemdichildarea.cpp:438
KMdiChildArea::tilePragma
void tilePragma()
Tile Pragma.
Definition: tdemdichildarea.cpp:494
KMdiChildArea::expandHorizontal
void expandHorizontal()
Maximize all windows but only in horizontal direction.
Definition: tdemdichildarea.cpp:460
KMdiChildArea::cascadeWindows
void cascadeWindows()
Cascades all windows resizing them to the minimum size.
Definition: tdemdichildarea.cpp:382
KMdiChildArea::tileVertically
void tileVertically()
Tile all the windows in the child area vertically.
Definition: tdemdichildarea.cpp:676
KMdiChildArea::tileAnodine
void tileAnodine()
Tile Anodine.
Definition: tdemdichildarea.cpp:602
KMdiChildArea::m_defaultChildFrmSize
TQSize m_defaultChildFrmSize
the default size of an newly created childframe
Definition: tdemdichildarea.h:69
KMdiChildFrm
Internal class.
Definition: tdemdichildfrm.h:131
KMdiChildView
Base class for all your special view windows.
Definition: tdemdichildview.h:109
KMdiDocumentViewTabWidget
A reimplementation of KTabWidget for KMDI.
Definition: tdemdidocumentviewtabwidget.h:24
KMdiDocumentViewTabWidget::tabWidgetVisibility
KMdi::TabWidgetVisibility tabWidgetVisibility()
Set the tab widget's visibility and then make the change to match the new setting.
Definition: tdemdidocumentviewtabwidget.cpp:137
KMdiDocumentViewTabWidget::setTabWidgetVisibility
void setTabWidgetVisibility(KMdi::TabWidgetVisibility)
Get the tab widget's visibility.
Definition: tdemdidocumentviewtabwidget.cpp:125
KMdiMainFrm
Base class for all your special main frames.
Definition: tdemdimainfrm.h:240
KMdiMainFrm::tilePragma
virtual void tilePragma()
Tile Pragma.
Definition: tdemdimainfrm.h:697
KMdiMainFrm::isFakingSDIApplication
bool isFakingSDIApplication() const
Definition: tdemdimainfrm.h:478
KMdiMainFrm::lastChildFrmClosed
void lastChildFrmClosed()
Signals the last attached KMdiChildView has been closed.
KMdiMainFrm::leftTopLevelMode
void leftTopLevelMode()
Signals that the Toplevel mode has been left.
KMdiMainFrm::windowMenu
TQPopupMenu * windowMenu() const
Returns a popup menu that contains the MDI controlled view list.
Definition: tdemdimainfrm.h:422
KMdiMainFrm::mdiModeHasBeenChangedTo
void mdiModeHasBeenChangedTo(KMdi::MdiMode)
Signals the MDI mode has been changed.
KMdiMainFrm::isInMaximizedChildFrmMode
bool isInMaximizedChildFrmMode()
Returns whether the application's MDI views are in maximized state or not.
Definition: tdemdimainfrm.h:317
KMdiMainFrm::childViewIsDetachedNow
void childViewIsDetachedNow(TQWidget *)
Signals that a child view has been detached (undocked to desktop)
KMdiMainFrm::deleteIterator
void deleteIterator(KMdiIterator< KMdiChildView * > *pIt)
Deletes an KMdiIterator created in the KMdi library (needed for the windows dll problem).
Definition: tdemdimainfrm.h:412
KMdiMainFrm::expandVertical
virtual void expandVertical()
Maximizes only in vertical direction.
Definition: tdemdimainfrm.h:687
KMdiMainFrm::childFrameModeHeight
int childFrameModeHeight()
Returns the Childframe mode height of this.
Definition: tdemdimainfrm.h:453
KMdiMainFrm::setUndockPositioningOffset
virtual void setUndockPositioningOffset(TQPoint offset)
Sets an offset value that is used on detachWindow() .
Definition: tdemdimainfrm.h:388
KMdiMainFrm::expandHorizontal
virtual void expandHorizontal()
Maximizes only in horizontal direction.
Definition: tdemdimainfrm.h:692
KMdiMainFrm::mdiMode
KMdi::MdiMode mdiMode()
Returns the MDI mode.
Definition: tdemdimainfrm.h:322
KMdiMainFrm::cascadeMaximized
virtual void cascadeMaximized()
Cascades the windows resizing them to the maximum available size.
Definition: tdemdimainfrm.h:682
KMdiMainFrm::collapseOverlapContainers
void collapseOverlapContainers()
Signals we need to collapse the overlapped containers.
KMdiMainFrm::blockClearingOfWindowMenu
void blockClearingOfWindowMenu(bool bBlocked)
prevents fillWindowMenu() from m_pWindowMenu->clear().
Definition: tdemdimainfrm.h:768
KMdiMainFrm::tileVertically
virtual void tileVertically()
Tile Vertically.
Definition: tdemdimainfrm.h:707
KMdiMainFrm::createIterator
KMdiIterator< KMdiChildView * > * createIterator()
If you don't want to know about the inner structure of the KMdi system, you can use this iterator to ...
Definition: tdemdimainfrm.h:397
KMdiMainFrm::tileAnodine
virtual void tileAnodine()
Tile Anodine.
Definition: tdemdimainfrm.h:702
KMdiMainFrm::cascadeWindows
virtual void cascadeWindows()
Cascades the windows without resizing them.
Definition: tdemdimainfrm.h:677
KMdiMainFrm::frameDecorOfAttachedViews
static int frameDecorOfAttachedViews()
Definition: tdemdimainfrm.h:465
KMdiMainFrm::setBackgroundColor
virtual void setBackgroundColor(const TQColor &c)
Sets a background color for the MDI view area widget.
Definition: tdemdimainfrm.h:427
KMdiMainFrm::defaultChildFrmSize
TQSize defaultChildFrmSize()
Returns the default size for a newly added KMdiChildView.
Definition: tdemdimainfrm.h:443
KMdiMainFrm::setSwitching
void setSwitching(const bool switching)
We're switching something.
Definition: tdemdimainfrm.h:484
KMdiMainFrm::taskBarHeight
virtual int taskBarHeight()
Returns the height of the taskbar.
Definition: tdemdimainfrm.h:382
KMdiMainFrm::lastChildViewClosed
void lastChildViewClosed()
Signals the last KMdiChildView (that is under MDI control) has been closed.
KMdiMainFrm::setBackgroundPixmap
virtual void setBackgroundPixmap(const TQPixmap &pm)
Sets a background pixmap for the MDI view area widget.
Definition: tdemdimainfrm.h:432
KMdiMainFrm::setDefaultChildFrmSize
void setDefaultChildFrmSize(const TQSize &sz)
Sets a size that is used as the default size for a newly to the MDI system added KMdiChildView .
Definition: tdemdimainfrm.h:438
KMdiTaskBar
Internal class.
Definition: tdemditaskbar.h:130
KMdiViewCloseEvent
Internal class.
Definition: tdemdimainfrm.h:73
KMdi::StandardAdd
@ StandardAdd
standard is: show normal, attached, visible, document view (not toolview).
Definition: tdemdidefines.h:72

tdemdi

Skip menu "tdemdi"
  • Main Page
  • Namespace List
  • 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.9.4
This website is maintained by Timothy Pearson.