61
61
typedef nux::ObjectPtr<nux::BaseTexture> BaseTexturePtr;
63
LauncherIcon(Launcher* launcher);
65
65
virtual ~LauncherIcon();
67
Launcher* GetLauncher()
72
67
bool SetTooltipText(std::string& target, std::string const& value);
74
69
void SetShortcut(guint64 shortcut);
78
73
void SetSortPriority(int priority);
80
void RecvMouseEnter();
82
void RecvMouseLeave();
84
void RecvMouseDown(int button);
86
void RecvMouseUp(int button);
88
void RecvMouseClick(int button);
75
void RecvMouseEnter(int monitor);
77
void RecvMouseLeave(int monitor);
79
void RecvMouseDown(int button, int monitor);
81
void RecvMouseUp(int button, int monitor);
83
void RecvMouseClick(int button, int monitor);
90
85
void HideTooltip();
92
bool OpenQuicklist(bool default_to_first_item = false);
94
void SetCenter(nux::Point3 center);
96
nux::Point3 GetCenter();
89
bool OpenQuicklist(bool default_to_first_item = false, int monitor = -1);
91
void SetCenter(nux::Point3 center, int parent_monitor, nux::Geometry parent_geo);
93
nux::Point3 GetCenter(int monitor);
98
95
virtual void Activate(ActionArg arg);
102
99
void SaveCenter();
101
nux::Point3 GetSavedCenter(int monitor);
104
103
int SortPriority();
106
int RelatedWindows();
105
virtual std::vector<Window> Windows () { return std::vector<Window> (); }
108
virtual std::vector<Window> RelatedXids () { return std::vector<Window> (); }
107
virtual std::vector<Window> WindowsForMonitor (int monitor) { return std::vector<Window> (); }
110
109
virtual std::string NameForWindow (Window window) { return std::string(); }
112
const bool HasWindowOnViewport();
111
const bool WindowVisibleOnMonitor(int monitor);
113
const bool WindowVisibleOnViewport();
114
115
virtual bool IsSpacer()
139
bool GetQuirk(Quirk quirk);
140
bool GetQuirk(Quirk quirk) const;
141
142
void SetQuirk(Quirk quirk, bool value);
143
144
struct timespec GetQuirkTime(Quirk quirk);
146
IconType GetIconType();
147
148
virtual nux::Color BackgroundColor();
186
187
void SetIconType(IconType type);
188
std::vector<nux::Vector4> & GetTransform(TransformIndex index);
190
static void SetSkipTooltipDelay(gboolean skip_tooltip_delay);
192
sigc::signal<void, LauncherIcon*> remove;
194
sigc::connection needs_redraw_connection;
195
sigc::connection on_icon_added_connection;
196
sigc::connection on_icon_removed_connection;
197
sigc::connection on_order_changed_connection;
198
sigc::connection on_expo_terminated_connection;
189
virtual std::string DesktopFile() { return std::string(""); }
191
virtual bool IsSticky() const { return false; }
193
virtual bool IsVisible() const { return false; }
195
virtual void AboutToRemove() {}
197
virtual void Stick(bool save = true) {}
199
virtual void UnStick() {}
202
std::vector<nux::Point3> GetCenters();
201
204
std::string GetName() const;
203
206
void AddProperties(GVariantBuilder* builder);
209
212
void ResetQuirkTime(Quirk quirk);
211
void SetRelatedWindows(int windows);
215
216
void SetProgress(float progress);
217
void SetHasWindowOnViewport(bool val);
218
void SetWindowVisibleOnMonitor(bool val, int monitor);
219
220
void Present(float urgency, int length);
227
228
virtual nux::BaseTexture* GetTextureForSize(int size) = 0;
229
virtual void OnCenterStabilized(nux::Point3 center) {}
230
virtual void OnCenterStabilized(std::vector<nux::Point3> center) {}
231
232
virtual const gchar* GetRemoteUri()
277
278
void OnRemoteProgressVisibleChanged(LauncherEntryRemote* remote);
281
nux::Tooltip* _tooltip;
282
QuicklistView* _quicklist;
284
static nux::Tooltip* _current_tooltip;
285
static QuicklistView* _current_quicklist;
280
void EmitNeedsRedraw();
287
284
// This looks like a case for boost::logical::tribool
288
285
static int _current_theme_is_mono;
290
287
DbusmenuClient* _menuclient_dynamic_quicklist;
292
friend class Launcher;
293
friend class LauncherModel;
300
294
} DelayedUpdateArg;
296
nux::ObjectPtr<Tooltip> _tooltip;
297
nux::ObjectPtr<QuicklistView> _quicklist;
302
299
static void ChildRealized(DbusmenuMenuitem* newitem, QuicklistView* quicklist);
303
300
static void RootChanged(DbusmenuClient* client, DbusmenuMenuitem* newroot, QuicklistView* quicklist);
304
301
static gboolean OnPresentTimeout(gpointer data);
305
302
static gboolean OnCenterTimeout(gpointer data);
306
303
static gboolean OnDelayedUpdateTimeout(gpointer data);
307
static gboolean OnTooltipTimeout(gpointer data);
309
305
void ColorForIcon(GdkPixbuf* pixbuf, nux::Color& background, nux::Color& glow);
311
bool _has_visible_window;
312
bool _quicklist_is_initialized;
314
float _present_urgency;
316
guint _center_stabilize_handle;
317
guint _present_time_handle;
318
guint _time_delay_handle;
319
guint _tooltip_delay_handle;
320
int _related_windows;
322
nux::Color _background_color;
323
nux::Color _glow_color;
324
static gboolean _skip_tooltip_delay;
329
nux::Point3 _last_stable;
330
nux::Point3 _saved_center;
308
void LoadQuicklist();
311
float _present_urgency;
313
guint _center_stabilize_handle;
314
guint _present_time_handle;
315
guint _time_delay_handle;
318
nux::Color _background_color;
319
nux::Color _glow_color;
325
std::vector<nux::Point3> _center;
326
std::vector<bool> _has_visible_window;
327
std::vector<nux::Point3> _last_stable;
328
std::vector<nux::Geometry> _parent_geo;
329
std::vector<nux::Point3> _saved_center;
333
331
static GtkIconTheme* _unity_theme;