LeechCraft
0.6.70-18450-gabe19ee3b0
Modular cross-platform feature rich live environment.
Toggle main menu visibility
Loading...
Searching...
No Matches
fancytrayiconfreedesktop.h
Go to the documentation of this file.
1
/**********************************************************************
2
* LeechCraft - modular cross-platform feature rich internet client.
3
* Copyright (C) 2006-2014 Georg Rudoy
4
*
5
* Distributed under the Boost Software License, Version 1.0.
6
* (See accompanying file LICENSE or copy at https://www.boost.org/LICENSE_1_0.txt)
7
**********************************************************************/
8
9
#pragma once
10
11
#include <QObject>
12
#include <QDBusAbstractAdaptor>
13
#include "
fancytrayiconimpl.h
"
14
15
namespace
LC::Util
16
{
17
class
FancyTrayIconFreedesktop
;
18
}
19
20
namespace
LC::Util::detail
21
{
22
struct
IconFrame
23
{
24
int
Width_
;
25
int
Height_
;
26
QByteArray
Data_
;
27
28
static
IconFrame
FromPixmap
(
const
QPixmap&);
29
};
30
31
struct
DBusTooltip
32
{
33
QString
Title_
;
34
QString
Subtitle_
;
35
};
36
}
37
38
Q_DECLARE_METATYPE
(
LC::Util::detail::IconFrame
)
39
Q_DECLARE_METATYPE
(
QList<LC::Util::detail::IconFrame>
)
40
Q_DECLARE_METATYPE
(
LC::Util::detail::DBusTooltip
)
41
42
namespace
LC::Util::detail
43
{
44
class
SNIAdaptor
:
public
QDBusAbstractAdaptor
45
{
46
Q_OBJECT
47
48
// KDE seems to expect `org.kde.StatusNotifierItem` contrary to the spec
49
Q_CLASSINFO (
"D-Bus Interface"
,
"org.kde.StatusNotifierItem"
)
50
51
Q_PROPERTY (QString
Category
MEMBER Category_ CONSTANT)
52
Q_PROPERTY (quint32
WindowId
MEMBER WindowId_ CONSTANT)
53
54
Q_PROPERTY (QString
Id
READ GetId CONSTANT)
55
Q_PROPERTY (QString
Title
READ GetTitle)
56
Q_PROPERTY (QString
Status
READ GetStatus NOTIFY
NewStatus
)
57
58
Q_PROPERTY (QString
IconName
READ GetIconName)
59
Q_PROPERTY (
QList
<
LC
::
Util
::
detail
::
IconFrame
>
IconPixmap
READ GetIconPixmap NOTIFY
NewIcon
)
60
61
Q_PROPERTY (
LC
::
Util
::
detail
::
DBusTooltip
ToolTip
READ GetTooltip NOTIFY
NewTooltip
)
62
63
FancyTrayIconFreedesktop
& Impl_;
64
65
const QString Category_ = QStringLiteral (
"ApplicationStatus"
);
66
const QString Status_ = QStringLiteral (
"Active"
);
67
const quint32 WindowId_ = 0;
68
public:
69
explicit
SNIAdaptor
(
FancyTrayIconFreedesktop
&);
70
public slots:
71
void
ContextMenu
(
int
x,
int
y);
72
void
Activate
(
int
,
int
);
73
void
SecondaryActivate
(
int
,
int
);
74
void
Scroll
(
int
, const QString&);
75
private:
76
QString GetId () const;
77
QString GetTitle () const;
78
QString GetStatus () const;
79
QString GetIconName () const;
80
QList
<
IconFrame
> GetIconPixmap () const;
81
DBusTooltip
GetTooltip () const;
82
signals:
83
void
NewIcon
();
84
void
NewTooltip
();
85
void
NewStatus
();
86
};
87
}
88
89
namespace
LC
::
Util
90
{
91
class
FancyTrayIconFreedesktop
:
public
FancyTrayIconImpl
92
{
93
friend
class
detail::SNIAdaptor
;
94
95
FancyTrayIcon
& FTI_;
96
97
detail::SNIAdaptor
Adaptor_;
98
public
:
99
explicit
FancyTrayIconFreedesktop
(
FancyTrayIcon
& icon);
100
101
void
UpdateIcon
()
override
;
102
void
UpdateTooltip
()
override
;
103
void
UpdateMenu
()
override
;
104
void
UpdateStatus
()
override
;
105
};
106
}
LC::Util::FancyTrayIconFreedesktop
Definition
fancytrayiconfreedesktop.h:92
LC::Util::FancyTrayIconFreedesktop::UpdateTooltip
void UpdateTooltip() override
Definition
fancytrayiconfreedesktop.cpp:128
LC::Util::FancyTrayIconFreedesktop::UpdateStatus
void UpdateStatus() override
Definition
fancytrayiconfreedesktop.cpp:137
LC::Util::FancyTrayIconFreedesktop::FancyTrayIconFreedesktop
FancyTrayIconFreedesktop(FancyTrayIcon &icon)
Definition
fancytrayiconfreedesktop.cpp:95
LC::Util::FancyTrayIconFreedesktop::UpdateIcon
void UpdateIcon() override
Definition
fancytrayiconfreedesktop.cpp:123
LC::Util::FancyTrayIconFreedesktop::UpdateMenu
void UpdateMenu() override
Definition
fancytrayiconfreedesktop.cpp:133
LC::Util::FancyTrayIcon
Definition
fancytrayicon.h:25
LC::Util::FancyTrayIconImpl
Definition
fancytrayiconimpl.h:17
LC::Util::detail::SNIAdaptor
Definition
fancytrayiconfreedesktop.h:45
LC::Util::detail::SNIAdaptor::IconPixmap
QList< LC::Util::detail::IconFrame > IconPixmap
Definition
fancytrayiconfreedesktop.h:59
LC::Util::detail::SNIAdaptor::Status
QString Status
Definition
fancytrayiconfreedesktop.h:56
LC::Util::detail::SNIAdaptor::ContextMenu
void ContextMenu(int x, int y)
Definition
fancytrayiconfreedesktop.cpp:154
LC::Util::detail::SNIAdaptor::ToolTip
LC::Util::detail::DBusTooltip ToolTip
Definition
fancytrayiconfreedesktop.h:61
LC::Util::detail::SNIAdaptor::Activate
void Activate(int, int)
Definition
fancytrayiconfreedesktop.cpp:160
LC::Util::detail::SNIAdaptor::WindowId
quint32 WindowId
Definition
fancytrayiconfreedesktop.h:52
LC::Util::detail::SNIAdaptor::Category
QString Category
Definition
fancytrayiconfreedesktop.h:51
LC::Util::detail::SNIAdaptor::IconName
QString IconName
Definition
fancytrayiconfreedesktop.h:58
LC::Util::detail::SNIAdaptor::NewTooltip
void NewTooltip()
LC::Util::detail::SNIAdaptor::SecondaryActivate
void SecondaryActivate(int, int)
Definition
fancytrayiconfreedesktop.cpp:165
LC::Util::detail::SNIAdaptor::NewStatus
void NewStatus()
LC::Util::detail::SNIAdaptor::Id
QString Id
Definition
fancytrayiconfreedesktop.h:54
LC::Util::detail::SNIAdaptor::Title
QString Title
Definition
fancytrayiconfreedesktop.h:55
LC::Util::detail::SNIAdaptor::NewIcon
void NewIcon()
LC::Util::detail::SNIAdaptor::Scroll
void Scroll(int, const QString &)
Definition
fancytrayiconfreedesktop.cpp:170
LC::Util::detail::SNIAdaptor::SNIAdaptor
SNIAdaptor(FancyTrayIconFreedesktop &)
Definition
fancytrayiconfreedesktop.cpp:145
QList
Definition
ianrulesstorage.h:14
fancytrayiconimpl.h
LC::Util::detail
Definition
fancytrayiconfreedesktop.cpp:24
LC::Util
Definition
icoreproxy.h:34
LC
Definition
constants.h:15
LC::Util::detail::DBusTooltip
Definition
fancytrayiconfreedesktop.h:32
LC::Util::detail::DBusTooltip::Title_
QString Title_
Definition
fancytrayiconfreedesktop.h:33
LC::Util::detail::DBusTooltip::Subtitle_
QString Subtitle_
Definition
fancytrayiconfreedesktop.h:34
LC::Util::detail::IconFrame
Definition
fancytrayiconfreedesktop.h:23
LC::Util::detail::IconFrame::Width_
int Width_
Definition
fancytrayiconfreedesktop.h:24
LC::Util::detail::IconFrame::Height_
int Height_
Definition
fancytrayiconfreedesktop.h:25
LC::Util::detail::IconFrame::FromPixmap
static IconFrame FromPixmap(const QPixmap &)
Definition
fancytrayiconfreedesktop.cpp:25
LC::Util::detail::IconFrame::Data_
QByteArray Data_
Definition
fancytrayiconfreedesktop.h:26
Q_DECLARE_METATYPE
Q_DECLARE_METATYPE(QVariantList *)
src
util
gui
fancytrayiconfreedesktop.h
Generated by
1.17.0