• 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 
52 class TQTimer;
53 class TQPopupMenu;
54 class TQMenuBar;
55 
56 
57 class TQToolButton;
58 
59 namespace KMDIPrivate
60 {
61 class KMDIGUIClient;
62 }
63 
64 class KMdiDockContainer;
65 class KMdiMainFrmPrivate;
66 
72 class KMDI_EXPORT KMdiViewCloseEvent : public TQCustomEvent
73 {
74 public:
75  KMdiViewCloseEvent( KMdiChildView* pWnd ) : TQCustomEvent( TQEvent::User, pWnd ) {}
76 };
77 
239 class KMDI_EXPORT KMdiMainFrm : public KParts::DockMainWindow
240 {
241  friend class KMdiChildView;
242  friend class KMdiTaskBar;
243  Q_OBJECT
244 
245  friend class KMdiToolViewAccessor;
246  // attributes
247 protected:
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 
292 private:
293  KMdiMainFrmPrivate* d;
294  KMDIPrivate::KMDIGUIClient* m_mdiGUIClient;
295  bool m_managedDockPositionMode;
296 
297  // methods
298 public:
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 
487 public 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 ) KDE_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 
745 private:
746  void setupToolViewsForIDEALMode();
747  void setupTabbedDocumentViewSpace();
748  class KMdiDocumentViewTabWidget * m_documentTabWidget;
749 
750 protected:
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 
785 protected 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 
832 signals:
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 
862 public slots:
863  void prevToolViewInDock();
864  void nextToolViewInDock();
865 
866 private slots:
867  void setActiveToolDock( KMdiDockContainer* );
868  void removeFromActiveDockList( KMdiDockContainer* );
869  void slotDocCurrentChanged( TQWidget* );
870  void verifyToplevelHeight();
871 #define protected public
872 signals:
873 #undef protected
874 
875  void toggleTop();
876  void toggleLeft();
877  void toggleRight();
878  void toggleBottom();
879 };
880 
881 #endif //_TDEMDIMAINFRM_H_
KMdiMainFrm::setBackgroundColor
virtual void setBackgroundColor(const TQColor &c)
Sets a background color for the MDI view area widget.
Definition: tdemdimainfrm.h:427
KMdiMainFrm::blockClearingOfWindowMenu
void blockClearingOfWindowMenu(bool bBlocked)
prevents fillWindowMenu() from m_pWindowMenu->clear().
Definition: tdemdimainfrm.h:768
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
KMdiChildArea::tileAnodine
void tileAnodine()
Tile Anodine.
Definition: tdemdichildarea.cpp:606
KMdiMainFrm::taskBarHeight
virtual int taskBarHeight()
Returns the height of the taskbar.
Definition: tdemdimainfrm.h:382
KMdiMainFrm::expandHorizontal
virtual void expandHorizontal()
Maximizes only in horizontal direction.
Definition: tdemdimainfrm.h:692
KMdiMainFrm::defaultChildFrmSize
TQSize defaultChildFrmSize()
Returns the default size for a newly added KMdiChildView.
Definition: tdemdimainfrm.h:443
KMdiMainFrm
Base class for all your special main frames.
Definition: tdemdimainfrm.h:239
KMdiChildArea::expandHorizontal
void expandHorizontal()
Maximize all windows but only in horizontal direction.
Definition: tdemdichildarea.cpp:464
KMdiChildArea::cascadeWindows
void cascadeWindows()
Cascades all windows resizing them to the minimum size.
Definition: tdemdichildarea.cpp:386
KMDIPrivate
Definition: tdemdiguiclient.h:34
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
KMdiChildArea::expandVertical
void expandVertical()
Maximize all windows but only in vertical direction.
Definition: tdemdichildarea.cpp:442
KMdiMainFrm::windowMenu
TQPopupMenu * windowMenu() const
Returns a popup menu that contains the MDI controlled view list.
Definition: tdemdimainfrm.h:422
KMdiMainFrm::childFrameModeHeight
int childFrameModeHeight()
Returns the Childframe mode height of this.
Definition: tdemdimainfrm.h:453
KMdiMainFrm::tileAnodine
virtual void tileAnodine()
Tile Anodine.
Definition: tdemdimainfrm.h:702
KMdiMainFrm::isFakingSDIApplication
bool isFakingSDIApplication() const
Definition: tdemdimainfrm.h:478
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
KMdiChildArea::tilePragma
void tilePragma()
Tile Pragma.
Definition: tdemdichildarea.cpp:498
KMdiMainFrm::isInMaximizedChildFrmMode
bool isInMaximizedChildFrmMode()
Returns whether the application's MDI views are in maximized state or not.
Definition: tdemdimainfrm.h:317
KMdiMainFrm::setSwitching
void setSwitching(const bool switching)
We're switching something.
Definition: tdemdimainfrm.h:484
KMdiMainFrm::setUndockPositioningOffset
virtual void setUndockPositioningOffset(TQPoint offset)
Sets an offset value that is used on detachWindow() .
Definition: tdemdimainfrm.h:388
KMdiMainFrm::tileVertically
virtual void tileVertically()
Tile Vertically.
Definition: tdemdimainfrm.h:707
KMdiDocumentViewTabWidget
A reimplementation of KTabWidget for KMDI.
Definition: tdemdidocumentviewtabwidget.h:22
KMdiMainFrm::setBackgroundPixmap
virtual void setBackgroundPixmap(const TQPixmap &pm)
Sets a background pixmap for the MDI view area widget.
Definition: tdemdimainfrm.h:432
KMdiChildFrm
Internal class.
Definition: tdemdichildfrm.h:130
KMdiChildArea::tileVertically
void tileVertically()
Tile all the windows in the child area vertically.
Definition: tdemdichildarea.cpp:680
KMdi::StandardAdd
standard is: show normal, attached, visible, document view (not toolview).
Definition: tdemdidefines.h:72
KMdiMainFrm::cascadeMaximized
virtual void cascadeMaximized()
Cascades the windows resizing them to the maximum available size.
Definition: tdemdimainfrm.h:682
KMdiTaskBar
Internal class.
Definition: tdemditaskbar.h:129
KMdiMainFrm::frameDecorOfAttachedViews
static int frameDecorOfAttachedViews()
Definition: tdemdimainfrm.h:465
KMdiMainFrm::cascadeWindows
virtual void cascadeWindows()
Cascades the windows without resizing them.
Definition: tdemdimainfrm.h:677
KMdiMainFrm::mdiMode
KMdi::MdiMode mdiMode()
Returns the MDI mode.
Definition: tdemdimainfrm.h:322
KMdiViewCloseEvent
Internal class.
Definition: tdemdimainfrm.h:72
KMdiDocumentViewTabWidget::setTabWidgetVisibility
void setTabWidgetVisibility(KMdi::TabWidgetVisibility)
Get the tab widget's visibility.
Definition: tdemdidocumentviewtabwidget.cpp:125
KMDIPrivate::KMDIGUIClient
A class derived from KXMLGUIClient that handles the various KMDI modes.
Definition: tdemdiguiclient.h:41
KMdiMainFrm::expandVertical
virtual void expandVertical()
Maximizes only in vertical direction.
Definition: tdemdimainfrm.h:687
KMdiChildArea::cascadeMaximized
void cascadeMaximized()
Cascades all windows resizing them to the maximum available size.
Definition: tdemdichildarea.cpp:408
KMdiChildView
Base class for all your special view windows.
Definition: tdemdichildview.h:108
KMdiChildArea
Internal class.
Definition: tdemdichildarea.h:52
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
KMdiMainFrm::tilePragma
virtual void tilePragma()
Tile Pragma.
Definition: tdemdimainfrm.h:697
KMdiChildArea::m_defaultChildFrmSize
TQSize m_defaultChildFrmSize
the default size of an newly created childframe
Definition: tdemdichildarea.h:69

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
  •     tdecore
  • tdeabc
  • tdecmshell
  • tdecore
  • tdefx
  • tdehtml
  • tdeinit
  • tdeio
  •   bookmarks
  •   httpfilter
  •   kpasswdserver
  •   kssl
  • tdeioslave
  •   http
  •   tdefile
  •   tdeio
  •   tdeioexec
  • tdemdi
  •   tdemdi
  • tdenewstuff
  • tdeparts
  • tdeprint
  • tderandr
  • tderesources
  • tdespell2
  • tdesu
  • tdeui
  • tdeunittest
  • tdeutils
  • tdewallet
Generated for tdemdi by doxygen 1.8.8
This website is maintained by Timothy Pearson.