ocarina/include/gui/sidebar.h

107 lines
3.4 KiB
C

/*
* Copyright 2015 (c) Anna Schumaker.
*/
#ifndef OCARINA_GUI_SIDEBAR_H
#define OCARINA_GUI_SIDEBAR_H
#include <core/playlist.h>
#include <gui/builder.h>
/* 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 */