5
#include <Nux/BaseWindow.h>
6
#include <NuxCore/Math/MathInc.h>
8
#include <sigc++/trackable.h>
9
#include <sigc++/signal.h>
10
#include <sigc++/functors/ptr_fun.h>
11
#include <sigc++/functors/mem_fun.h>
21
LAUNCHER_ICON_TYPE_NONE,
22
LAUNCHER_ICON_TYPE_BEGIN,
23
LAUNCHER_ICON_TYPE_FAVORITE,
24
LAUNCHER_ICON_TYPE_APPLICATION,
25
LAUNCHER_ICON_TYPE_PLACE,
26
LAUNCHER_ICON_TYPE_DEVICE,
27
LAUNCHER_ICON_TYPE_TRASH,
28
LAUNCHER_ICON_TYPE_END,
31
class LauncherIcon: public sigc::trackable
34
LauncherIcon(Launcher* IconManager);
37
void SetTooltipText (const TCHAR* text);
39
nux::NString GetTooltipText ();
45
void RecvMouseEnter ();
47
void RecvMouseLeave ();
53
LauncherIconType Type ();
55
nux::Color BackgroundColor ();
57
nux::BaseTexture * TextureForSize (int size);
59
sigc::signal<void> MouseDown;
60
sigc::signal<void> MouseUp;
61
sigc::signal<void> MouseEnter;
62
sigc::signal<void> MouseLeave;
63
sigc::signal<void> MouseClick;
65
sigc::signal<void, void *> show;
66
sigc::signal<void, void *> hide;
67
sigc::signal<void, void *> remove;
68
sigc::signal<void, void *> needs_redraw;
71
void SetVisible (bool visible);
72
void SetActive (bool active);
73
void SetRunning (bool running);
75
void SetIconType (LauncherIconType type);
76
void SetSortPriority (int priority);
78
virtual nux::BaseTexture * GetTextureForSize (int size) = 0;
80
nux::BaseTexture * TextureFromGtkTheme (const char *name, int size);
82
nux::NString m_TooltipText;
83
//! the window this icon belong too.
84
nux::BaseWindow* m_Window;
85
Launcher* m_IconManager;
87
float _folding_angle; //!< angle of folded icon in radian.
88
float _folding_angle_delta; //!< Difference between start and end.
89
nux::Point2 _point[4]; //!< screen space projection of icon.
90
nux::Point3 _position;
91
nux::Point3 _position_delta;
92
nux::Vector4 _xform_screen_coord [4];
93
nux::Vector4 _xform_icon_screen_coord [4];
96
nux::Tooltip* _tooltip;
99
friend class Launcher;
100
friend class LauncherController;
103
nux::Color ColorForIcon (GdkPixbuf *pixbuf);
105
nux::Color _background_color;
110
LauncherIconType _icon_type;
113
#endif // LAUNCHERICON_H