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"
31#include "WorkspaceModel.h"
32#include "InputMethodManager.h"
35#include <qtmir/qtmir.h>
39static const QString notInstantiatable = QStringLiteral(
"Not instantiatable");
41static QObject *workspace_manager(QQmlEngine *engine, QJSEngine *scriptEngine)
44 Q_UNUSED(scriptEngine)
45 return WorkspaceManager::instance();
47QObject* screensSingleton(QQmlEngine* engine, QJSEngine* scriptEngine) {
49 Q_UNUSED(scriptEngine);
50 return ConcreteScreens::self();
52QObject* objectsSingleton(QQmlEngine* engine, QJSEngine* scriptEngine) {
54 Q_UNUSED(scriptEngine);
55 return WindowManagerObjects::instance();
60QObject *inputMethodManager(QQmlEngine *engine, QJSEngine *scriptEngine)
63 Q_UNUSED(scriptEngine)
64 return InputMethodManager::instance();
67void 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);
95void WindowManagerPlugin::initializeEngine(QQmlEngine *engine,
const char *uri)
97 QQmlExtensionPlugin::initializeEngine(engine, uri);
100 new ConcreteScreens(qtmir::get_screen_model(),
new ScreensConfiguration());