Changeset View
Changeset View
Standalone View
Standalone View
scripting/scripting.cpp
Show First 20 Lines • Show All 154 Lines • ▼ Show 20 Line(s) | 154 | { | |||
---|---|---|---|---|---|
155 | return KWin::registerScreenEdge<KWin::AbstractScript*>(context, engine); | 155 | return KWin::registerScreenEdge<KWin::AbstractScript*>(context, engine); | ||
156 | } | 156 | } | ||
157 | 157 | | |||
158 | QScriptValue kwinUnregisterScreenEdge(QScriptContext *context, QScriptEngine *engine) | 158 | QScriptValue kwinUnregisterScreenEdge(QScriptContext *context, QScriptEngine *engine) | ||
159 | { | 159 | { | ||
160 | return KWin::unregisterScreenEdge<KWin::AbstractScript*>(context, engine); | 160 | return KWin::unregisterScreenEdge<KWin::AbstractScript*>(context, engine); | ||
161 | } | 161 | } | ||
162 | 162 | | |||
163 | QScriptValue kwinRegisterTouchScreenEdge(QScriptContext *context, QScriptEngine *engine) | ||||
164 | { | ||||
165 | return KWin::registerTouchScreenEdge<KWin::Script*>(context, engine); | ||||
166 | } | ||||
167 | | ||||
168 | QScriptValue kwinUnregisterTouchScreenEdge(QScriptContext *context, QScriptEngine *engine) | ||||
169 | { | ||||
170 | return KWin::unregisterTouchScreenEdge<KWin::Script*>(context, engine); | ||||
171 | } | ||||
163 | 172 | | |||
164 | QScriptValue kwinRegisterUserActionsMenu(QScriptContext *context, QScriptEngine *engine) | 173 | QScriptValue kwinRegisterUserActionsMenu(QScriptContext *context, QScriptEngine *engine) | ||
165 | { | 174 | { | ||
166 | return KWin::registerUserActionsMenu<KWin::AbstractScript*>(context, engine); | 175 | return KWin::registerUserActionsMenu<KWin::AbstractScript*>(context, engine); | ||
167 | } | 176 | } | ||
168 | 177 | | |||
169 | QScriptValue kwinCallDBus(QScriptContext *context, QScriptEngine *engine) | 178 | QScriptValue kwinCallDBus(QScriptContext *context, QScriptEngine *engine) | ||
170 | { | 179 | { | ||
▲ Show 20 Lines • Show All 109 Lines • ▼ Show 20 Line(s) | 280 | { | |||
280 | QScriptValue dbusCallFunc = engine->newFunction(kwinCallDBus); | 289 | QScriptValue dbusCallFunc = engine->newFunction(kwinCallDBus); | ||
281 | dbusCallFunc.setData(engine->newQObject(this)); | 290 | dbusCallFunc.setData(engine->newQObject(this)); | ||
282 | engine->globalObject().setProperty(QStringLiteral("callDBus"), dbusCallFunc); | 291 | engine->globalObject().setProperty(QStringLiteral("callDBus"), dbusCallFunc); | ||
283 | // add global Shortcut | 292 | // add global Shortcut | ||
284 | registerGlobalShortcutFunction(this, engine, kwinScriptGlobalShortcut); | 293 | registerGlobalShortcutFunction(this, engine, kwinScriptGlobalShortcut); | ||
285 | // add screen edge | 294 | // add screen edge | ||
286 | registerScreenEdgeFunction(this, engine, kwinRegisterScreenEdge); | 295 | registerScreenEdgeFunction(this, engine, kwinRegisterScreenEdge); | ||
287 | unregisterScreenEdgeFunction(this, engine, kwinUnregisterScreenEdge); | 296 | unregisterScreenEdgeFunction(this, engine, kwinUnregisterScreenEdge); | ||
297 | registerTouchScreenEdgeFunction(this, engine, kwinRegisterTouchScreenEdge); | ||||
298 | unregisterTouchScreenEdgeFunction(this, engine, kwinUnregisterTouchScreenEdge); | ||||
288 | 299 | | |||
289 | // add user actions menu register function | 300 | // add user actions menu register function | ||
290 | registerUserActionsMenuFunction(this, engine, kwinRegisterUserActionsMenu); | 301 | registerUserActionsMenuFunction(this, engine, kwinRegisterUserActionsMenu); | ||
291 | // add assertions | 302 | // add assertions | ||
292 | QScriptValue assertTrueFunc = engine->newFunction(kwinAssertTrue); | 303 | QScriptValue assertTrueFunc = engine->newFunction(kwinAssertTrue); | ||
293 | engine->globalObject().setProperty(QStringLiteral("assertTrue"), assertTrueFunc); | 304 | engine->globalObject().setProperty(QStringLiteral("assertTrue"), assertTrueFunc); | ||
294 | engine->globalObject().setProperty(QStringLiteral("assert"), assertTrueFunc); | 305 | engine->globalObject().setProperty(QStringLiteral("assert"), assertTrueFunc); | ||
295 | QScriptValue assertFalseFunc = engine->newFunction(kwinAssertFalse); | 306 | QScriptValue assertFalseFunc = engine->newFunction(kwinAssertFalse); | ||
▲ Show 20 Lines • Show All 220 Lines • ▼ Show 20 Line(s) | 526 | while (iter.hasNext()) { | |||
516 | iter.next(); | 527 | iter.next(); | ||
517 | qCDebug(KWIN_SCRIPTING) << " " << iter.name() << ": " << iter.value().toString(); | 528 | qCDebug(KWIN_SCRIPTING) << " " << iter.name() << ": " << iter.value().toString(); | ||
518 | } | 529 | } | ||
519 | } | 530 | } | ||
520 | emit printError(exception.toString()); | 531 | emit printError(exception.toString()); | ||
521 | stop(); | 532 | stop(); | ||
522 | } | 533 | } | ||
523 | 534 | | |||
535 | bool KWin::Script::registerTouchScreenCallback(int edge, QScriptValue callback) | ||||
536 | { | ||||
537 | if (m_touchScreenEdgeCallbacks.constFind(edge) != m_touchScreenEdgeCallbacks.constEnd()) { | ||||
538 | return false; | ||||
539 | } | ||||
540 | QAction *action = new QAction(this); | ||||
541 | connect(action, &QAction::triggered, this, | ||||
542 | [callback] { | ||||
543 | QScriptValue invoke(callback); | ||||
544 | invoke.call(); | ||||
545 | } | ||||
546 | ); | ||||
547 | ScreenEdges::self()->reserveTouch(KWin::ElectricBorder(edge), action); | ||||
548 | m_touchScreenEdgeCallbacks.insert(edge, action); | ||||
549 | return true; | ||||
550 | } | ||||
551 | | ||||
552 | bool KWin::Script::unregisterTouchScreenCallback(int edge) | ||||
553 | { | ||||
554 | auto it = m_touchScreenEdgeCallbacks.find(edge); | ||||
555 | if (it == m_touchScreenEdgeCallbacks.constEnd()) { | ||||
556 | return false; | ||||
557 | } | ||||
558 | delete it.value(); | ||||
559 | m_touchScreenEdgeCallbacks.erase(it); | ||||
560 | return true; | ||||
561 | } | ||||
562 | | ||||
524 | KWin::ScriptUnloaderAgent::ScriptUnloaderAgent(KWin::Script *script) | 563 | KWin::ScriptUnloaderAgent::ScriptUnloaderAgent(KWin::Script *script) | ||
525 | : QScriptEngineAgent(script->engine()) | 564 | : QScriptEngineAgent(script->engine()) | ||
526 | , m_script(script) | 565 | , m_script(script) | ||
527 | { | 566 | { | ||
528 | script->engine()->setAgent(this); | 567 | script->engine()->setAgent(this); | ||
529 | } | 568 | } | ||
530 | 569 | | |||
531 | void KWin::ScriptUnloaderAgent::scriptUnload(qint64 id) | 570 | void KWin::ScriptUnloaderAgent::scriptUnload(qint64 id) | ||
▲ Show 20 Lines • Show All 308 Lines • Show Last 20 Lines |