Mercurial > audlegacy-plugins
comparison src/skins/plugin.c @ 2675:4beebb0e82f8
add ui_skinselector
| author | Tomasz Mon <desowin@gmail.com> |
|---|---|
| date | Sun, 01 Jun 2008 15:57:12 +0200 |
| parents | 7156fc000796 |
| children | 096aa996e4fa |
comparison
equal
deleted
inserted
replaced
| 2674:b84f2aca1675 | 2675:4beebb0e82f8 |
|---|---|
| 30 #include <audacious/i18n.h> | 30 #include <audacious/i18n.h> |
| 31 #include <libintl.h> | 31 #include <libintl.h> |
| 32 | 32 |
| 33 #define PACKAGE "audacious-plugins" | 33 #define PACKAGE "audacious-plugins" |
| 34 | 34 |
| 35 gchar *skins_paths[SKINS_PATH_COUNT] = {}; | |
| 36 | |
| 35 GeneralPlugin skins_gp = | 37 GeneralPlugin skins_gp = |
| 36 { | 38 { |
| 37 .description= "Audacious Skinned GUI", | 39 .description= "Audacious Skinned GUI", |
| 38 .init = skins_init, | 40 .init = skins_init, |
| 39 .about = skins_about, | 41 .about = skins_about, |
| 44 GeneralPlugin *skins_gplist[] = { &skins_gp, NULL }; | 46 GeneralPlugin *skins_gplist[] = { &skins_gp, NULL }; |
| 45 SIMPLE_GENERAL_PLUGIN(skins, skins_gplist); | 47 SIMPLE_GENERAL_PLUGIN(skins, skins_gplist); |
| 46 GtkWidget *mainwin; | 48 GtkWidget *mainwin; |
| 47 gboolean plugin_is_active = FALSE; | 49 gboolean plugin_is_active = FALSE; |
| 48 | 50 |
| 51 static void skins_free_paths(void) { | |
| 52 int i; | |
| 53 | |
| 54 for (i = 0; i < BMP_PATH_COUNT; i++) { | |
| 55 g_free(skins_paths[i]); | |
| 56 skins_paths[i] = 0; | |
| 57 } | |
| 58 } | |
| 59 | |
| 60 static void skins_init_paths() { | |
| 61 char *xdg_data_home; | |
| 62 char *xdg_cache_home; | |
| 63 | |
| 64 xdg_data_home = (getenv("XDG_DATA_HOME") == NULL | |
| 65 ? g_build_filename(g_get_home_dir(), ".local", "share", NULL) | |
| 66 : g_strdup(getenv("XDG_DATA_HOME"))); | |
| 67 xdg_cache_home = (getenv("XDG_CACHE_HOME") == NULL | |
| 68 ? g_build_filename(g_get_home_dir(), ".cache", NULL) | |
| 69 : g_strdup(getenv("XDG_CACHE_HOME"))); | |
| 70 | |
| 71 skins_paths[SKINS_PATH_USER_SKIN_DIR] = | |
| 72 g_build_filename(xdg_data_home, "audacious", "Skins", NULL); | |
| 73 skins_paths[SKINS_PATH_SKIN_THUMB_DIR] = | |
| 74 g_build_filename(xdg_cache_home, "audacious", "thumbs", NULL); | |
| 75 | |
| 76 g_free(xdg_data_home); | |
| 77 g_free(xdg_cache_home); | |
| 78 } | |
| 79 | |
| 49 void skins_init(void) { | 80 void skins_init(void) { |
| 50 plugin_is_active = TRUE; | 81 plugin_is_active = TRUE; |
| 51 g_log_set_handler(NULL, G_LOG_LEVEL_WARNING, g_log_default_handler, NULL); | 82 g_log_set_handler(NULL, G_LOG_LEVEL_WARNING, g_log_default_handler, NULL); |
| 52 | 83 |
| 84 skins_init_paths(); | |
| 53 skins_cfg_load(); | 85 skins_cfg_load(); |
| 54 | 86 |
| 55 register_aud_stock_icons(); | 87 register_aud_stock_icons(); |
| 56 ui_manager_init(); | 88 ui_manager_init(); |
| 57 ui_manager_create_menus(); | 89 ui_manager_create_menus(); |
| 67 } | 99 } |
| 68 | 100 |
| 69 void skins_cleanup(void) { | 101 void skins_cleanup(void) { |
| 70 if (plugin_is_active == TRUE) { | 102 if (plugin_is_active == TRUE) { |
| 71 skins_cfg_save(); | 103 skins_cfg_save(); |
| 104 skins_free_paths(); | |
| 72 ui_main_evlistener_dissociate(); | 105 ui_main_evlistener_dissociate(); |
| 73 ui_playlist_evlistener_dissociate(); | 106 ui_playlist_evlistener_dissociate(); |
| 74 skins_cfg_free(); | 107 skins_cfg_free(); |
| 75 gtk_widget_destroy(mainwin); | 108 gtk_widget_destroy(mainwin); |
| 76 gtk_widget_destroy(equalizerwin); | 109 gtk_widget_destroy(equalizerwin); |
