2015-12-29 09:11:51 -05:00
|
|
|
/*
|
|
|
|
* Copyright 2015 (c) Anna Schumaker.
|
|
|
|
*/
|
2016-03-29 08:39:00 -04:00
|
|
|
#include <core/settings.h>
|
2015-12-29 09:11:51 -05:00
|
|
|
#include <gui/sidebar.h>
|
|
|
|
|
2016-08-25 10:58:24 -04:00
|
|
|
enum sidebar_columns {
|
|
|
|
SB_IMAGE,
|
|
|
|
SB_NAME,
|
|
|
|
SB_TYPE,
|
|
|
|
};
|
|
|
|
|
2015-12-29 09:11:51 -05:00
|
|
|
const gchar *SIDEBAR_SETTING = "gui.sidebar.pos";
|
2016-01-07 09:37:00 -05:00
|
|
|
|
|
|
|
|
2016-08-21 13:34:05 -04:00
|
|
|
void __gui_sidebar_resized(GtkPaned *pane, GParamSpec *pspec, gpointer data)
|
2015-12-29 09:11:51 -05:00
|
|
|
{
|
2016-03-29 08:39:00 -04:00
|
|
|
settings_set(SIDEBAR_SETTING, gtk_paned_get_position(pane));
|
2015-12-29 09:11:51 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
void gui_sidebar_init()
|
|
|
|
{
|
2016-08-21 13:34:05 -04:00
|
|
|
int pos = settings_get(SIDEBAR_SETTING);
|
2015-12-29 09:11:51 -05:00
|
|
|
if (pos > 0)
|
2016-08-21 13:34:05 -04:00
|
|
|
gtk_paned_set_position(gui_sidebar(), pos);
|
2015-12-29 09:11:51 -05:00
|
|
|
}
|
2016-08-25 10:58:24 -04:00
|
|
|
|
|
|
|
gboolean gui_sidebar_iter_first(GtkTreeIter *iter)
|
|
|
|
{
|
|
|
|
return gtk_tree_model_get_iter_first(gui_sidebar_model(), iter);
|
|
|
|
}
|
|
|
|
|
|
|
|
gboolean gui_sidebar_iter_next(GtkTreeIter *iter)
|
|
|
|
{
|
|
|
|
return gtk_tree_model_iter_next(gui_sidebar_model(), iter);
|
|
|
|
}
|
|
|
|
|
|
|
|
gchar *gui_sidebar_iter_name(GtkTreeIter *iter)
|
|
|
|
{
|
|
|
|
gchar *text = NULL, *parsed = NULL, *name, **split;
|
|
|
|
|
|
|
|
gtk_tree_model_get(gui_sidebar_model(), iter, SB_NAME, &text, -1);
|
|
|
|
if (!text)
|
|
|
|
return g_strdup("");
|
|
|
|
|
|
|
|
pango_parse_markup(text, -1, 0, NULL, &parsed, NULL, NULL);
|
|
|
|
if (!parsed)
|
|
|
|
return g_strdup("");
|
|
|
|
|
|
|
|
split = g_strsplit(parsed, "\n", 2);
|
|
|
|
name = g_strdup(split[0]);
|
|
|
|
|
|
|
|
g_strfreev(split);
|
|
|
|
g_free(parsed);
|
|
|
|
g_free(text);
|
|
|
|
return name;
|
|
|
|
}
|
|
|
|
|
|
|
|
enum playlist_type_t gui_sidebar_iter_type(GtkTreeIter *iter)
|
|
|
|
{
|
|
|
|
enum playlist_type_t type;
|
|
|
|
gtk_tree_model_get(gui_sidebar_model(), iter, SB_TYPE, &type, -1);
|
|
|
|
return type;
|
|
|
|
}
|