5353#include < QRubberBand>
5454#include < QPlainTextEdit>
5555#include < QTableWidget>
56+ #include < QScreen>
57+ #include < QStyle>
5658#include < QMessageBox>
5759
60+ #ifdef Q_OS_WIN
61+ #include < QAxWidget>
62+ #endif
63+
5864#include < QMap>
5965#include < QElapsedTimer>
6066
@@ -202,6 +208,20 @@ static ads::CDockWidget* createTableWidget(QMenu* ViewMenu)
202208}
203209
204210
211+ #ifdef Q_OS_WIN
212+ // ============================================================================
213+ static ads::CDockWidget* createActiveXWidget (QMenu* ViewMenu, QWidget* parent = nullptr )
214+ {
215+ static int ActiveXCount = 0 ;
216+ QAxWidget* w = new QAxWidget (" {6bf52a52-394a-11d3-b153-00c04f79faa6}" , parent);
217+ ads::CDockWidget* DockWidget = new ads::CDockWidget (QString (" Active X %1" ).arg (ActiveXCount++));
218+ DockWidget->setWidget (w);
219+ ViewMenu->addAction (DockWidget->toggleViewAction ());
220+ return DockWidget;
221+ }
222+ #endif
223+
224+
205225// ============================================================================
206226/* *
207227 * Private data class pimpl
@@ -281,12 +301,19 @@ void MainWindowPrivate::createContent()
281301 auto RighDockArea = DockManager->addDockWidget (ads::RightDockWidgetArea, createLongTextLabelDockWidget (ViewMenu), TopDockArea);
282302 DockManager->addDockWidget (ads::TopDockWidgetArea, createLongTextLabelDockWidget (ViewMenu), RighDockArea);
283303 auto BottomDockArea = DockManager->addDockWidget (ads::BottomDockWidgetArea, createLongTextLabelDockWidget (ViewMenu), RighDockArea);
284- DockManager->addDockWidget (ads::RightDockWidgetArea , createLongTextLabelDockWidget (ViewMenu), RighDockArea);
304+ DockManager->addDockWidget (ads::CenterDockWidgetArea , createLongTextLabelDockWidget (ViewMenu), RighDockArea);
285305 DockManager->addDockWidget (ads::CenterDockWidgetArea, createLongTextLabelDockWidget (ViewMenu), BottomDockArea);
286306
287307 auto Action = ui.menuView ->addAction (QString (" Set %1 floating" ).arg (DockWidget->windowTitle ()));
288308 DockWidget->connect (Action, SIGNAL (triggered ()), SLOT (setFloating ()));
289309
310+ #ifdef Q_OS_WIN
311+ if (!DockManager->configFlags ().testFlag (ads::CDockManager::OpaqueUndocking))
312+ {
313+ DockManager->addDockWidget (ads::CenterDockWidgetArea, createActiveXWidget (ViewMenu), RighDockArea);
314+ }
315+ #endif
316+
290317 for (auto DockWidget : DockManager->dockWidgetsMap ())
291318 {
292319 _this->connect (DockWidget, SIGNAL (viewToggled (bool )), SLOT (onViewToggled (bool )));
@@ -384,9 +411,9 @@ CMainWindow::CMainWindow(QWidget *parent) :
384411 // not change if the visibility of the close button changes
385412 // CDockManager::setConfigFlag(CDockManager::RetainTabSizeWhenCloseButtonHidden, true);
386413
387- // uncomment the following line if you want to use non opaque undocking and splitter
388- // movements
389- // CDockManager::setConfigFlags(CDockManager::DefaultNonOpaqueConfig);
414+ // comment the following line if you want to use opaque undocking and
415+ // opaque splitter resizing
416+ CDockManager::setConfigFlags (CDockManager::DefaultNonOpaqueConfig);
390417
391418 // Now create the dock manager and its content
392419 d->DockManager = new CDockManager (this );
@@ -399,8 +426,12 @@ CMainWindow::CMainWindow(QWidget *parent) :
399426 d->DockManager , SLOT (openPerspective (const QString&)));
400427
401428 d->createContent ();
402- // Default window geometry
429+ // Default window geometry - center on screen
403430 resize (1280 , 720 );
431+ setGeometry (QStyle::alignedRect (
432+ Qt::LeftToRight, Qt::AlignCenter, frameSize (),
433+ QGuiApplication::primaryScreen ()->availableGeometry ()
434+ ));
404435
405436 // d->restoreState();
406437 d->restorePerspectives ();
0 commit comments