LeechCraft
0.6.70-16373-g319c272718
Modular cross-platform feature rich live environment.
fancytrayicon.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 <memory>
12
#include <variant>
13
#include <QObject>
14
#include <QIcon>
15
#include <QPointer>
16
#include "
guiconfig.h
"
17
18
class
QMenu;
19
20
namespace
LC::Util
21
{
22
class
FancyTrayIconImpl;
23
24
class
UTIL_GUI_API
FancyTrayIcon
:
public
QObject
25
{
26
Q_OBJECT
27
public
:
28
struct
IconInfo
29
{
30
QString
Id_
;
31
QString
Title_
;
32
};
33
34
struct
Tooltip
35
{
36
QString
PlainText_
;
37
QString
HTML_
;
38
};
39
40
enum class
Status
41
{
42
Passive,
43
Active,
44
NeedsAttention,
45
};
46
47
using
Icon
= std::variant<QString, QIcon>;
48
private
:
49
std::unique_ptr<FancyTrayIconImpl> Impl_;
50
51
const
IconInfo
Info_;
52
53
bool
Visible_ =
true
;
54
Status
Status_ = Status::Active;
55
Icon
Icon_;
56
Tooltip
Tooltip_;
57
QPointer<QMenu> Menu_;
58
public
:
59
explicit
FancyTrayIcon
(
IconInfo
info, QObject *parent =
nullptr
);
60
~
FancyTrayIcon
()
override
;
61
62
const
IconInfo
& GetInfo ()
const
;
63
64
void
SetVisible (
bool
visible);
65
66
void
SetStatus (
Status
status);
67
Status
GetStatus ()
const
;
68
69
void
SetIcon (
const
Icon
& icon);
70
const
Icon
& GetIcon ()
const
;
71
72
void
SetToolTip (
Tooltip
tooltip);
73
const
Tooltip
& GetTooltip ()
const
;
74
75
void
SetContextMenu (QMenu *menu);
76
QMenu* GetContextMenu ()
const
;
77
private
:
78
void
ReinitImpl ();
79
signals:
80
void
activated ();
81
void
secondaryActivated ();
82
void
scrolled (
int
, Qt::Orientation);
83
};
84
}
LC::Util::FancyTrayIcon::Status
Status
Definition:
fancytrayicon.h:40
LC::Util::FancyTrayIcon::IconInfo::Id_
QString Id_
Definition:
fancytrayicon.h:30
UTIL_GUI_API
#define UTIL_GUI_API
Definition:
guiconfig.h:16
LC::Util::FancyTrayIcon::IconInfo::Title_
QString Title_
Definition:
fancytrayicon.h:31
LC::Util::FancyTrayIcon::IconInfo
Definition:
fancytrayicon.h:28
guiconfig.h
LC::Util::FancyTrayIcon
Definition:
fancytrayicon.h:24
LC::Util::FancyTrayIcon::Tooltip
Definition:
fancytrayicon.h:34
LC::Util::FancyTrayIcon::Tooltip::PlainText_
QString PlainText_
Definition:
fancytrayicon.h:36
LC::Util
Definition:
icoreproxy.h:33
LC::Util::FancyTrayIcon::Tooltip::HTML_
QString HTML_
Definition:
fancytrayicon.h:37
LC::Util::FancyTrayIcon::Icon
std::variant< QString, QIcon > Icon
Definition:
fancytrayicon.h:47
src
util
gui
fancytrayicon.h
Generated by
1.8.14