diff options
Diffstat (limited to 'src/plugins/platforms')
-rw-r--r-- | src/plugins/platforms/winrt/qwinrtwindow.cpp | 27 | ||||
-rw-r--r-- | src/plugins/platforms/winrt/qwinrtwindow.h | 1 |
2 files changed, 28 insertions, 0 deletions
diff --git a/src/plugins/platforms/winrt/qwinrtwindow.cpp b/src/plugins/platforms/winrt/qwinrtwindow.cpp index 35d6b64008..8800db60d3 100644 --- a/src/plugins/platforms/winrt/qwinrtwindow.cpp +++ b/src/plugins/platforms/winrt/qwinrtwindow.cpp @@ -40,6 +40,14 @@ #include <QtGui/QWindow> #include <QtGui/QOpenGLContext> +#include <qfunctions_winrt.h> +#include <windows.ui.viewmanagement.h> +#include <wrl.h> + +using namespace ABI::Windows::UI::ViewManagement; +using namespace Microsoft::WRL; +using namespace Microsoft::WRL::Wrappers; + QT_BEGIN_NAMESPACE QWinRTWindow::QWinRTWindow(QWindow *window) @@ -48,6 +56,7 @@ QWinRTWindow::QWinRTWindow(QWindow *window) { setWindowFlags(window->flags()); setWindowState(window->windowState()); + setWindowTitle(window->title()); handleContentOrientationChange(window->contentOrientation()); setGeometry(window->geometry()); } @@ -94,6 +103,24 @@ void QWinRTWindow::setVisible(bool visible) m_screen->removeWindow(window()); } +void QWinRTWindow::setWindowTitle(const QString &title) +{ + ComPtr<IApplicationViewStatics2> statics; + HRESULT hr; + + hr = RoGetActivationFactory(HString::MakeReference(RuntimeClass_Windows_UI_ViewManagement_ApplicationView).Get(), + IID_PPV_ARGS(&statics)); + RETURN_VOID_IF_FAILED("Could not get ApplicationViewStatics"); + + ComPtr<IApplicationView> view; + hr = statics->GetForCurrentView(&view); + RETURN_VOID_IF_FAILED("Could not access currentView"); + + HStringReference str(reinterpret_cast<LPCWSTR>(title.utf16()), title.length()); + hr = view->put_Title(str.Get()); + RETURN_VOID_IF_FAILED("Unable to set window title"); +} + void QWinRTWindow::raise() { if (!window()->isTopLevel()) diff --git a/src/plugins/platforms/winrt/qwinrtwindow.h b/src/plugins/platforms/winrt/qwinrtwindow.h index 85f3efab5d..7e01efa818 100644 --- a/src/plugins/platforms/winrt/qwinrtwindow.h +++ b/src/plugins/platforms/winrt/qwinrtwindow.h @@ -52,6 +52,7 @@ public: bool isExposed() const; void setGeometry(const QRect &rect); void setVisible(bool visible); + void setWindowTitle(const QString &title); void raise(); void lower(); |