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 qmlRegisterUncreatableType<Screen>(uri, 1, 0,
"Screen", notInstantiatable);
75 qmlRegisterSingletonType<WindowManagerObjects>(uri, 1, 0,
"WindowManagerObjects", objectsSingleton);
76 qmlRegisterSingletonType<InputMethodManager>(uri, 1, 0,
"InputMethodManager", inputMethodManager);
78 qRegisterMetaType<Screen*>(
"Screen*");
79 qRegisterMetaType<ConcreteScreen*>(
"ConcreteScreen*");
80 qRegisterMetaType<ProxyScreens*>(
"ProxyScreens*");
81 qRegisterMetaType<Workspace*>(
"Workspace*");
82 qRegisterMetaType<TopLevelWindowModel*>(
"TopLevelWindowModel*");
83 qRegisterMetaType<ScreenConfig*>(
"ScreenConfig*");
84 qRegisterMetaType<WorkspaceModel*>(
"WorkspaceModel*");
86 qRegisterMetaType<Window*>(
"Window*");
87 qRegisterMetaType<QAbstractListModel*>(
"QAbstractListModel*");
89 qmlRegisterType<ScreenWindow>(uri, 1, 0,
"ScreenWindow");
90 qmlRegisterRevision<QWindow,1>(uri, 1, 0);
92 qmlRegisterUncreatableType<WMScreen>(uri, 1, 0,
"WMScreen", notInstantiatable);
95 void WindowManagerPlugin::initializeEngine(QQmlEngine *engine,
const char *uri)
97 QQmlExtensionPlugin::initializeEngine(engine, uri);
100 new ConcreteScreens(qtmir::get_screen_model(),
new ScreensConfiguration());