dde-dock/plugins/tray/indicatortraywidget.h
shaojun 4abc8ae385
feat: keyboard交互调整 (#717)
keyboard的显示方式和其他托盘颜色格格不入,修改成统一风格;
浅色模式且任务栏高度最小时显示黑色,其他情况显示白色;

Log: keyboard交互调整
Change-Id: I6c56d9cb08872caac7b3614bb0117e5a5427a17d
2022-11-09 18:08:25 +08:00

50 lines
1.3 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// SPDX-FileCopyrightText: 2011 - 2022 UnionTech Software Technology Co., Ltd.
//
// SPDX-License-Identifier: LGPL-3.0-or-later
#pragma once
#include <QScopedPointer>
#include <QLabel>
#include "abstracttraywidget.h"
class QGSettings;
class IndicatorTrayWidget: public AbstractTrayWidget
{
Q_OBJECT
public:
explicit IndicatorTrayWidget(const QString &indicatorName, QWidget *parent = Q_NULLPTR, Qt::WindowFlags f = Qt::WindowFlags());
~IndicatorTrayWidget();
QString itemKeyForConfig() override;
void updateIcon() override;
void sendClick(uint8_t, int, int) override;
void enableLabel(bool enable);
static QString toIndicatorKey(const QString &indicatorName) { return QString("indicator:%1").arg(indicatorName); }
static bool isIndicatorKey(const QString &itemKey) { return itemKey.startsWith("indicator:"); }
protected:
void resizeEvent(QResizeEvent *event) override;
void updateLabelColor();
public Q_SLOTS:
Q_SCRIPTABLE void setPixmapData(const QByteArray &data);
Q_SCRIPTABLE void setText(const QString &text);
private slots:
void onGSettingsChanged(const QString &key);
Q_SIGNALS:
void clicked(uint8_t, int, int);
private:
QLabel *m_label;
QString m_indicatorName;
const QGSettings *m_gsettings;
bool m_enableClick; // 置灰时设置为false不触发click信号
};