You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.8 KiB
65 lines
1.8 KiB
/* |
|
SPDX-FileCopyrightText: 2015 Eike Hein <hein@kde.org> |
|
|
|
SPDX-License-Identifier: GPL-2.0-or-later |
|
*/ |
|
|
|
#pragma once |
|
|
|
#include <Plasma/Theme> |
|
|
|
#include <QQuickItem> |
|
#include <QQuickWindow> |
|
|
|
class DashboardWindow : public QQuickWindow |
|
{ |
|
Q_OBJECT |
|
|
|
Q_PROPERTY(QQuickItem *mainItem READ mainItem WRITE setMainItem NOTIFY mainItemChanged) |
|
Q_PROPERTY(QQuickItem *visualParent READ visualParent WRITE setVisualParent NOTIFY visualParentChanged) |
|
Q_PROPERTY(QQuickItem *keyEventProxy READ keyEventProxy WRITE setKeyEventProxy NOTIFY keyEventProxyChanged) |
|
Q_PROPERTY(QColor backgroundColor READ backgroundColor WRITE setBackgroundColor NOTIFY backgroundColorChanged) |
|
|
|
Q_CLASSINFO("DefaultProperty", "mainItem") |
|
|
|
public: |
|
explicit DashboardWindow(QQuickItem *parent = nullptr); |
|
~DashboardWindow() override; |
|
|
|
QQuickItem *mainItem() const; |
|
void setMainItem(QQuickItem *item); |
|
|
|
QQuickItem *visualParent() const; |
|
void setVisualParent(QQuickItem *item); |
|
|
|
QQuickItem *keyEventProxy() const; |
|
void setKeyEventProxy(QQuickItem *item); |
|
|
|
QColor backgroundColor() const; |
|
void setBackgroundColor(const QColor &color); |
|
|
|
Q_INVOKABLE void toggle(); |
|
|
|
Q_SIGNALS: |
|
void mainItemChanged() const; |
|
void visualParentChanged() const; |
|
void keyEventProxyChanged() const; |
|
void backgroundColorChanged() const; |
|
void keyEscapePressed() const; |
|
|
|
private Q_SLOTS: |
|
void updateTheme(); |
|
void visualParentWindowChanged(QQuickWindow *window); |
|
void visualParentScreenChanged(QScreen *screen); |
|
|
|
protected: |
|
bool event(QEvent *event) override; |
|
void keyPressEvent(QKeyEvent *e) override; |
|
|
|
private: |
|
QQuickItem *m_mainItem; |
|
QPointer<QQuickItem> m_visualParentItem; |
|
QPointer<QQuickWindow> m_visualParentWindow; |
|
QPointer<QQuickItem> m_keyEventProxy; |
|
Plasma::Theme m_theme; |
|
};
|
|
|