Mercurial > audlegacy-plugins
diff src/skins/skins_cfg.c @ 2642:c2603047a1a3
add few more config items
author | Tomasz Mon <desowin@gmail.com> |
---|---|
date | Fri, 23 May 2008 17:17:16 +0200 |
parents | 1aa52f6d547a |
children | fb5375e86a03 |
line wrap: on
line diff
--- a/src/skins/skins_cfg.c Fri May 23 15:38:38 2008 +0200 +++ b/src/skins/skins_cfg.c Fri May 23 17:17:16 2008 +0200 @@ -22,6 +22,8 @@ #include "skins_cfg.h" #include "ui_skin.h" #include "ui_vis.h" +#include "ui_main.h" +#include "ui_playlist.h" #include <glib.h> #include <stdlib.h> #include <audacious/plugin.h> @@ -84,6 +86,10 @@ .use_xmms_style_fileselector = FALSE, .show_numbers_in_pl = TRUE, .show_separator_in_pl = TRUE, + .playlist_font = NULL, + .mainwin_font = NULL, + .show_filepopup_for_tuple = TRUE, + .filepopup_delay = 20, /* delay until the filepopup comes up */ }; typedef struct skins_cfg_boolent_t { @@ -120,6 +126,7 @@ {"eq_scaled_linked", &config.eq_scaled_linked, TRUE}, {"show_numbers_in_pl", &config.show_numbers_in_pl, TRUE}, {"show_separator_in_pl", &config.show_separator_in_pl, TRUE}, + {"show_filepopup_for_tuple", &config.show_filepopup_for_tuple, TRUE}, }; static gint ncfgbent = G_N_ELEMENTS(skins_boolents); @@ -156,12 +163,33 @@ {"colorize_g", &config.colorize_g, TRUE}, {"colorize_b", &config.colorize_b, TRUE}, {"snap_distance", &config.snap_distance, TRUE}, + {"filepopup_delay", &config.filepopup_delay, TRUE}, }; static gint ncfgient = G_N_ELEMENTS(skins_numents); +typedef struct skins_cfg_strent_t { + char const *se_vname; + char **se_vloc; + gboolean se_wrt; +} skins_cfg_strent; + +static skins_cfg_strent skins_strents[] = { + {"playlist_font", &config.playlist_font, TRUE}, + {"mainwin_font", &config.mainwin_font, TRUE}, + {"skin", &config.skin, FALSE}, +}; + +static gint ncfgsent = G_N_ELEMENTS(skins_strents); + void skins_cfg_free() { - if (config.skin) { g_free(config.skin); config.skin = NULL; } + gint i; + for (i = 0; i < ncfgsent; ++i) { + if (*(skins_strents[i].se_vloc) != NULL) { + g_free( *(skins_strents[i].se_vloc) ); + *(skins_strents[i].se_vloc) = NULL; + } + } } void skins_cfg_load() { @@ -182,8 +210,17 @@ skins_numents[i].ie_vloc); } - if (!aud_cfg_db_get_string(cfgfile, "skins", "skin", &(config.skin))) - config.skin = g_strdup(BMP_DEFAULT_SKIN_PATH); + for (i = 0; i < ncfgsent; ++i) { + aud_cfg_db_get_string(cfgfile, "skins", + skins_strents[i].se_vname, + skins_strents[i].se_vloc); + } + + if (!config.mainwin_font) + config.mainwin_font = g_strdup(MAINWIN_DEFAULT_FONT); + + if (!config.playlist_font) + config.playlist_font = g_strdup(PLAYLISTWIN_DEFAULT_FONT); if (!aud_cfg_db_get_float(cfgfile, "skins", "scale_factor", &(config.scale_factor))) config.scale_factor = 2.0; @@ -204,6 +241,13 @@ int i; + for (i = 0; i < ncfgsent; ++i) { + if (skins_strents[i].se_wrt) + aud_cfg_db_set_string(cfgfile, "skins", + skins_strents[i].se_vname, + *skins_strents[i].se_vloc); + } + for (i = 0; i < ncfgbent; ++i) if (skins_boolents[i].be_wrt) aud_cfg_db_set_bool(cfgfile, "skins",