Changeset View
Changeset View
Standalone View
Standalone View
src/client/plasmawindowmanagement.cpp
Show First 20 Lines • Show All 257 Lines • ▼ Show 20 Line(s) | 246 | public: | |||
---|---|---|---|---|---|
258 | bool keepBelow = false; | 258 | bool keepBelow = false; | ||
259 | bool onAllDesktops = false; | 259 | bool onAllDesktops = false; | ||
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 shadable = false; | ||||
267 | bool shaded = false; | ||||
266 | QIcon icon; | 268 | QIcon icon; | ||
267 | 269 | | |||
268 | private: | 270 | private: | ||
269 | static void titleChangedCallback(void *data, org_kde_plasma_window *window, const char *title); | 271 | static void titleChangedCallback(void *data, org_kde_plasma_window *window, const char *title); | ||
270 | static void appIdChangedCallback(void *data, org_kde_plasma_window *window, const char *app_id); | 272 | static void appIdChangedCallback(void *data, org_kde_plasma_window *window, const char *app_id); | ||
271 | static void stateChangedCallback(void *data, org_kde_plasma_window *window, uint32_t state); | 273 | static void stateChangedCallback(void *data, org_kde_plasma_window *window, uint32_t state); | ||
272 | static void virtualDesktopChangedCallback(void *data, org_kde_plasma_window *window, int32_t number); | 274 | static void virtualDesktopChangedCallback(void *data, org_kde_plasma_window *window, int32_t number); | ||
273 | static void themedIconNameChangedCallback(void *data, org_kde_plasma_window *window, const char *name); | 275 | static void themedIconNameChangedCallback(void *data, org_kde_plasma_window *window, const char *name); | ||
274 | static void unmappedCallback(void *data, org_kde_plasma_window *window); | 276 | static void unmappedCallback(void *data, org_kde_plasma_window *window); | ||
275 | void setActive(bool set); | 277 | void setActive(bool set); | ||
276 | void setMinimized(bool set); | 278 | void setMinimized(bool set); | ||
277 | void setMaximized(bool set); | 279 | void setMaximized(bool set); | ||
278 | void setFullscreen(bool set); | 280 | void setFullscreen(bool set); | ||
279 | void setKeepAbove(bool set); | 281 | void setKeepAbove(bool set); | ||
280 | void setKeepBelow(bool set); | 282 | void setKeepBelow(bool set); | ||
281 | void setOnAllDesktops(bool set); | 283 | void setOnAllDesktops(bool set); | ||
282 | void setDemandsAttention(bool set); | 284 | void setDemandsAttention(bool set); | ||
283 | void setCloseable(bool set); | 285 | void setCloseable(bool set); | ||
284 | void setMinimizeable(bool set); | 286 | void setMinimizeable(bool set); | ||
285 | void setMaximizeable(bool set); | 287 | void setMaximizeable(bool set); | ||
286 | void setFullscreenable(bool set); | 288 | void setFullscreenable(bool set); | ||
287 | void setSkipTaskbar(bool skip); | 289 | void setSkipTaskbar(bool skip); | ||
290 | void setShadable(bool set); | ||||
291 | void setShaded(bool set); | ||||
288 | 292 | | |||
289 | static Private *cast(void *data) { | 293 | static Private *cast(void *data) { | ||
290 | return reinterpret_cast<Private*>(data); | 294 | return reinterpret_cast<Private*>(data); | ||
291 | } | 295 | } | ||
292 | 296 | | |||
293 | PlasmaWindow *q; | 297 | PlasmaWindow *q; | ||
294 | 298 | | |||
295 | static struct org_kde_plasma_window_listener s_listener; | 299 | static struct org_kde_plasma_window_listener s_listener; | ||
▲ Show 20 Lines • Show All 63 Lines • ▼ Show 20 Line(s) | 355 | { | |||
359 | p->setKeepBelow(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_KEEP_BELOW); | 363 | p->setKeepBelow(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_KEEP_BELOW); | ||
360 | p->setOnAllDesktops(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_ON_ALL_DESKTOPS); | 364 | p->setOnAllDesktops(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_ON_ALL_DESKTOPS); | ||
361 | p->setDemandsAttention(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_DEMANDS_ATTENTION); | 365 | p->setDemandsAttention(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_DEMANDS_ATTENTION); | ||
362 | p->setCloseable(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_CLOSEABLE); | 366 | p->setCloseable(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_CLOSEABLE); | ||
363 | p->setFullscreenable(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_FULLSCREENABLE); | 367 | p->setFullscreenable(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_FULLSCREENABLE); | ||
364 | p->setMaximizeable(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_MAXIMIZABLE); | 368 | p->setMaximizeable(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_MAXIMIZABLE); | ||
365 | p->setMinimizeable(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_MINIMIZABLE); | 369 | p->setMinimizeable(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_MINIMIZABLE); | ||
366 | p->setSkipTaskbar(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_SKIPTASKBAR); | 370 | p->setSkipTaskbar(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_SKIPTASKBAR); | ||
371 | p->setShadable(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_SHADABLE); | ||||
372 | p->setShaded(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_SHADED); | ||||
367 | } | 373 | } | ||
368 | 374 | | |||
369 | void PlasmaWindow::Private::themedIconNameChangedCallback(void *data, org_kde_plasma_window *window, const char *name) | 375 | void PlasmaWindow::Private::themedIconNameChangedCallback(void *data, org_kde_plasma_window *window, const char *name) | ||
370 | { | 376 | { | ||
371 | auto p = cast(data); | 377 | auto p = cast(data); | ||
372 | Q_UNUSED(window); | 378 | Q_UNUSED(window); | ||
373 | QIcon icon = QIcon::fromTheme(QString::fromUtf8(name)); | 379 | QIcon icon = QIcon::fromTheme(QString::fromUtf8(name)); | ||
374 | p->icon = icon; | 380 | p->icon = icon; | ||
▲ Show 20 Lines • Show All 112 Lines • ▼ Show 20 Line(s) | |||||
487 | { | 493 | { | ||
488 | if (skipTaskbar == skip) { | 494 | if (skipTaskbar == skip) { | ||
489 | return; | 495 | return; | ||
490 | } | 496 | } | ||
491 | skipTaskbar = skip; | 497 | skipTaskbar = skip; | ||
492 | emit q->skipTaskbarChanged(); | 498 | emit q->skipTaskbarChanged(); | ||
493 | } | 499 | } | ||
494 | 500 | | |||
501 | void PlasmaWindow::Private::setShadable(bool set) | ||||
502 | { | ||||
503 | if (shadable == set) { | ||||
504 | return; | ||||
505 | } | ||||
506 | shadable = set; | ||||
507 | emit q->shadableChanged(); | ||||
508 | } | ||||
509 | | ||||
510 | void PlasmaWindow::Private::setShaded(bool set) | ||||
511 | { | ||||
512 | if (shaded == set) { | ||||
513 | return; | ||||
514 | } | ||||
515 | shaded = set; | ||||
516 | emit q->shadedChanged(); | ||||
517 | } | ||||
518 | | ||||
495 | PlasmaWindow::Private::Private(org_kde_plasma_window *w, quint32 internalId, PlasmaWindow *q) | 519 | PlasmaWindow::Private::Private(org_kde_plasma_window *w, quint32 internalId, PlasmaWindow *q) | ||
496 | : internalId(internalId) | 520 | : internalId(internalId) | ||
497 | , q(q) | 521 | , q(q) | ||
498 | { | 522 | { | ||
499 | window.setup(w); | 523 | window.setup(w); | ||
500 | org_kde_plasma_window_add_listener(w, &s_listener, this); | 524 | org_kde_plasma_window_add_listener(w, &s_listener, this); | ||
501 | } | 525 | } | ||
502 | 526 | | |||
▲ Show 20 Lines • Show All 114 Lines • ▼ Show 20 Line(s) | |||||
617 | } | 641 | } | ||
618 | 642 | | |||
619 | 643 | | |||
620 | QIcon PlasmaWindow::icon() const | 644 | QIcon PlasmaWindow::icon() const | ||
621 | { | 645 | { | ||
622 | return d->icon; | 646 | return d->icon; | ||
623 | } | 647 | } | ||
624 | 648 | | |||
649 | bool PlasmaWindow::isShadable() const | ||||
650 | { | ||||
651 | return d->shadable; | ||||
652 | } | ||||
653 | | ||||
654 | bool PlasmaWindow::isShaded() const | ||||
655 | { | ||||
656 | return d->shaded; | ||||
657 | } | ||||
658 | | ||||
625 | void PlasmaWindow::requestActivate() | 659 | void PlasmaWindow::requestActivate() | ||
626 | { | 660 | { | ||
627 | org_kde_plasma_window_set_state(d->window, | 661 | org_kde_plasma_window_set_state(d->window, | ||
628 | ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_ACTIVE, | 662 | ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_ACTIVE, | ||
629 | ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_ACTIVE); | 663 | ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_ACTIVE); | ||
630 | } | 664 | } | ||
631 | 665 | | |||
632 | void PlasmaWindow::requestClose() | 666 | void PlasmaWindow::requestClose() | ||
Show All 37 Lines | 703 | { | |||
670 | org_kde_plasma_window_set_minimized_geometry(d->window, *panel, geom.x(), geom.y(), geom.width(), geom.height()); | 704 | org_kde_plasma_window_set_minimized_geometry(d->window, *panel, geom.x(), geom.y(), geom.width(), geom.height()); | ||
671 | } | 705 | } | ||
672 | 706 | | |||
673 | void PlasmaWindow::unsetMinimizedGeometry(Surface *panel) | 707 | void PlasmaWindow::unsetMinimizedGeometry(Surface *panel) | ||
674 | { | 708 | { | ||
675 | org_kde_plasma_window_unset_minimized_geometry(d->window, *panel); | 709 | org_kde_plasma_window_unset_minimized_geometry(d->window, *panel); | ||
676 | } | 710 | } | ||
677 | 711 | | |||
712 | void PlasmaWindow::requestToggleShaded() | ||||
713 | { | ||||
714 | if (d->shaded) { | ||||
715 | org_kde_plasma_window_set_state(d->window, | ||||
716 | ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_SHADED, | ||||
717 | 0); | ||||
718 | } else { | ||||
719 | org_kde_plasma_window_set_state(d->window, | ||||
720 | ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_SHADED, | ||||
721 | ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_SHADED); | ||||
722 | } | ||||
723 | } | ||||
724 | | ||||
678 | quint32 PlasmaWindow::internalId() const | 725 | quint32 PlasmaWindow::internalId() const | ||
679 | { | 726 | { | ||
680 | return d->internalId; | 727 | return d->internalId; | ||
681 | } | 728 | } | ||
682 | 729 | | |||
683 | } | 730 | } | ||
684 | } | 731 | } |