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());