22 #include "toolviewaccessor_p.h"
23 #include "guiclient.h"
24 #include "mainwindow.h"
26 #include "toolviewaccessor.h"
27 #include "toolviewaccessor.moc"
29 #include "toolviewaccessor_p.h"
34 ToolViewAccessor::ToolViewAccessor( KMDI::MainWindow *parent, TQWidget *widgetToWrap,
const TQString& tabToolTip,
const TQString& tabCaption)
38 d=
new KMDIPrivate::ToolViewAccessorPrivate();
39 if (widgetToWrap->inherits(
"KDockWidget")) {
40 d->widgetContainer=
dynamic_cast<KDockWidget*
>(widgetToWrap);
41 d->widget=d->widgetContainer->getWidget();
43 d->widget=widgetToWrap;
44 TQString finalTabCaption;
45 if (tabCaption == 0) {
46 finalTabCaption = widgetToWrap->caption();
47 if (finalTabCaption.isEmpty() && !widgetToWrap->icon()) {
48 finalTabCaption = widgetToWrap->name();
52 finalTabCaption = tabCaption;
54 d->widgetContainer= parent->createDockWidget( widgetToWrap->name(),
55 (widgetToWrap->icon()?(*(widgetToWrap->icon())):TQPixmap()),
57 widgetToWrap->caption(),
59 d->widgetContainer->setWidget(widgetToWrap);
61 d->widgetContainer->setToolTipString(tabToolTip);
66 mdiMainFrm->m_guiClient->addToolView(
this);
67 d->widget->installEventFilter(
this);
70 ToolViewAccessor::ToolViewAccessor( KMDI::MainWindow *parent) : TQObject(parent) {
72 d=
new KMDIPrivate::ToolViewAccessorPrivate();
75 ToolViewAccessor::~ToolViewAccessor() {
76 if (mdiMainFrm->m_toolViews)
77 mdiMainFrm->m_toolViews->remove(d->widget);
82 TQWidget *ToolViewAccessor::wrapperWidget() {
83 if (!d->widgetContainer) {
84 d->widgetContainer=mdiMainFrm->createDockWidget(
"ToolViewAccessor::null",TQPixmap());
85 connect(d->widgetContainer,TQ_SIGNAL(widgetSet(TQWidget*)),
this,TQ_SLOT(setWidgetToWrap(TQWidget*)));
87 return d->widgetContainer;
90 TQWidget *ToolViewAccessor::wrappedWidget() {
95 void ToolViewAccessor::setWidgetToWrap(TQWidget *widgetToWrap,
const TQString& tabToolTip,
const TQString& tabCaption)
97 Q_ASSERT(!(d->widget));
98 Q_ASSERT(!widgetToWrap->inherits(
"KDockWidget"));
99 disconnect(d->widgetContainer,TQ_SIGNAL(widgetSet(TQWidget*)),
this,TQ_SLOT(setWidgetToWrap(TQWidget*)));
101 d->widget=widgetToWrap;
102 KDockWidget *tmp=d->widgetContainer;
104 TQString finalTabCaption;
105 if (tabCaption == 0) {
106 finalTabCaption = widgetToWrap->caption();
107 if (finalTabCaption.isEmpty() && !widgetToWrap->icon()) {
108 finalTabCaption = widgetToWrap->name();
112 finalTabCaption = tabCaption;
116 tmp = mdiMainFrm->createDockWidget( widgetToWrap->name(),
117 widgetToWrap->icon()?(*(widgetToWrap->icon())):TQPixmap(),
119 widgetToWrap->caption(),
121 d->widgetContainer= tmp;
123 d->widgetContainer->setToolTipString(tabToolTip);
127 tmp->setCaption(widgetToWrap->caption());
128 tmp->setTabPageLabel(finalTabCaption);
129 tmp->setPixmap(widgetToWrap->icon()?(*(widgetToWrap->icon())):TQPixmap());
130 tmp->setName(widgetToWrap->name());
132 d->widgetContainer->setToolTipString(tabToolTip);
135 tmp->setWidget(widgetToWrap);
136 mdiMainFrm->m_toolViews->insert(widgetToWrap,
this);
137 mdiMainFrm->m_guiClient->addToolView(
this);
139 d->widget->installEventFilter(
this);
143 bool ToolViewAccessor::eventFilter(TQObject *o, TQEvent *e) {
144 if (e->type()==TQEvent::IconChange) {
145 d->widgetContainer->setPixmap(d->widget->icon()?(*d->widget->icon()):TQPixmap());
150 void ToolViewAccessor::placeAndShow(KDockWidget::DockPosition pos, TQWidget* pTargetWnd ,
int percent)
152 place(pos,pTargetWnd,percent);
155 void ToolViewAccessor::place(KDockWidget::DockPosition pos, TQWidget* pTargetWnd ,
int percent)
157 Q_ASSERT(d->widgetContainer);
158 if (!d->widgetContainer)
return;
159 if (pos == KDockWidget::DockNone) {
160 d->widgetContainer->setEnableDocking(KDockWidget::DockNone);
161 d->widgetContainer->reparent(mdiMainFrm, (WFlags)(WType_TopLevel | WType_Dialog), TQPoint(0,0), mdiMainFrm->isVisible());
165 KDockWidget* pCover = d->widgetContainer;
167 KDockWidget* pTargetDock = 0L;
168 if (pTargetWnd->inherits(
"KDockWidget") || pTargetWnd->inherits(
"KDockWidget_Compat::KDockWidget")) {
169 pTargetDock = (KDockWidget*) pTargetWnd;
173 bool DockToOurself =
false;
174 if (mdiMainFrm->getMainDockWidget()) {
175 if (pTargetWnd == mdiMainFrm->getMainDockWidget()->getWidget()) {
176 DockToOurself =
true;
177 pTargetDock = mdiMainFrm->getMainDockWidget();
179 else if (pTargetWnd == mdiMainFrm->getMainDockWidget()) {
180 DockToOurself =
true;
181 pTargetDock = mdiMainFrm->getMainDockWidget();
186 if (!DockToOurself)
if(pTargetWnd != 0L) {
187 pTargetDock = mdiMainFrm->dockManager->findWidgetParentDock( pTargetWnd);
189 if (pTargetWnd->parentWidget()) {
190 pTargetDock = mdiMainFrm->dockManager->findWidgetParentDock( pTargetWnd->parentWidget());
204 pCover->manualDock( pTargetDock, pos, percent);
209 void ToolViewAccessor::hide() {
210 Q_ASSERT(d->widgetContainer);
211 if (!d->widgetContainer)
return;
212 d->widgetContainer->undock();
215 void ToolViewAccessor::show() {
216 Q_ASSERT(d->widgetContainer);
217 if (!d->widgetContainer)
return;
218 d->widgetContainer->makeDockVisible();
A namespace for the KMDI library.