LeechCraft
0.6.70-16373-g319c272718
Modular cross-platform feature rich live environment.
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::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
QList
Definition
ianrulesstorage.h:14
fancytrayiconimpl.h
LC::Util::detail
Definition
fancytrayiconfreedesktop.cpp:24
LC::Util
Definition
icoreproxy.h:34
LC::Util::Filter
Container< T > Filter(const Container< T > &c, F f)
Definition
prelude.h:118
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::Filter
Definition
typelist.h:103
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.10.0