Changeset View
Changeset View
Standalone View
Standalone View
src/client/plasmawindowmanagement.cpp
Show First 20 Lines • Show All 259 Lines • ▼ Show 20 Line(s) | 246 | public: | |||
---|---|---|---|---|---|
260 | bool demandsAttention = false; | 260 | bool demandsAttention = false; | ||
261 | bool closeable = false; | 261 | bool closeable = false; | ||
262 | bool minimizeable = false; | 262 | bool minimizeable = false; | ||
263 | bool maximizeable = false; | 263 | bool maximizeable = false; | ||
264 | bool fullscreenable = false; | 264 | bool fullscreenable = false; | ||
265 | bool skipTaskbar = false; | 265 | bool skipTaskbar = false; | ||
266 | bool shadeable = false; | 266 | bool shadeable = false; | ||
267 | bool shaded = false; | 267 | bool shaded = false; | ||
268 | bool movable = false; | ||||
269 | bool resizable = false; | ||||
268 | QIcon icon; | 270 | QIcon icon; | ||
269 | 271 | | |||
270 | private: | 272 | private: | ||
271 | static void titleChangedCallback(void *data, org_kde_plasma_window *window, const char *title); | 273 | static void titleChangedCallback(void *data, org_kde_plasma_window *window, const char *title); | ||
272 | static void appIdChangedCallback(void *data, org_kde_plasma_window *window, const char *app_id); | 274 | static void appIdChangedCallback(void *data, org_kde_plasma_window *window, const char *app_id); | ||
273 | static void stateChangedCallback(void *data, org_kde_plasma_window *window, uint32_t state); | 275 | static void stateChangedCallback(void *data, org_kde_plasma_window *window, uint32_t state); | ||
274 | static void virtualDesktopChangedCallback(void *data, org_kde_plasma_window *window, int32_t number); | 276 | static void virtualDesktopChangedCallback(void *data, org_kde_plasma_window *window, int32_t number); | ||
275 | static void themedIconNameChangedCallback(void *data, org_kde_plasma_window *window, const char *name); | 277 | static void themedIconNameChangedCallback(void *data, org_kde_plasma_window *window, const char *name); | ||
276 | static void unmappedCallback(void *data, org_kde_plasma_window *window); | 278 | static void unmappedCallback(void *data, org_kde_plasma_window *window); | ||
277 | void setActive(bool set); | 279 | void setActive(bool set); | ||
278 | void setMinimized(bool set); | 280 | void setMinimized(bool set); | ||
279 | void setMaximized(bool set); | 281 | void setMaximized(bool set); | ||
280 | void setFullscreen(bool set); | 282 | void setFullscreen(bool set); | ||
281 | void setKeepAbove(bool set); | 283 | void setKeepAbove(bool set); | ||
282 | void setKeepBelow(bool set); | 284 | void setKeepBelow(bool set); | ||
283 | void setOnAllDesktops(bool set); | 285 | void setOnAllDesktops(bool set); | ||
284 | void setDemandsAttention(bool set); | 286 | void setDemandsAttention(bool set); | ||
285 | void setCloseable(bool set); | 287 | void setCloseable(bool set); | ||
286 | void setMinimizeable(bool set); | 288 | void setMinimizeable(bool set); | ||
287 | void setMaximizeable(bool set); | 289 | void setMaximizeable(bool set); | ||
288 | void setFullscreenable(bool set); | 290 | void setFullscreenable(bool set); | ||
289 | void setSkipTaskbar(bool skip); | 291 | void setSkipTaskbar(bool skip); | ||
290 | void setShadeable(bool set); | 292 | void setShadeable(bool set); | ||
291 | void setShaded(bool set); | 293 | void setShaded(bool set); | ||
294 | void setMovable(bool set); | ||||
295 | void setResizable(bool set); | ||||
292 | 296 | | |||
293 | static Private *cast(void *data) { | 297 | static Private *cast(void *data) { | ||
294 | return reinterpret_cast<Private*>(data); | 298 | return reinterpret_cast<Private*>(data); | ||
295 | } | 299 | } | ||
296 | 300 | | |||
297 | PlasmaWindow *q; | 301 | PlasmaWindow *q; | ||
298 | 302 | | |||
299 | static struct org_kde_plasma_window_listener s_listener; | 303 | static struct org_kde_plasma_window_listener s_listener; | ||
▲ Show 20 Lines • Show All 65 Lines • ▼ Show 20 Line(s) | 359 | { | |||
365 | p->setDemandsAttention(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_DEMANDS_ATTENTION); | 369 | p->setDemandsAttention(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_DEMANDS_ATTENTION); | ||
366 | p->setCloseable(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_CLOSEABLE); | 370 | p->setCloseable(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_CLOSEABLE); | ||
367 | p->setFullscreenable(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_FULLSCREENABLE); | 371 | p->setFullscreenable(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_FULLSCREENABLE); | ||
368 | p->setMaximizeable(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_MAXIMIZABLE); | 372 | p->setMaximizeable(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_MAXIMIZABLE); | ||
369 | p->setMinimizeable(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_MINIMIZABLE); | 373 | p->setMinimizeable(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_MINIMIZABLE); | ||
370 | p->setSkipTaskbar(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_SKIPTASKBAR); | 374 | p->setSkipTaskbar(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_SKIPTASKBAR); | ||
371 | p->setShadeable(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_SHADEABLE); | 375 | p->setShadeable(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_SHADEABLE); | ||
372 | p->setShaded(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_SHADED); | 376 | p->setShaded(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_SHADED); | ||
377 | p->setMovable(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_MOVABLE); | ||||
378 | p->setResizable(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_RESIZABLE); | ||||
373 | } | 379 | } | ||
374 | 380 | | |||
375 | void PlasmaWindow::Private::themedIconNameChangedCallback(void *data, org_kde_plasma_window *window, const char *name) | 381 | void PlasmaWindow::Private::themedIconNameChangedCallback(void *data, org_kde_plasma_window *window, const char *name) | ||
376 | { | 382 | { | ||
377 | auto p = cast(data); | 383 | auto p = cast(data); | ||
378 | Q_UNUSED(window); | 384 | Q_UNUSED(window); | ||
379 | QIcon icon = QIcon::fromTheme(QString::fromUtf8(name)); | 385 | QIcon icon = QIcon::fromTheme(QString::fromUtf8(name)); | ||
380 | p->icon = icon; | 386 | p->icon = icon; | ||
▲ Show 20 Lines • Show All 130 Lines • ▼ Show 20 Line(s) | |||||
511 | { | 517 | { | ||
512 | if (shaded == set) { | 518 | if (shaded == set) { | ||
513 | return; | 519 | return; | ||
514 | } | 520 | } | ||
515 | shaded = set; | 521 | shaded = set; | ||
516 | emit q->shadedChanged(); | 522 | emit q->shadedChanged(); | ||
517 | } | 523 | } | ||
518 | 524 | | |||
525 | void PlasmaWindow::Private::setMovable(bool set) | ||||
526 | { | ||||
527 | if (movable == set) { | ||||
528 | return; | ||||
529 | } | ||||
530 | movable = set; | ||||
531 | emit q->movableChanged(); | ||||
532 | } | ||||
533 | | ||||
534 | void PlasmaWindow::Private::setResizable(bool set) | ||||
535 | { | ||||
536 | if (resizable == set) { | ||||
537 | return; | ||||
538 | } | ||||
539 | resizable = set; | ||||
540 | emit q->resizableChanged(); | ||||
541 | } | ||||
542 | | ||||
519 | PlasmaWindow::Private::Private(org_kde_plasma_window *w, quint32 internalId, PlasmaWindow *q) | 543 | PlasmaWindow::Private::Private(org_kde_plasma_window *w, quint32 internalId, PlasmaWindow *q) | ||
520 | : internalId(internalId) | 544 | : internalId(internalId) | ||
521 | , q(q) | 545 | , q(q) | ||
522 | { | 546 | { | ||
523 | window.setup(w); | 547 | window.setup(w); | ||
524 | org_kde_plasma_window_add_listener(w, &s_listener, this); | 548 | org_kde_plasma_window_add_listener(w, &s_listener, this); | ||
525 | } | 549 | } | ||
526 | 550 | | |||
▲ Show 20 Lines • Show All 124 Lines • ▼ Show 20 Line(s) | 674 | { | |||
651 | return d->shadeable; | 675 | return d->shadeable; | ||
652 | } | 676 | } | ||
653 | 677 | | |||
654 | bool PlasmaWindow::isShaded() const | 678 | bool PlasmaWindow::isShaded() const | ||
655 | { | 679 | { | ||
656 | return d->shaded; | 680 | return d->shaded; | ||
657 | } | 681 | } | ||
658 | 682 | | |||
683 | bool PlasmaWindow::isResizable() const | ||||
684 | { | ||||
685 | return d->resizable; | ||||
686 | } | ||||
687 | | ||||
688 | bool PlasmaWindow::isMovable() const | ||||
689 | { | ||||
690 | return d->movable; | ||||
691 | } | ||||
692 | | ||||
659 | void PlasmaWindow::requestActivate() | 693 | void PlasmaWindow::requestActivate() | ||
660 | { | 694 | { | ||
661 | org_kde_plasma_window_set_state(d->window, | 695 | org_kde_plasma_window_set_state(d->window, | ||
662 | ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_ACTIVE, | 696 | ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_ACTIVE, | ||
663 | ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_ACTIVE); | 697 | ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_ACTIVE); | ||
664 | } | 698 | } | ||
665 | 699 | | |||
666 | void PlasmaWindow::requestClose() | 700 | void PlasmaWindow::requestClose() | ||
667 | { | 701 | { | ||
668 | org_kde_plasma_window_close(d->window); | 702 | org_kde_plasma_window_close(d->window); | ||
669 | } | 703 | } | ||
670 | 704 | | |||
705 | void PlasmaWindow::requestMove() | ||||
706 | { | ||||
707 | org_kde_plasma_window_request_move(d->window); | ||||
708 | } | ||||
709 | | ||||
710 | void PlasmaWindow::requestResize() | ||||
711 | { | ||||
712 | org_kde_plasma_window_request_resize(d->window); | ||||
713 | } | ||||
714 | | ||||
671 | void PlasmaWindow::requestVirtualDesktop(quint32 desktop) | 715 | void PlasmaWindow::requestVirtualDesktop(quint32 desktop) | ||
672 | { | 716 | { | ||
673 | org_kde_plasma_window_set_virtual_desktop(d->window, desktop); | 717 | org_kde_plasma_window_set_virtual_desktop(d->window, desktop); | ||
674 | } | 718 | } | ||
675 | 719 | | |||
676 | void PlasmaWindow::requestToggleMinimized() | 720 | void PlasmaWindow::requestToggleMinimized() | ||
677 | { | 721 | { | ||
678 | if (d->minimized) { | 722 | if (d->minimized) { | ||
▲ Show 20 Lines • Show All 53 Lines • Show Last 20 Lines |