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 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);
93void WindowManagerPlugin::initializeEngine(QQmlEngine *engine,
const char *uri)
95 QQmlExtensionPlugin::initializeEngine(engine, uri);
98 new ConcreteScreens(qtmir::get_screen_model(),
new ScreensConfiguration());