class KDockWidget

Floatable widget that can be dragged around with the mouse und encapsulate the actual widgets (and member of the dockwidget class set). More...

Definition#include <kdockwidget.h>
InheritsQWidget (kdecore)
List of all Methods
Annotated List
Files
Globals
Hierarchy
Index

Public Types

Public Methods

Public Slots

Signals

Protected Methods

Protected Slots

Protected Members


Detailed Description

Floatable widget that can be dragged around with the mouse und encapsulate the actual widgets (and member of the dockwidget class set).

You just grip the double-lined panel, tear it off its parent widget, drag it somewhere and let it loose. Depending on the position where you leave it, the dockwidget becomes a toplevel window on the desktop (floating mode) or docks to a new widget (dock mode). + Note: A KDockWidget can only be docked to a KDockWidget.

If you want to use this kind of widget, your main application window has to be a KDockMainWindow. That is because it has got several additional dock management features, for instance a KDockManager that has an overview over all dockwidgets and and a dockmovemanager (internal class) that handles the dock process.

Usually you create an KDockWidget that covers the actual widget in this way:


 ...
 KDockMainWindow* mainWidget;
 ...
 KDockWidget* dock = 0L;
 dock = mainWidget->createDockWidget( "Any window caption", nicePixmap);
 QWidget actualWidget( dock);
 dock->setWidget( actualWidget);
 ...

See KDockMainWindow how a dockwidget is docked in.

 KDockWidget ( KDockManager* dockManager, const char* name, const QPixmap &pixmap, QWidget* parent = 0L )

Constructs a dockwidget. Initially, docking to another and docking to this is allowed for every DockPosition. It is supposed to be no (tab) group. It will taken under control of its dockmanager.

Parameters:
dockManagerthe responsible manager (dock helper)
nameobject instance name
pixmapan icon (for instance shown when docked centered)
parentparent widget

KDockWidget ()

[virtual]

Destructs a dockwidget.

enum DockPosition {DockNone = 0, DockTop = 0x0001, DockLeft = 0x0002, DockRight = 0x0004, DockBottom = 0x0008, DockCenter = 0x0010, DockDesktop= 0x0020, DockCorner = DockTop | DockLeft | DockRight | DockBottom, DockFullSite = DockCorner | DockCenter, DockFullDocking = DockFullSite | DockDesktop }

The possible positions where a dockwidget can dock to another dockwidget

KDockWidget*  manualDock ( KDockWidget* target, DockPosition dockPos, int spliPos = 50, QPoint pos = QPoint(0,0), bool check = false )

This is a key method of this class! Use it to dock dockwidgets to another dockwidget at the right position within its KDockMainWindow or a toplevel dockwidget. If the target is null, it will become a toplevel dockwidget at position pos; Note: docking to another dockwidget means exactly: A new parent dockwidget will be created, that replaces the target dockwidget and contains another single helper widget (tab widget or panner) which contains both dockwidgets, this and the target dockwidget. So consider parent<->child relationships change completely during such actions.

Parameters:
targetthe dockwidget to dock to
dockPosone of the DockPositions this is going to dock to
spliPosthe split relation (in percent) between both dockwidgets, target and this
posthe dock position, mainly of interest for docking to the desktop (as toplevel dockwidget)
checkonly for internal use;

Returns: result the group dockwidget that replaces the target dockwidget and will be grandparent of target and this

void  setEnableDocking ( int pos )

Specify where it is either possible or impossible for this to dock to another dockwidget.

Parameters:
posan OR'ed set of DockPositions

int  enableDocking ()

Returns: where it is either possible or impossible for this to dock to another dockwidget (an OR'ed set of DockPositions)

void  setDockSite ( int pos )

Specify where it is either possible or impossible for another dockwidget to dock to this.

Parameters:
posan OR'ed set of DockPositions

int  dockSite ()

Returns: where it is either possible or impossible for another dockwidget to dock to this (an OR'ed set of DockPositions)

void  setWidget ( QWidget* w)

Set the embedded widget. A QLayout takes care about proper resizing, automatically.

Parameters:
wthe pointer to the dockwidget's child widget

QWidget*  getWidget ()

Get the embedded widget.

Returns: the pointer to the dockwidget's child widget, 0L if there's no such child

void  setHeader ( KDockWidgetAbstractHeader* ah)

Set the header of this dockwidget. A QLayout takes care about proper resizing, automatically. The header contains the drag panel, the close button and the stay button.

Parameters:
aha base class pointer to the dockwidget header

void  makeDockVisible ()

Normally it simply shows the dockwidget. But additionally, if it is docked to a tab widget (DockCenter), it is set as the active (visible) tab page.

bool  mayBeHide ()

Returns: if it may be possible to hide this. There are reasons that it's impossible: <UL><LI>it is a (tab) group</LI> <LI>it is invisible, already ;-)</LI> <LI>the parent of this is the KDockMainWindow</LI> <LI>it isn't able to dock to another widget</LI></UL>

bool  mayBeShow ()

Returns: if it may be possible to show this There are reasons that it's impossible: <UL><LI>it is a (tab) group</LI> <LI>it is visible, already ;-)</LI> <LI>the parent of this is the KDockMainWindow</LI></UL>

KDockManager*  dockManager ()

Returns: the dockmanager that is responsible for this.

void  setToolTipString (const QString& ttStr)

Stores a string for a tooltip. That tooltip string has only a meaning when this dockwidget is shown as tab page. In this case the tooltip is shown when one holds the mouse cursor on the tab page header. Such tooltip will for instance be useful, if you use only icons there. Note: Setting an empty string switches the tooltip off.

Parameters:
ttStra string for the tooltip on the tab

const QString&  toolTipString ()

Returns: the tooltip string being shown on the appropriate tab page header when in dock-centered mode.

bool  isDockBackPossible ()

@return true, if a dockback is possible, otherwise false.

bool  event ( QEvent * )

[virtual]

Catches and processes some QWidget events that are interesting for dockwidgets.

void  show ()

[virtual]

Add dockwidget management actions to QWidget::show.

void  dockBack ()

[slot]

Docks a dockwidget back to the dockwidget that was the neighbor widget before the current dock position.

void  changeHideShowState ()

[slot]

Toggles the visibility state of the dockwidget if it is able to be shown or to be hidden.

void  undock ()

[slot]

Undocks this. It means it becomes a toplevel widget framed by the system window manager. A small panel at the top of this undocked widget gives the possibility to drag it into another dockwidget by mouse (docking).

KDockTabGroup*  parentTabGroup ()

[protected]

Returns: the parent widget of this if it inherits class KDockTabGroup

void  updateHeader ()

[protected]

Check some conditions and show or hide the dockwidget header (drag panel). The header is hidden if: <LU><LI>the parent widget is the KDockMainWindow</LI> <LI>this is a (tab) group dockwidget</LI> <LI>it is not able to dock to another dockwidgets</LI>

void  docking ( KDockWidget* dw, KDockWidget::DockPosition dp)

[signal]

Emits that another dockwidget is docking to this.

Parameters:
dwthe dockwidget that is docking to this
dpthe DockPosition where it wants to dock to

void  setDockDefaultPos ()

[signal]

Signals that the dock default position is set.

void  headerCloseButtonClicked ()

[signal]

Signals that the close button of the panel (KDockWidgetHeader) has been clicked.

void  headerDockbackButtonClicked ()

[signal]

Signals that the dockback button of the panel (KDockWidgetHeader) has been clicked.

void  iMBeingClosed ()

[signal]

Signals that the widget processes a close event.

void  loseFormerBrotherDockWidget ()

[protected slot]

Does several things here when it has noticed that the former brother widget (closest neighbor) gets lost. The former brother widget is needed for a possible dockback action, to speak with the Beatles: "To get back to where you once belonged" ;-)

KDockWidget* formerBrotherDockWidget

[protected]

earlier closest neighbor widget, so it's possible to dock back to it.

DockPosition currentDockPos

[protected]

the current dock position.

DockPosition formerDockPos

[protected]

the former dock position when it really was at another position before.

QString toolTipStr

[protected]

a string used as tooltip for the tab page header when in dock-centered mode.