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

kmdi

  • kmdi
kmdimainfrm.h
1 //----------------------------------------------------------------------------
2 // filename : kmdimainfrm.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 _KMDIMAINFRM_H_
32 #define _KMDIMAINFRM_H_
33 
34 #include <kparts/dockmainwindow.h>
35 #include <kmenubar.h>
36 #include <kpopupmenu.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 "kmditaskbar.h"
45 #include "kmdichildarea.h"
46 #include "kmdichildview.h"
47 #include "kmdiiterator.h"
48 #include "kmdilistiterator.h"
49 #include "kmdinulliterator.h"
50 #include "kmditoolviewaccessor.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 //_KMDIMAINFRM_H_
882 
883 // kate: space-indent off; tab-width 4; replace-tabs off; indent-mode csands;
884 

kmdi

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

kmdi

Skip menu "kmdi"
  • arts
  • dcop
  • dnssd
  • interfaces
  •     interface
  •     library
  •   kspeech
  •   ktexteditor
  • kabc
  • kate
  • kcmshell
  • kdecore
  • kded
  • kdefx
  • kdeprint
  • kdesu
  • kdeui
  • kdoctools
  • khtml
  • kimgio
  • kinit
  • kio
  •   bookmarks
  •   httpfilter
  •   kfile
  •   kio
  •   kioexec
  •   kpasswdserver
  •   kssl
  • kioslave
  •   http
  • kjs
  • kmdi
  •   kmdi
  • knewstuff
  • kparts
  • krandr
  • kresources
  • kspell2
  • kunittest
  • kutils
  • kwallet
  • libkmid
  • libkscreensaver
Generated for kmdi by doxygen 1.8.3.1
This website is maintained by Timothy Pearson.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. |