/* * Copyright 2015 (c) Anna Schumaker. */ #ifndef OCARINA_GUI_SIDEBAR_H #define OCARINA_GUI_SIDEBAR_H #include #include /* Called to initialize the sidebar. */ void gui_sidebar_init(); /* Called to set an iterator to the first playlist. */ gboolean gui_sidebar_iter_first(GtkTreeIter *); /* Called to advance the iterator to the next playlist. */ gboolean gui_sidebar_iter_next(GtkTreeIter *); /* Called to set an iterator to the first child of the parent iterator. */ gboolean gui_sidebar_iter_down(GtkTreeIter *, GtkTreeIter *); /* * Called to find the name of the playlist at the given iterator. * NOTE: This function returns a new string that must be freed with g_free(). */ gchar *gui_sidebar_iter_name(GtkTreeIter *); /* Called to find the type of the playlist at the given iterator. */ enum playlist_type_t gui_sidebar_iter_type(GtkTreeIter *); /* Called to find the playlist at the given iterator. */ struct playlist *gui_sidebar_iter_playlist(GtkTreeIter *); /* Called to add a playlist at the current iterator. */ void gui_sidebar_iter_add(GtkTreeIter *, struct playlist *, const gchar *); /* Called to add a child playlist to the current iterator in sorted order. */ void gui_sidebar_iter_sort_child(GtkTreeIter *, struct playlist *, const gchar *); /* Called to append a child playlist to the current iterator. */ void gui_sidebar_iter_append_child(GtkTreeIter *, struct playlist *, const gchar *); /* Called to update the playlist at the current iterator. */ void gui_sidebar_iter_update_playlist(GtkTreeIter *, struct playlist *); void gui_sidebar_iter_update(GtkTreeIter *); /* Called to select the row at the current iterator. */ void gui_sidebar_iter_select(GtkTreeIter *); /* Called to set the playlist at the given iterator as the default. */ void gui_sidebar_filter_path_select(GtkTreePath *); /* Called to expand or collapse sidebar rows from the user's settings. */ void gui_sidebar_filter_set_expand(GtkTreeIter *); /* Called when a playlist treeview row is expanded or collapsed. */ void gui_sidebar_filter_row_expanded(GtkTreeIter *, bool); /* * Called to find a playlist with the given name and type, * starting from the current iterator position. */ gboolean gui_sidebar_iter_find(GtkTreeIter *, const gchar *, enum playlist_type_t); /* Called to set the a GtkTreeIter to the row at path string */ gboolean gui_sidebar_iter_from_string(const gchar *, GtkTreeIter *); /* Called to get the sidebar widget. */ static inline GtkPaned *gui_sidebar() { return GTK_PANED(gui_builder_widget("sidebar")); } /* Called to get the sidebar treestore. */ static inline GtkTreeStore *gui_sidebar_store() { return GTK_TREE_STORE(gui_builder_object("sidebar_store")); } /* Called to get the sidebar treemodel. */ static inline GtkTreeModel *gui_sidebar_model() { return GTK_TREE_MODEL(gui_builder_object("sidebar_store")); } /* Called to get the sidebar filter model. */ static inline GtkTreeModelFilter *gui_sidebar_filter() { return GTK_TREE_MODEL_FILTER(gui_builder_object("sidebar_filter")); } /* Called to get the sidebar treeview. */ static inline GtkTreeView *gui_sidebar_treeview() { return GTK_TREE_VIEW(gui_builder_widget("sidebar_treeview")); } /* Called to get the random button. */ static inline GtkToggleButton *gui_random_button() { return GTK_TOGGLE_BUTTON(gui_builder_widget("random_button")); } #endif /* OCARINA_GUI_SIDEBAR_H */