33
class LauncherModel : public sigc::trackable
34
class LauncherModel : public unity::debug::Introspectable, public sigc::trackable
36
37
typedef std::shared_ptr<LauncherModel> Ptr;
37
typedef std::list<LauncherIcon*> Base;
38
typedef std::vector<AbstractLauncherIcon::Ptr> Base;
38
39
typedef Base::iterator iterator;
40
typedef Base::const_iterator const_iterator;
39
41
typedef Base::reverse_iterator reverse_iterator;
42
typedef Base::reverse_iterator const_reverse_iterator;
44
void AddIcon(LauncherIcon* icon);
45
void RemoveIcon(LauncherIcon* icon);
47
void AddIcon(AbstractLauncherIcon::Ptr icon);
48
void RemoveIcon(AbstractLauncherIcon::Ptr icon);
50
void OnIconRemove(LauncherIcon* icon);
52
bool IconHasSister(LauncherIcon* icon);
54
void ReorderBefore(LauncherIcon* icon, LauncherIcon* other, bool save);
56
void ReorderSmart(LauncherIcon* icon, LauncherIcon* other, bool save);
53
void OnIconRemove(AbstractLauncherIcon::Ptr icon);
55
bool IconHasSister(AbstractLauncherIcon::Ptr icon) const;
57
void ReorderAfter(AbstractLauncherIcon::Ptr icon, AbstractLauncherIcon::Ptr other);
58
void ReorderBefore(AbstractLauncherIcon::Ptr icon, AbstractLauncherIcon::Ptr other, bool save);
60
void ReorderSmart(AbstractLauncherIcon::Ptr icon, AbstractLauncherIcon::Ptr other, bool save);
62
AbstractLauncherIcon::Ptr Selection() const;
63
int SelectionIndex() const;
64
void SetSelection(int selection);
66
void SelectPrevious();
71
81
reverse_iterator shelf_rbegin();
72
82
reverse_iterator shelf_rend();
74
sigc::signal<void, LauncherIcon*> icon_added;
75
sigc::signal<void, LauncherIcon*> icon_removed;
84
sigc::signal<void, AbstractLauncherIcon::Ptr> icon_added;
85
sigc::signal<void, AbstractLauncherIcon::Ptr> icon_removed;
76
86
sigc::signal<void> order_changed;
77
87
sigc::signal<void> saved;
88
sigc::signal<void, AbstractLauncherIcon::Ptr> selection_changed;
79
// connected to from class Launcher
80
sigc::connection on_icon_added_connection;
81
sigc::connection on_icon_removed_connection;
82
sigc::connection on_order_changed_connection;
90
IntrospectableList const& GetIntrospectableChildren();
92
// Introspectable methods
93
std::string GetName() const;
94
void AddProperties(GVariantBuilder* builder);
101
std::list<unity::debug::Introspectable*> introspection_results_;
91
bool IconShouldShelf(LauncherIcon* icon);
105
bool IconShouldShelf(AbstractLauncherIcon::Ptr icon) const;
93
107
static gboolean RemoveCallback(gpointer data);
95
static bool CompareIcons(LauncherIcon* first, LauncherIcon* second);
109
static bool CompareIcons(AbstractLauncherIcon::Ptr first, AbstractLauncherIcon::Ptr second);
97
111
/* Template Methods */
100
std::list<T*> GetSublist()
114
std::list<AbstractLauncherIcon::Ptr> GetSublist()
102
std::list<T*> result;
116
std::list<AbstractLauncherIcon::Ptr> result;
105
119
for (it = begin(); it != end(); it++)
107
T* var = dynamic_cast<T*>(*it);
121
T* var = dynamic_cast<T*>((*it).GetPointer());
110
result.push_back(var);
124
result.push_back(*it);