KDE3Support
K3DockWidget Class Reference
#include <k3dockwidget.h>

Detailed Description
Floatable widget that can be dragged around with the mouse and 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 K3DockWidget can only be docked to a K3DockWidget.
If you want to use this kind of widget, your main application window has to be a K3DockMainWindow. That is because it has got several additional dock management features, for instance a K3DockManager that has an overview over all dockwidgets and and a dockmovemanager (internal class) that handles the dock process.
Usually you create an K3DockWidget that covers the actual widget in this way:
... K3DockMainWindow* mainWidget; ... K3DockWidget* dock = 0L; dock = mainWidget->createDockWidget( "Any window caption", nicePixmap, 0L, i18n("window caption")); // 0L==no parent QWidget* actualWidget = new QWidget( dock); dock->setWidget( actualWidget); // embed it dock->setToolTipString(i18n("That's me")); // available when appearing as tab page ...
See K3DockMainWindow how a dockwidget is docked in.
Definition at line 413 of file k3dockwidget.h.
Member Enumeration Documentation
The possible positions where a dockwidget can dock to another dockwidget.
- Enumerator:
-
DockNone DockTop DockLeft DockRight DockBottom DockCenter DockDesktop DockToSpecialSites DockCorner DockFullSite DockFullDocking
Definition at line 449 of file k3dockwidget.h.
Constructor & Destructor Documentation
K3DockWidget::K3DockWidget | ( | K3DockManager * | dockManager, | |
const char * | name, | |||
const QPixmap & | pixmap, | |||
QWidget * | parent = 0L , |
|||
const QString & | strCaption = QString() , |
|||
const QString & | strTabPageLabel = QLatin1String( " " ) , |
|||
Qt::WFlags | f = 0 | |||
) |
Construct 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:
-
dockManager The responsible manager (dock helper) name Object instance name pixmap An icon (for instance shown when docked centered) parent Parent widget strCaption Title of the dockwidget window (shown when toplevel) strTabPageLabel The title of the tab page (shown when in tab page mode), if it is "", only the icon will be shown, if it is 0L, the label is set to strCaption f Qt::WidgetFlags widget flags
Definition at line 531 of file k3dockwidget.cpp.
K3DockWidget::~K3DockWidget | ( | ) | [virtual] |
Member Function Documentation
void K3DockWidget::changeHideShowState | ( | ) | [slot] |
Toggles the visibility state of the dockwidget if it is able to be shown or to be hidden.
Definition at line 1618 of file k3dockwidget.cpp.
K3DockWidget::DockPosition K3DockWidget::currentDockPosition | ( | ) | const |
void K3DockWidget::dockBack | ( | ) | [slot] |
Docks a dockwidget back to the dockwidget that was the neighbor widget before the current dock position.
Definition at line 1676 of file k3dockwidget.cpp.
void K3DockWidget::docking | ( | K3DockWidget * | dw, | |
K3DockWidget::DockPosition | dp | |||
) | [signal] |
Emitted when another dock widget is docking to this.
- Parameters:
-
dw the dockwidget that is docking to this dp the DockPosition where it wants to dock to
K3DockManager * K3DockWidget::dockManager | ( | ) | const |
- Returns:
- The dockmanager that is responsible for this.
Definition at line 1603 of file k3dockwidget.cpp.
int K3DockWidget::dockSite | ( | ) | const |
- Returns:
- There it is either possible or impossible for another dockwidget to dock to this (an OR'ed set of
DockPositions
).
Definition at line 837 of file k3dockwidget.cpp.
int K3DockWidget::enableDocking | ( | ) | const |
- Returns:
- Where it is either possible or impossible for this to dock to another dockwidget (an OR'ed set of DockPositions).
Definition at line 827 of file k3dockwidget.cpp.
Catches and processes some QWidget events that are interesting for dockwidgets.
Reimplemented from QWidget.
Definition at line 948 of file k3dockwidget.cpp.
K3DockWidget * K3DockWidget::findNearestDockWidget | ( | DockPosition | pos | ) |
Lookup the nearest dockwidget docked left/right/top/bottom to this one or return 0.
- Parameters:
-
pos is the position the wanted widget is docked to this one
Definition at line 991 of file k3dockwidget.cpp.
int K3DockWidget::forcedFixedHeight | ( | ) | [slot] |
Definition at line 1331 of file k3dockwidget.cpp.
int K3DockWidget::forcedFixedWidth | ( | ) | [slot] |
Definition at line 1326 of file k3dockwidget.cpp.
K3DockWidgetAbstractHeader * K3DockWidget::getHeader | ( | ) |
QWidget * K3DockWidget::getWidget | ( | ) | const |
Get the embedded widget.
- Returns:
- The pointer to the dockwidget's child widget, 0L if there's no such child.
Definition at line 1565 of file k3dockwidget.cpp.
void K3DockWidget::hasUndocked | ( | ) | [signal] |
Emitted when the widget has undocked.
void K3DockWidget::headerCloseButtonClicked | ( | ) | [signal] |
Emitted when the close button of the panel ( K3DockWidgetHeader) has been clicked.
void K3DockWidget::headerDockbackButtonClicked | ( | ) | [signal] |
Emitted when the dockback button of the panel ( K3DockWidgetHeader) has been clicked.
void K3DockWidget::iMBeingClosed | ( | ) | [signal] |
Emitted when the widget processes a close event.
bool K3DockWidget::isDockBackPossible | ( | ) | const |
- Returns:
- result
true
, if a dockback is possible, otherwisefalse
.
Definition at line 1706 of file k3dockwidget.cpp.
QWidget * K3DockWidget::latestK3DockContainer | ( | ) | [protected] |
Definition at line 784 of file k3dockwidget.cpp.
void K3DockWidget::leaveEvent | ( | QEvent * | e | ) | [protected, virtual, slot] |
void K3DockWidget::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" ;-)
Definition at line 1667 of file k3dockwidget.cpp.
void K3DockWidget::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.
Definition at line 1634 of file k3dockwidget.cpp.
K3DockWidget * K3DockWidget::manualDock | ( | K3DockWidget * | target, | |
DockPosition | dockPos, | |||
int | spliPos = 50 , |
|||
QPoint | pos = QPoint(0,0) , |
|||
bool | check = false , |
|||
int | tabIndex = -1 | |||
) |
This is a key method of this class! Use it to dock dockwidgets to another dockwidget at the right position within its K3DockMainWindow 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:
-
target The dockwidget to dock to dockPos One of the DockPositions this is going to dock to spliPos The split relation (in percent, or percent*100 in high resolution) between both dockwidgets, target and this pos The dock position, mainly of interest for docking to the desktop (as toplevel dockwidget) check Only for internal use; tabIndex The position index of the tab widget (when in tab page mode), -1 (default) means append
- Returns:
- result The group dockwidget that replaces the target dockwidget and will be grandparent of target and
this
.
- Note:
- Since KDE 3.5 the splitter position
spliPos
is always a value between [0..100]. If the value is > 100, it will be treated like the old code and normalized to a value between 0 and 100. Example: If the value was 4000, it will be fixed to 40. In short: The old and the new behavior both work, so it is compatible with older KDE-versions.
Definition at line 1019 of file k3dockwidget.cpp.
bool K3DockWidget::mayBeHide | ( | ) | const |
- Returns:
- If it may be possible to hide this.
There are reasons that it's impossible:
- It is a (tab) group.
- It is already invisible ;-)
- The parent of this is the K3DockMainWindow.
- It isn't able to dock to another widget.
Definition at line 1591 of file k3dockwidget.cpp.
bool K3DockWidget::mayBeShow | ( | ) | const |
- Returns:
- If it may be possible to show this.
There are reasons that it's impossible:
- It is a (tab) group.
- It is already visible ;-)
- The parent of this is the
K3DockMainWindow
.
Definition at line 1597 of file k3dockwidget.cpp.
void K3DockWidget::mouseMoveEvent | ( | QMouseEvent * | mme | ) | [protected, virtual, slot] |
void K3DockWidget::mousePressEvent | ( | QMouseEvent * | mme | ) | [protected, virtual, slot] |
void K3DockWidget::mouseReleaseEvent | ( | QMouseEvent * | ev | ) | [protected, virtual, slot] |
void K3DockWidget::paintEvent | ( | QPaintEvent * | pe | ) | [protected, virtual, slot] |
QWidget * K3DockWidget::parentDockContainer | ( | ) | const |
Definition at line 1299 of file k3dockwidget.cpp.
K3DockTabGroup * K3DockWidget::parentDockTabGroup | ( | ) | const |
- Returns:
- the parent widget of this if it inherits class K3DockTabGroup
Definition at line 1291 of file k3dockwidget.cpp.
const QPixmap & K3DockWidget::pixmap | ( | ) | const |
Returns the dockwidget's associated caption/dock tab pixmap.
Definition at line 597 of file k3dockwidget.cpp.
void K3DockWidget::restoreFromForcedFixedSize | ( | ) | [slot] |
Definition at line 1336 of file k3dockwidget.cpp.
void K3DockWidget::setDockDefaultPos | ( | ) | [signal] |
Signals that the dock default position is set.
void K3DockWidget::setDockSite | ( | int | pos | ) |
Specify where it is either possible or impossible for another dockwidget to dock to this.
- Parameters:
-
pos An OR'ed set of DockPositions
Definition at line 832 of file k3dockwidget.cpp.
Definition at line 937 of file k3dockwidget.cpp.
void K3DockWidget::setDockWindowType | ( | NET::WindowType | windowType | ) |
Sets the type of the dock window.
- Parameters:
-
windowType is type of dock window
Definition at line 929 of file k3dockwidget.cpp.
void K3DockWidget::setEnableDocking | ( | int | pos | ) |
Specify where it is either possible or impossible for this to dock to another dockwidget.
- Parameters:
-
pos An OR'ed set of DockPositions
Definition at line 817 of file k3dockwidget.cpp.
void K3DockWidget::setForcedFixedHeight | ( | int | h | ) | [slot] |
subject to changes.
It doesn't completely work yet without small hacks from within the calling application (Perhaps KDE 3.1.x oder 3.2 height is in pixel. It only affects a widget, which is placed directly into a vertical K3DockSplitter
Definition at line 1317 of file k3dockwidget.cpp.
void K3DockWidget::setForcedFixedWidth | ( | int | w | ) | [slot] |
subject to changes.
It doesn't completely work yet without small hacks from within the calling application (Perhaps KDE 3.1.x oder 3.2 width is in pixel. It only affects a widget, which is placed directly into a horizontal K3DockSplitter
Definition at line 1308 of file k3dockwidget.cpp.
void K3DockWidget::setFormerBrotherDockWidget | ( | K3DockWidget * | dockWidget | ) | [protected] |
Definition at line 1659 of file k3dockwidget.cpp.
void K3DockWidget::setHeader | ( | K3DockWidgetAbstractHeader * | ah | ) |
Sets 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:
-
ah A base class pointer to the dockwidget header
Definition at line 797 of file k3dockwidget.cpp.
void K3DockWidget::setLatestK3DockContainer | ( | QWidget * | container | ) | [protected] |
Definition at line 773 of file k3dockwidget.cpp.
Allows changing the pixmap which is used for the caption or dock tabs.
- Parameters:
-
pixmap is the pixmap to set
Definition at line 581 of file k3dockwidget.cpp.
void K3DockWidget::setTabPageLabel | ( | const QString & | label | ) |
Sets a string that is used for the label of the tab page when in tab page mode.
- Parameters:
-
label The new tab page label.
Definition at line 1714 of file k3dockwidget.cpp.
void K3DockWidget::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:
-
ttStr A string for the tooltip on the tab.
Definition at line 1608 of file k3dockwidget.cpp.
void K3DockWidget::setWidget | ( | QWidget * | w | ) |
Sets the embedded widget.
A QLayout takes care about proper resizing, automatically.
- Parameters:
-
w The pointer to the dockwidget's child widget.
Definition at line 1521 of file k3dockwidget.cpp.
void K3DockWidget::show | ( | void | ) | [virtual] |
Add dockwidget management actions to QWidget::show.
Reimplemented from QWidget.
Definition at line 911 of file k3dockwidget.cpp.
const QString & K3DockWidget::tabPageLabel | ( | ) | const |
- Returns:
- A string that is used for the label of the tab page when in tab page mode.
Definition at line 1719 of file k3dockwidget.cpp.
void K3DockWidget::toDesktop | ( | ) | [slot] |
Docks the widget to the desktop (as a toplevel widget).
Definition at line 1349 of file k3dockwidget.cpp.
const QString & K3DockWidget::toolTipString | ( | ) | const |
- Returns:
- The tooltip string being shown on the appropriate tab page header when in dock-centered mode.
Definition at line 1613 of file k3dockwidget.cpp.
QWidget * K3DockWidget::transientTo | ( | ) |
Returns the widget this dockwidget is set transient to, otherwise 0.
Definition at line 944 of file k3dockwidget.cpp.
void K3DockWidget::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).
Definition at line 1364 of file k3dockwidget.cpp.
void K3DockWidget::updateHeader | ( | ) | [protected] |
Checks some conditions and shows or hides the dockwidget header (drag panel).
The header is hidden if:
- the parent widget is the K3DockMainWindow
- this is a (tab) group dockwidget
- it is not able to dock to another dockwidget
Definition at line 842 of file k3dockwidget.cpp.
void K3DockWidget::virtual_hook | ( | int | id, | |
void * | data | |||
) | [protected, virtual] |
Definition at line 3448 of file k3dockwidget.cpp.
void K3DockWidget::widgetSet | ( | QWidget * | ) | [signal] |
is emitted after the setWidget method has finished
Member Data Documentation
DockPosition K3DockWidget::currentDockPos [protected] |
K3DockWidget* K3DockWidget::formerBrotherDockWidget [protected] |
earlier closest neighbor widget, so it's possible to dock back to it.
Definition at line 783 of file k3dockwidget.h.
DockPosition K3DockWidget::formerDockPos [protected] |
the former dock position when it really was at another position before.
Definition at line 791 of file k3dockwidget.h.
QString K3DockWidget::tabPageTitle [protected] |
a string used as title of the tab page when in tab page mode
Definition at line 799 of file k3dockwidget.h.
QString K3DockWidget::toolTipStr [protected] |
a string used as tooltip for the tab page header when in dock-centered mode.
Definition at line 795 of file k3dockwidget.h.
The documentation for this class was generated from the following files: