KMdiMainFrm Class Reference

`#include <kmdimainfrm.h>`

Inherits DockMainWindow.

## Public Types

enum | ExistsAs { DocumentView, ToolView, AnyView }

## Public Slots

KMdiChildView * | createWrapper (QWidget *view, const QString &name, const QString &shortName)
virtual void | addWindow (KMdiChildView *pWnd, int flags=KMdi::StandardAdd)
void | addWindow (KMdiChildView *pWnd, int flags, int index)
virtual void | addWindow (KMdiChildView *pWnd, QPoint pos, int flags=KMdi::StandardAdd)
virtual void | addWindow (KMdiChildView *pWnd, QRect rectNormal, int flags=KMdi::StandardAdd)
virtual KMdiToolViewAccessor * | addToolWindow (QWidget *pWnd, KDockWidget::DockPosition pos=KDockWidget::DockNone, QWidget *pTargetWnd=0L, int percent=50, const QString &tabToolTip=0, const QString &tabCaption=0)
virtual void | deleteToolWindow (QWidget *pWnd)
virtual void | deleteToolWindow (KMdiToolViewAccessor *accessor)
KMdiToolViewAccessor * | createToolWindow ()
virtual void | removeWindowFromMdi (KMdiChildView *pWnd)
virtual void | closeWindow (KMdiChildView *pWnd, bool layoutTaskBar=true)
virtual void | slot_toggleTaskBar ()
virtual void | attachWindow (KMdiChildView *pWnd, bool bShow=true, bool bAutomaticResize=false)
virtual void | detachWindow (KMdiChildView *pWnd, bool bShow=true)
virtual void | childWindowCloseRequest (KMdiChildView *pWnd)
virtual void | closeAllViews ()
virtual void | iconifyAllViews ()
virtual void | closeActiveView ()
virtual void | switchToToplevelMode ()
virtual void | finishToplevelMode ()
virtual void | switchToChildframeMode ()
virtual void | finishChildframeMode ()
virtual void | switchToTabPageMode ()
virtual void | finishTabPageMode ()
virtual void | switchToIDEAlMode ()
virtual void | finishIDEAlMode (bool full=true)
void | setIDEAlModeStyle (int flags) KDE_DEPRECATED
void | setToolviewStyle (int flags)
bool | isViewTaskBarOn ()
virtual void | showViewTaskBar ()
virtual void | hideViewTaskBar ()
virtual void | fillWindowMenu ()
virtual void | cascadeWindows ()
virtual void | cascadeMaximized ()
virtual void | expandVertical ()
virtual void | expandHorizontal ()
virtual void | tilePragma ()
virtual void | tileAnodine ()
virtual void | tileVertically ()
virtual void | setFrameDecorOfAttachedViews (int frameDecor)
virtual void | setEnableMaximizedChildFrmMode (bool bEnable)
virtual void | activateNextWin ()
virtual void | activatePrevWin ()
virtual void | activateFirstWin ()
virtual void | activateLastWin ()
virtual void | activateView (int index)
void | prevToolViewInDock ()
void | nextToolViewInDock ()

## Signals

void | lastChildFrmClosed ()
void | lastChildViewClosed ()
void | leftTopLevelMode ()
void | childViewIsDetachedNow (QWidget *)
void | collapseOverlapContainers ()
void | mdiModeHasBeenChangedTo (KMdi::MdiMode)
void | viewActivated (KMdiChildView *)
void | viewDeactivated (KMdiChildView *)
void | toggleTop ()
void | toggleLeft ()
void | toggleRight ()
void | toggleBottom ()

## Public Member Functions

| KMdiMainFrm (QWidget *parentWidget, const char *name="", KMdi::MdiMode mdiMode=KMdi::ChildframeMode, WFlags flags=WType_TopLevel|WDestructiveClose)
void | setStandardMDIMenuEnabled (bool showModeMenu=true)
void | setManagedDockPositionModeEnabled (bool enabled)
bool | isInMaximizedChildFrmMode ()
KMdi::MdiMode | mdiMode ()
KMdiChildView * | activeWindow ()
virtual QPopupMenu * | taskBarPopup (KMdiChildView *pWnd, bool bIncludeWindowPopup=false)
virtual QPopupMenu * | windowPopup (KMdiChildView *pWnd, bool bIncludeTaskbarPopup=true)
virtual void | applyOptions ()
KMdiChildView * | findWindow (const QString &caption)
bool | windowExists (KMdiChildView *pWnd, ExistsAs as)
virtual bool | event (QEvent *e)
virtual void | setSysButtonsAtMenuPosition ()
virtual int | taskBarHeight ()
virtual void | setUndockPositioningOffset (QPoint offset)
KMdiIterator< KMdiChildView * > * | createIterator ()
void | deleteIterator (KMdiIterator< KMdiChildView * > *pIt)
QPopupMenu * | windowMenu () const
virtual void | setBackgroundColor (const QColor &c)
virtual void | setBackgroundPixmap (const QPixmap &pm)
void | setDefaultChildFrmSize (const QSize &sz)
QSize | defaultChildFrmSize ()
virtual void | setMinimumSize (int minw, int minh)
int | childFrameModeHeight ()
virtual void | setMenuForSDIModeSysButtons (KMenuBar *menuBar=0)
void | fakeSDIApplication ()
bool | isFakingSDIApplication () const
virtual bool | eventFilter (QObject *obj, QEvent *e)
void | findRootDockWidgets (QPtrList< KDockWidget > *pRootDockWidgetList, QValueList< QRect > *pPositionList)
void | setSwitching (const bool switching)
bool | switching (void) const

## Static Public Member Functions

static int | frameDecorOfAttachedViews ()

## Protected Slots

virtual void | activateView (KMdiChildView *pWnd)
virtual void | taskbarButtonRightClicked (KMdiChildView *pWnd)
void | switchOffMaximizeModeForMenu (KMdiChildFrm *oldChild)
void | updateSysButtonConnections (KMdiChildFrm *oldChild, KMdiChildFrm *newChild)
void | windowMenuItemActivated (int id)
void | dockMenuItemActivated (int id)
void | popupWindowMenu (QPoint p)
void | dragEndTimeOut ()
void | closeViewButtonPressed ()

## Protected Member Functions

virtual void | resizeEvent (QResizeEvent *)
virtual void | createTaskBar ()
virtual void | createMdiManager ()
void | blockClearingOfWindowMenu (bool bBlocked)
void | findToolViewsDockedToMain (QPtrList< KDockWidget > *list, KDockWidget::DockPosition dprtmw)
void | dockToolViewsIntoContainers (QPtrList< KDockWidget > &widgetsToReparent, KDockWidget *container)
QStringList | prepareIdealToTabs (KDockWidget *container)
void | idealToolViewsToStandardTabs (QStringList widgetNames, KDockWidget::DockPosition pos, int sizee)
KMdi::TabWidgetVisibility | tabWidgetVisibility ()
void | setTabWidgetVisibility (KMdi::TabWidgetVisibility)
class KTabWidget * | tabWidget () const

## Protected Attributes

KMdi::MdiMode | m_mdiMode
KMdiChildArea * | m_pMdi
KMdiTaskBar * | m_pTaskBar
QPtrList< KMdiChildView > * | m_pDocumentViews
QMap< QWidget *, KMdiToolViewAccessor * > * | m_pToolViews
KMdiChildView * | m_pCurrentWindow
QPopupMenu * | m_pWindowPopup
QPopupMenu * | m_pTaskBarPopup
QPopupMenu * | m_pWindowMenu
QPopupMenu * | m_pDockMenu
QPopupMenu * | m_pMdiModeMenu
QPopupMenu * | m_pPlacingMenu
KMenuBar * | m_pMainMenuBar
QPixmap * | m_pUndockButtonPixmap
QPixmap * | m_pMinButtonPixmap
QPixmap * | m_pRestoreButtonPixmap
QPixmap * | m_pCloseButtonPixmap
QToolButton * | m_pUndock
QToolButton * | m_pMinimize
QToolButton * | m_pRestore
QToolButton * | m_pClose
QPoint | m_undockPositioningOffset
bool | m_bMaximizedChildFrmMode
int | m_oldMainFrmHeight
int | m_oldMainFrmMinHeight
int | m_oldMainFrmMaxHeight
bool | m_bSDIApplication
KDockWidget * | m_pDockbaseAreaOfDocumentViews
QDomDocument * | m_pTempDockSession
bool | m_bClearingOfWindowMenuBlocked
QTimer * | m_pDragEndTimer
bool | m_bSwitching
KDockWidget * | m_leftContainer
KDockWidget * | m_rightContainer
KDockWidget * | m_topContainer
KDockWidget * | m_bottomContainer

## Static Protected Attributes

static KMdi::FrameDecor | m_frameDecoration = KMdi::KDELook

## Friends

class | KMdiChildView
class | KMdiTaskBar
class | KMdiToolViewAccessor

## Detailed Description

Base class for all your special main frames.

It contains the child frame area (QMainWindow's central widget) and a child view taskbar for switching the MDI views. Most methods are virtual functions for later overriding.

Basically, this class provides functionality for docking/undocking view windows and manages the taskbar. Usually a developer will only need to know about this class and KMdiChildView.

General usage

Your program mainwidget should inherit KMdiMainFrm. Then usually you'll just need addWindow() and removeWindowFromMdi() to control the views.

class MyMainWindow : public KMdiMainFrm
{ .... };

to define your main window class and

MyMainWindow mainframe;
qApp->setMainWidget(&mainframe);
mainframe->addWindow(view1); // put it under MDI control
mainframe->addWindow(view2);

when you wish to use your main window class. The above example also adds a few windows to the frame.

KMdiMainFrm will provide the "Window" menu needed in common MDI applications. Just insert it in your main menu:

if ( !isFakingSDIApplication() )
{
menuBar()->insertItem( i18n( "&Window" ), windowMenu() );
}

To synchronize the positions of the MDI control buttons inserted in your mainmenu:

void B_MainModuleWidget::initMenuBar()
{
setMenuForSDIModeSysButtons( menuBar() );
}
...
void B_MainModuleWidget::resizeEvent ( QResizeEvent *e )
{
KMdiMainFrm::resizeEvent( e );
setSysButtonsAtMenuPosition();
}

Dynamic mode switching

Dynamic switching of the MDI mode can be done via the following functions:

- switchToChildframeMode()
- switchToToplevelMode()
- switchToTabPageMode()
- switchToIDEAlMode()

The MDI mode can be gotten using mdiMode(). If you need to fake the look of an SDI application use fakeSDIApplication() to fake it and isFakingSDIApplication() to query whether or not an SDI interface is being faked.

You can dynamically change the shape of the attached MDI views using setFrameDecorOfAttachedViews().

Additionally, here's a hint how to restore the mainframe's settings from config file:

// restore MDI mode (toplevel, childframe, tabpage)
int mdiMode = config->readIntEntry( "mainmodule session", "MDI mode", KMdi::ChildframeMode);
switch (mdiMode) {
case KMdi::ToplevelMode:
{
int childFrmModeHt = config->readIntEntry( "mainmodule session", "Childframe mode height", desktop()->height() - 50);
mainframe->resize( m_pMdiMainFrm->width(), childFrmModeHt);
mainframe->switchToToplevelMode();
}
break;
case KMdi::ChildframeMode:
break;
case KMdi::TabPageMode:
{
int childFrmModeHt = m_pCfgFileManager->readIntEntry( "mainmodule session", "Childframe mode height", desktop()->height() - 50);
mainframe->resize( m_pMdiMainFrm->width(), childFrmModeHt);
mainframe->switchToTabPageMode();
}
break;
default:
break;
}
// restore a possible maximized Childframe mode
bool maxChildFrmMode = config->readBoolEntry( "mainmodule session", "maximized childframes", true);
mainframe->setEnableMaximizedChildFrmMode(maxChildFrmMode);

The maximized-Childframe mode means that currently all views are maximized in Childframe mode's application desktop.

Managing views

This class provides placing algorithms in Childframe mode. The following is a list of the window placement functions

- tilePragma() - Tile the windows and allow them to overlap
- tileAnodine() - Tile the windows but don't allow them to overlap
- tileVertically() - Tile the windows vertically
- cascadeWindows() - cascade windows
- cascadeMaximized() - cascade windows and maximize their viewing area
- expandVertical() - expand all the windows to use the most amount of vertical space
- expandHorizontal() - expand all the windows to use the most amount of horizontal space

activateView(KMdiChildView*) and activateView(int index) set the appropriate MDI child view as the active one. It will be raised, will get an active MDI frame and will get the focus. Call activeView() to find out what the current MDI view is.

Use detachWindow() and attachWindow() for docking the MDI views to desktop and back.

Connect accels of your program with activatePrevWin(), activateNextWin() and activateView(int index).

Note: KMdiChildViews can be added in 2 meanings: Either as a normal child view (usually containing user document views) or as a tool-view (usually containing status, info or control widgets). The tool-views can be added as floating dockwidgets or as stay-on-top desktop windows in tool style.

Also, pay attention to the fact that when you click on the close button of MDI views that their close event should be redirected to closeWindow(). Otherwise the mainframe class will not get noticed about the deleted view and a dangling pointer will remain in the MDI control. The closeWindow() or the removeWindowFromMdi() method is for that issue. The difference is closeWindow() deletes the view object. So if your application wants to control that by itself, call removeWindowFromMdi() and call delete by yourself. See also KMdiChildView::closeEvent() for that issue.

Here's an example how you can suggest things for the adding of views to the MDI control via flags:

m_mapOfMdiWidgets.insert( pWnd, mh );
unsigned int mdiFlags = KMdi::StandardAdd;
if ( !show )
mdiFlags |= KMdi::Hide;
if ( !attach )
mdiFlags |= KMdi::Detach;
if ( minimize )
mdiFlags |= KMdi::Minimize;
if ( bToolWindow)
mdiFlags |= KMdi::ToolWindow;
if ( m_pMdiMainFrm->isFakingSDIApplication() )
{
if ( attach ) //fake an SDI app
mdiFlags |= KMdi::Maximize;
}
else
{
m_pMdiMainFrm->addWindow( pWnd, QPoint(20, 20), KMdi::AddWindowFlags(mdiFlags));
return;
}
m_pMdiMainFrm->addWindow( pWnd, KMdi::AddWindowFlags(mdiFlags));

Definition at line 239 of file kmdimainfrm.h.

## Member Function Documentation

void KMdiMainFrm::activateFirstWin | ( |  | ) |

virtual slot

Activates the view first viewed concerning to the access time.

Activates the view we accessed the most time ago.

Definition at line 2346 of file kmdimainfrm.cpp.

void KMdiMainFrm::activateLastWin | ( |  | ) |

virtual slot

Activates the view last viewed concerning to the access time.

Activates the previously accessed view before this one was activated.

Definition at line 2379 of file kmdimainfrm.cpp.

void KMdiMainFrm::activateNextWin | ( |  | ) |

virtual slot

Activates the next open view.

Definition at line 2298 of file kmdimainfrm.cpp.

void KMdiMainFrm::activatePrevWin | ( |  | ) |

virtual slot

Activates the previous open view.

Definition at line 2322 of file kmdimainfrm.cpp.

void KMdiMainFrm::activateView | ( | int | index | ) |

virtual slot

Activates the view with the tab page index (TabPage mode only)

Activates the view with a certain index (TabPage mode only)

Definition at line 2408 of file kmdimainfrm.cpp.

void KMdiMainFrm::activateView | ( | KMdiChildView * | pWnd | ) |

protected virtual slot

Sets the focus to this MDI view, raises it, activates its taskbar button and updates the system buttons in the main menubar when in maximized (Maximize mode).

Definition at line 1056 of file kmdimainfrm.cpp.

KMdiChildView * KMdiMainFrm::activeWindow | ( |  | ) |

Returns the focused attached MDI view.

Definition at line 952 of file kmdimainfrm.cpp.

KMdiToolViewAccessor * KMdiMainFrm::addToolWindow | ( | QWidget * | pWnd,
|  | KDockWidget::DockPosition | pos = `KDockWidget::DockNone`,
|  | QWidget * | pTargetWnd = `0L`,
|  | int | percent = `50`,
|  | const QString & | tabToolTip = `0`,
|  | const QString & | tabCaption = `0`
| ) |  |

virtual slot

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.

Definition at line 566 of file kmdimainfrm.cpp.

void KMdiMainFrm::addWindow | ( | KMdiChildView * | pWnd,
|  | int | flags = `KMdi::StandardAdd`
| ) |  |

virtual slot

Adds a KMdiChildView to the MDI system.

The main frame takes control of it.

Parameters

  pWnd | the parent view.

  flags

  the flags for the view such as:
  - whether the view should be attached or detached.
  - whether the view should be shown or hidden
  - whether the view should be maximized, minimized or restored (normalized)
  - whether the view should be added as tool view (stay-on-top and toplevel) or added as document-type view.

Definition at line 439 of file kmdimainfrm.cpp.

void KMdiMainFrm::addWindow | ( | KMdiChildView * | pWnd,
|  | int | flags,
|  | int | index
| ) |  |

slot

Adds a KMdiChildView to the MDI system.

The main frame takes control of it.

Parameters

  pWnd | the parent view.

  flags

  You can specify here whether:
  - the view should be attached or detached.
  - shown or hidden
  - maximized, minimized or restored (normalized)
  - added as tool view (stay-on-top and toplevel) or added as document-type view.

  index | the index of the tab we should insert the new tab after. If index == -1 then the tab will just be appended to the end. Using this parameter in childview mode has no effect.

Since
  3.3

Definition at line 444 of file kmdimainfrm.cpp.

void KMdiMainFrm::addWindow | ( | KMdiChildView * | pWnd,
|  | QPoint | pos,
|  | int | flags = `KMdi::StandardAdd`
| ) |  |

virtual slot

Adds a KMdiChildView to the MDI system.

The main frame takes control of it.

Parameters

  pWnd | the parent view.
  pos | move the child view to the specified position

  flags

  the flags for the view such as:
  - whether the view should be attached or detached.
  - whether the view should be shown or hidden
  - whether the view should be maximized, minimized or restored (normalized)
  - whether the view should be added as tool view (stay-on-top and toplevel) or added as document-type view.

Definition at line 537 of file kmdimainfrm.cpp.

void KMdiMainFrm::addWindow | ( | KMdiChildView * | pWnd,
|  | QRect | rectNormal,
|  | int | flags = `KMdi::StandardAdd`
| ) |  |

virtual slot

Adds a KMdiChildView to the MDI system.

The main frame takes control of it.

Parameters

  pWnd | the parent view.
  rectNormal | Sets the geometry for this child view

  flags

  the flags for the view such as:
  - whether the view should be attached or detached.
  - whether the view should be shown or hidden
  - whether the view should be maximized, minimized or restored (normalized)
  - whether the view should be added as tool view (stay-on-top and toplevel) or added as document-type view.

Definition at line 527 of file kmdimainfrm.cpp.

void KMdiMainFrm::applyOptions | ( |  | ) |

virtual

Called in the constructor (forces a resize of all MDI views)

Definition at line 336 of file kmdimainfrm.cpp.

void KMdiMainFrm::attachWindow | ( | KMdiChildView * | pWnd,
|  | bool | bShow = `true`,
|  | bool | bAutomaticResize = `false`
| ) |  |

virtual slot

Makes a main frame controlled undocked KMdiChildView docked.

Doesn't work on KMdiChildView which aren't added to the MDI system. Use addWindow() for that.

Definition at line 603 of file kmdimainfrm.cpp.

void KMdiMainFrm::blockClearingOfWindowMenu | ( | bool | bBlocked | ) |

inline protected

prevents fillWindowMenu() from m_pWindowMenu->clear().

You have to care for it by yourself. This is useful if you want to add some actions in your overridden fillWindowMenu() method.

Definition at line 764 of file kmdimainfrm.h.

virtual void KMdiMainFrm::cascadeMaximized | ( |  | ) |

inline virtual slot

Cascades the windows resizing them to the maximum available size.

Definition at line 678 of file kmdimainfrm.h.

virtual void KMdiMainFrm::cascadeWindows | ( |  | ) |

inline virtual slot

Cascades the windows without resizing them.

Definition at line 673 of file kmdimainfrm.h.

int KMdiMainFrm::childFrameModeHeight | ( |  | ) |

inline

Returns the Childframe mode height of this.

Makes only sense when in Toplevel mode.

Definition at line 449 of file kmdimainfrm.h.

void KMdiMainFrm::childViewIsDetachedNow | ( | QWidget * |  | ) |

signal

Signals that a child view has been detached (undocked to desktop)

void KMdiMainFrm::childWindowCloseRequest | ( | KMdiChildView * | pWnd | ) |

virtual slot

Someone wants that the MDI view to be closed.

This method sends a KMdiViewCloseEvent to itself to break the function call stack. See also event() .

Definition at line 1113 of file kmdimainfrm.cpp.

void KMdiMainFrm::closeActiveView | ( |  | ) |

virtual slot

Closes the view of the active (topchild) window.

closes the view of the active (topchild) window

Definition at line 1265 of file kmdimainfrm.cpp.

void KMdiMainFrm::closeAllViews | ( |  | ) |

virtual slot

Close all views.

close all views

Definition at line 1235 of file kmdimainfrm.cpp.

void KMdiMainFrm::closeViewButtonPressed | ( |  | ) |

protected slot

internally used to handle click on view close button (TabPage mode, only)

Definition at line 2841 of file kmdimainfrm.cpp.

void KMdiMainFrm::closeWindow | ( | KMdiChildView * | pWnd,
|  | bool | layoutTaskBar = `true`
| ) |  |

virtual slot

Removes a KMdiChildView from the MDI system and from the main frame`s control.

Note: The view will be deleted!

Definition at line 828 of file kmdimainfrm.cpp.

void KMdiMainFrm::collapseOverlapContainers | ( |  | ) |

signal

Signals we need to collapse the overlapped containers.

KMdiIterator<KMdiChildView*>* KMdiMainFrm::createIterator | ( |  | ) |

inline

If you don't want to know about the inner structure of the KMdi system, you can use this iterator to handle with the MDI view list in a more abstract way.

The iterator hides what special data structure is used in KMdi. The caller must delete the iterator once he does not need it anymore.

Definition at line 393 of file kmdimainfrm.h.

void KMdiMainFrm::createMdiManager | ( |  | ) |

protected virtual

Creates the MDI view area and connects some signals and slots with the KMdiMainFrm widget.

Definition at line 361 of file kmdimainfrm.cpp.

void KMdiMainFrm::createTaskBar | ( |  | ) |

protected virtual

Creates a new MDI taskbar (showing the MDI views as taskbar entries) and shows it.

Definition at line 379 of file kmdimainfrm.cpp.

KMdiToolViewAccessor * KMdiMainFrm::createToolWindow | ( |  | ) |

slot

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.

Definition at line 548 of file kmdimainfrm.cpp.

KMdiChildView * KMdiMainFrm::createWrapper | ( | QWidget * | view,
|  | const QString & | name,
|  | const QString & | shortName
| ) |  |

slot

addWindow demands a KMdiChildView.

This method wraps every QWidget in such an object and this way you can put every widget under MDI control.

Definition at line 416 of file kmdimainfrm.cpp.

QSize KMdiMainFrm::defaultChildFrmSize | ( |  | ) |

inline

Returns the default size for a newly added KMdiChildView.

See setDefaultChildFrmSize() .

Definition at line 439 of file kmdimainfrm.h.

void KMdiMainFrm::deleteIterator | ( | KMdiIterator< KMdiChildView * > * | pIt | ) |

inline

Deletes an KMdiIterator created in the KMdi library (needed for the windows dll problem).

Definition at line 408 of file kmdimainfrm.h.

void KMdiMainFrm::detachWindow | ( | KMdiChildView * | pWnd,
|  | bool | bShow = `true`
| ) |  |

virtual slot

Makes a docked KMdiChildView undocked.

The view window still remains under the main frame's MDI control.

Definition at line 662 of file kmdimainfrm.cpp.

void KMdiMainFrm::dockMenuItemActivated | ( | int | id | ) |

protected slot

Usually called when the user clicks an MDI view item in the sub-popup menu "Docking" of the "Window" menu.

Definition at line 2757 of file kmdimainfrm.cpp.

void KMdiMainFrm::dragEndTimeOut | ( |  | ) |

protected slot

The timer for main widget moving has elapsed -> send drag end to all concerned views.

Definition at line 2788 of file kmdimainfrm.cpp.

bool KMdiMainFrm::event | ( | QEvent * | e | ) |

virtual

Catches certain Qt events and processes it here.

Currently, here this catches only the KMdiViewCloseEvent (a KMdi user event) which is sent from itself in childWindowCloseRequest() right after a KMdiChildView::closeEvent() . The reason for this event to itself is simple: It just wants to break the function call stack. It continues the processing with calling closeWindow() . You see, a close() is translated to a closeWindow() . It is necessary that the main frame has to start an MDI view close action because it must remove the MDI view from MDI control, additionally.

This method calls QMainWindow::event , additionally.

Definition at line 1119 of file kmdimainfrm.cpp.

bool KMdiMainFrm::eventFilter | ( | QObject * | obj,
|  | QEvent * | e
| ) |  |

virtual

these are quite some assumptions: The key combination uses exactly one modifier key The WIN button in KDE is the meta button in Qt

Definition at line 1165 of file kmdimainfrm.cpp.

virtual void KMdiMainFrm::expandHorizontal | ( |  | ) |

inline virtual slot

Maximizes only in horizontal direction.

Definition at line 688 of file kmdimainfrm.h.

virtual void KMdiMainFrm::expandVertical | ( |  | ) |

inline virtual slot

Maximizes only in vertical direction.

Definition at line 683 of file kmdimainfrm.h.

void KMdiMainFrm::fakeSDIApplication | ( |  | ) |

An SDI application user interface is faked:

- an opened view is always maximized
- buttons for maximized childframe mode aren't inserted in the main menubar
- taskbar and windowmenu are not created/updated

Definition at line 2833 of file kmdimainfrm.cpp.

void KMdiMainFrm::fillWindowMenu | ( |  | ) |

virtual slot

Update of the window menu contents.

Definition at line 2557 of file kmdimainfrm.cpp.

void KMdiMainFrm::findRootDockWidgets | ( | QPtrList< KDockWidget > * | pRootDockWidgetList,
|  | QValueList< QRect > * | pPositionList
| ) |  |

find the root dockwidgets and store their geometry

Definition at line 1273 of file kmdimainfrm.cpp.

KMdiChildView * KMdiMainFrm::findWindow | ( | const QString & | caption | ) |

Returns the KMdiChildView belonging to the given caption string.

Definition at line 940 of file kmdimainfrm.cpp.

static int KMdiMainFrm::frameDecorOfAttachedViews | ( |  | ) |

inline static

Returns
  the decoration of the window frame of docked (attached) MDI views

Definition at line 461 of file kmdimainfrm.h.

void KMdiMainFrm::hideViewTaskBar | ( |  | ) |

virtual slot

Hides the view taskbar.

This should be connected with your "View" menu.

Definition at line 2550 of file kmdimainfrm.cpp.

void KMdiMainFrm::iconifyAllViews | ( |  | ) |

virtual slot

Iconfiy all views.

iconify all views

Definition at line 1254 of file kmdimainfrm.cpp.

bool KMdiMainFrm::isFakingSDIApplication | ( |  | ) | const

inline

Returns
  if we are faking an SDI application (fakeSDIApplication())

Definition at line 474 of file kmdimainfrm.h.

bool KMdiMainFrm::isInMaximizedChildFrmMode | ( |  | ) |

inline

Returns whether the application's MDI views are in maximized state or not.

Definition at line 313 of file kmdimainfrm.h.

bool KMdiMainFrm::isViewTaskBarOn | ( |  | ) |

slot

Shows the view taskbar.

Returns
  if the view taskbar should be shown if there are MDI views

This should be connected with your "View" menu.

Definition at line 2534 of file kmdimainfrm.cpp.

void KMdiMainFrm::lastChildFrmClosed | ( |  | ) |

signal

Signals the last attached KMdiChildView has been closed.

void KMdiMainFrm::lastChildViewClosed | ( |  | ) |

signal

Signals the last KMdiChildView (that is under MDI control) has been closed.

void KMdiMainFrm::leftTopLevelMode | ( |  | ) |

signal

Signals that the Toplevel mode has been left.

KMdi::MdiMode KMdiMainFrm::mdiMode | ( |  | ) |

inline

Returns the MDI mode.

This can be one of the enumerations KMdi::MdiMode.

Definition at line 318 of file kmdimainfrm.h.

void KMdiMainFrm::mdiModeHasBeenChangedTo | ( | KMdi::MdiMode |  | ) |

signal

Signals the MDI mode has been changed.

void KMdiMainFrm::popupWindowMenu | ( | QPoint | p | ) |

protected slot

Popups the "Window" menu.

See also windowPopup() .

Definition at line 2779 of file kmdimainfrm.cpp.

void KMdiMainFrm::removeWindowFromMdi | ( | KMdiChildView * | pWnd | ) |

virtual slot

Removes a KMdiChildView from the MDI system and from the main frame`s control.

The caller is responsible for deleting the view. If the view is not deleted it will be reparented to 0

Definition at line 728 of file kmdimainfrm.cpp.

virtual void KMdiMainFrm::setBackgroundColor | ( | const QColor & | c | ) |

inline virtual

Sets a background color for the MDI view area widget.

Definition at line 423 of file kmdimainfrm.h.

virtual void KMdiMainFrm::setBackgroundPixmap | ( | const QPixmap & | pm | ) |

inline virtual

Sets a background pixmap for the MDI view area widget.

Definition at line 428 of file kmdimainfrm.h.

void KMdiMainFrm::setDefaultChildFrmSize | ( | const QSize & | sz | ) |

inline

Sets a size that is used as the default size for a newly to the MDI system added KMdiChildView .

By default this size is 600x400. So all non-resized added MDI views appear in that size.

Definition at line 434 of file kmdimainfrm.h.

void KMdiMainFrm::setEnableMaximizedChildFrmMode | ( | bool | bEnable | ) |

virtual slot

If in Childframe mode, we can switch between maximized or restored shown MDI views.

turns the system buttons for maximize mode (SDI mode) on, and connects them with the current child frame

Definition at line 2422 of file kmdimainfrm.cpp.

void KMdiMainFrm::setFrameDecorOfAttachedViews | ( | int | frameDecor | ) |

virtual slot

Sets the decoration of the window frame of docked (attached) MDI views.

Deprecated:
  Will be removed in KDE 4

Definition at line 2801 of file kmdimainfrm.cpp.

void KMdiMainFrm::setIDEAlModeStyle | ( | int | flags | ) |

slot

Sets the appearance of the IDEAl mode.

See KMultiTabBar styles for the first 3 bits.

Deprecated:
  use setToolviewStyle(int flags) instead

Definition at line 1737 of file kmdimainfrm.cpp.

void KMdiMainFrm::setMenuForSDIModeSysButtons | ( | KMenuBar * | pMenuBar = `0` | ) |

virtual

Tells the MDI system a QMenu where it can insert buttons for the system menu, undock, minimize, restore actions.

redirect the signal for insertion of buttons to an own slot that means: If the menubar (where the buttons should be inserted) is given, QextMDI can insert them automatically.

If no such menu is given, KMdi simply overlays the buttons at the upper right-hand side of the main widget.

Otherwise only signals can be emitted to tell the outside that someone must do this job itself.

Definition at line 2188 of file kmdimainfrm.cpp.

void KMdiMainFrm::setMinimumSize | ( | int | minw,
|  | int | minh
| ) |  |

virtual

Do nothing when in Toplevel mode.

Definition at line 407 of file kmdimainfrm.cpp.

void KMdiMainFrm::setStandardMDIMenuEnabled | ( | bool | showModeMenu = `true` | ) |

Control whether or not the standard MDI menu is displayed when a context menu is displayed.

Definition at line 271 of file kmdimainfrm.cpp.

void KMdiMainFrm::setSwitching | ( | const bool | switching | ) |

inline

We're switching something.

Definition at line 480 of file kmdimainfrm.h.

void KMdiMainFrm::setSysButtonsAtMenuPosition | ( |  | ) |

virtual

If there's a main menubar given, it will create the 4 maximize mode buttons there (undock, minimize, restore, close).

Definition at line 2261 of file kmdimainfrm.cpp.

void KMdiMainFrm::setTabWidgetVisibility | ( | KMdi::TabWidgetVisibility | visibility | ) |

protected

Set tabwidget visibility.

Definition at line 2923 of file kmdimainfrm.cpp.

void KMdiMainFrm::setToolviewStyle | ( | int | flags | ) |

slot

Sets the appearance of the toolview tabs.

Parameters

  flags | See KMdi::ToolviewStyle.

Since
  3.3

Definition at line 1769 of file kmdimainfrm.cpp.

virtual void KMdiMainFrm::setUndockPositioningOffset | ( | QPoint | offset | ) |

inline virtual

Sets an offset value that is used on detachWindow() .

The undocked window is visually moved on the desktop by this offset.

Definition at line 384 of file kmdimainfrm.h.

void KMdiMainFrm::showViewTaskBar | ( |  | ) |

virtual slot

Shows the view taskbar.

This should be connected with your "View" menu.

Definition at line 2543 of file kmdimainfrm.cpp.

void KMdiMainFrm::slot_toggleTaskBar | ( |  | ) |

virtual slot

Switches the KMdiTaskBar on and off.

Definition at line 385 of file kmdimainfrm.cpp.

void KMdiMainFrm::switchOffMaximizeModeForMenu | ( | KMdiChildFrm * | oldChild | ) |

protected slot

Turns the system buttons for maximize mode (SDI mode) off, and disconnects them.

turns the system buttons for maximize mode (SDI mode) off, and disconnects them

Definition at line 2476 of file kmdimainfrm.cpp.

void KMdiMainFrm::switchToChildframeMode | ( |  | ) |

virtual slot

Docks all view windows (Windows-like)

docks all view windows (Windows-like)

Definition at line 1455 of file kmdimainfrm.cpp.

void KMdiMainFrm::switchToIDEAlMode | ( |  | ) |

virtual slot

Docks all view windows.

Docks all view windows (Windows-like)

Toolviews use dockcontainers

Definition at line 1822 of file kmdimainfrm.cpp.

void KMdiMainFrm::switchToTabPageMode | ( |  | ) |

virtual slot

Docks all view windows (Windows-like)

Definition at line 1601 of file kmdimainfrm.cpp.

void KMdiMainFrm::switchToToplevelMode | ( |  | ) |

virtual slot

Undocks all view windows (unix-like)

undocks all view windows (unix-like)

Definition at line 1343 of file kmdimainfrm.cpp.

KTabWidget * KMdiMainFrm::tabWidget | ( |  | ) | const

protected

Returns the tabwidget used in IDEAl and Tabbed modes.

Returns 0 in other modes.

Definition at line 2929 of file kmdimainfrm.cpp.

KMdi::TabWidgetVisibility KMdiMainFrm::tabWidgetVisibility | ( |  | ) |

protected

Get tabwidget visibility.

Definition at line 2915 of file kmdimainfrm.cpp.

void KMdiMainFrm::taskbarButtonRightClicked | ( | KMdiChildView * | pWnd | ) |

protected virtual slot

Activates the MDI view (see activateView() ) and popups the taskBar popup menu (see taskBarPopup() ).

Definition at line 1106 of file kmdimainfrm.cpp.

virtual int KMdiMainFrm::taskBarHeight | ( |  | ) |

inline virtual

Returns the height of the taskbar.

Definition at line 378 of file kmdimainfrm.h.

QPopupMenu * KMdiMainFrm::taskBarPopup | ( | KMdiChildView * | pWnd,
|  | bool | bIncludeWindowPopup = `false`
| ) |  |

virtual

Returns a popup menu filled according to the MDI view state.

You can override this method to insert additional entries there. The popup menu is usually popuped when the user clicks with the right mouse button on a taskbar entry. The default entries are: Undock/Dock, Restore/Maximize/Minimize, Close and an empty sub-popup ( windowPopup() ) menu called Operations.

Definition at line 986 of file kmdimainfrm.cpp.

virtual void KMdiMainFrm::tileAnodine | ( |  | ) |

inline virtual slot

Tile Anodine.

Definition at line 698 of file kmdimainfrm.h.

virtual void KMdiMainFrm::tilePragma | ( |  | ) |

inline virtual slot

Tile Pragma.

Definition at line 693 of file kmdimainfrm.h.

virtual void KMdiMainFrm::tileVertically | ( |  | ) |

inline virtual slot

Tile Vertically.

Definition at line 703 of file kmdimainfrm.h.

void KMdiMainFrm::updateSysButtonConnections | ( | KMdiChildFrm * | oldChild,
|  | KMdiChildFrm * | newChild
| ) |  |

protected slot

Reconnects the system buttons form maximize mode (SDI mode) with the new child frame.

reconnects the system buttons form maximize mode (SDI mode) with the new child frame

Definition at line 2499 of file kmdimainfrm.cpp.

bool KMdiMainFrm::windowExists | ( | KMdiChildView * | pWnd,
|  | ExistsAs | as
| ) |  |

Returns whether this MDI child view is under MDI control (using addWindow() ) or not.

Definition at line 958 of file kmdimainfrm.cpp.

QPopupMenu* KMdiMainFrm::windowMenu | ( |  | ) | const

inline

Returns a popup menu that contains the MDI controlled view list.

Additionally, this menu provides some placing actions for these views. Usually, you insert this popup menu in your main menubar as "Window" menu.

Definition at line 418 of file kmdimainfrm.h.

void KMdiMainFrm::windowMenuItemActivated | ( | int | id | ) |

protected slot

Usually called when the user clicks an MDI view item in the "Window" menu.

Definition at line 2731 of file kmdimainfrm.cpp.

QPopupMenu * KMdiMainFrm::windowPopup | ( | KMdiChildView * | pWnd,
|  | bool | bIncludeTaskbarPopup = `true`
| ) |  |

virtual

Returns a popup menu with only a title "Window".

You can fill it with own operations entries on the MDI view. This popup menu is inserted as last menu item in taskBarPopup() .

Definition at line 974 of file kmdimainfrm.cpp.

The documentation for this class was generated from the following files:

- kmdimainfrm.h
- kmdimainfrm.cpp

KDE Home | KDE Accessibility Home | Description of Access Keys