17 #include "WindowManagerPlugin.h"
19 #include "AvailableDesktopArea.h"
21 #include "ScreenAttached.h"
23 #include "ScreensConfiguration.h"
24 #include "ScreenWindow.h"
25 #include "TopLevelWindowModel.h"
27 #include "WindowManagerObjects.h"
28 #include "WindowMargins.h"
29 #include "WorkspaceManager.h"
30 #include "Workspace.h"
31 #include "WorkspaceModel.h"
32 #include "InputMethodManager.h"
35 #include <qtmir/qtmir.h>
39 static const QString notInstantiatable = QStringLiteral(
"Not instantiatable");
41 static QObject *workspace_manager(QQmlEngine *engine, QJSEngine *scriptEngine)
44 Q_UNUSED(scriptEngine)
45 return WorkspaceManager::instance();
47 QObject* screensSingleton(QQmlEngine* engine, QJSEngine* scriptEngine) {
49 Q_UNUSED(scriptEngine);
50 return ConcreteScreens::self();
52 QObject* objectsSingleton(QQmlEngine* engine, QJSEngine* scriptEngine) {
54 Q_UNUSED(scriptEngine);
55 return WindowManagerObjects::instance();
60 QObject *inputMethodManager(QQmlEngine *engine, QJSEngine *scriptEngine)
63 Q_UNUSED(scriptEngine)
64 return InputMethodManager::instance();
67 void WindowManagerPlugin::registerTypes(
const char *uri)
69 qmlRegisterType<AvailableDesktopArea>(uri, 1, 0,
"AvailableDesktopArea");
70 qmlRegisterType<WindowMargins>(uri, 1, 0,
"WindowMargins");
71 qmlRegisterSingletonType<WorkspaceManager>(uri, 1, 0,
"WorkspaceManager", workspace_manager);
72 qmlRegisterSingletonType<ConcreteScreens>(uri, 1, 0,
"Screens", screensSingleton);
73 qmlRegisterUncreatableType<qtmir::ScreenMode>(uri, 1, 0,
"ScreenMode", notInstantiatable);
74 qmlRegisterSingletonType<WindowManagerObjects>(uri, 1, 0,
"WindowManagerObjects", objectsSingleton);
75 qmlRegisterSingletonType<InputMethodManager>(uri, 1, 0,
"InputMethodManager", inputMethodManager);
77 qRegisterMetaType<ConcreteScreen*>(
"ConcreteScreen*");
78 qRegisterMetaType<ProxyScreens*>(
"ProxyScreens*");
79 qRegisterMetaType<Workspace*>(
"Workspace*");
80 qRegisterMetaType<TopLevelWindowModel*>(
"TopLevelWindowModel*");
81 qRegisterMetaType<ScreenConfig*>(
"ScreenConfig*");
82 qRegisterMetaType<WorkspaceModel*>(
"WorkspaceModel*");
84 qRegisterMetaType<Window*>(
"Window*");
85 qRegisterMetaType<QAbstractListModel*>(
"QAbstractListModel*");
87 qmlRegisterType<ScreenWindow>(uri, 1, 0,
"ScreenWindow");
88 qmlRegisterRevision<QWindow,1>(uri, 1, 0);
90 qmlRegisterUncreatableType<WMScreen>(uri, 1, 0,
"WMScreen", notInstantiatable);
93 void WindowManagerPlugin::initializeEngine(QQmlEngine *engine,
const char *uri)
95 QQmlExtensionPlugin::initializeEngine(engine, uri);
98 new ConcreteScreens(qtmir::get_screen_model(),
new ScreensConfiguration());