X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fconfig.c;h=de8a90d34e70406d80eed0daa4d038c952349dd6;hb=a2f0644e714c76c1e16bc352ffb9c99e981afb99;hp=30aa6e122f700d614d63b93501ddb58f2f9768aa;hpb=0caca7524827e38c9d076f33dc66416d189184e8;p=chaz%2Ftint2 diff --git a/src/config.c b/src/config.c index 30aa6e1..de8a90d 100644 --- a/src/config.c +++ b/src/config.c @@ -41,6 +41,7 @@ #include "task.h" #include "taskbar.h" #include "systraybar.h" +#include "launcher.h" #include "clock.h" #include "config.h" #include "window.h" @@ -52,59 +53,26 @@ #endif // global path -char *config_path = 0; -char *snapshot_path = 0; +char *config_path; +char *snapshot_path; // -------------------------------------------------- // backward compatibility -static int old_task_icon_size; -// detect if it's an old config file -// ==1 +// detect if it's an old config file (==1) static int old_config_file; -void init_config() +void default_config() { - if (backgrounds) - g_array_free(backgrounds, 1); - backgrounds = g_array_new(0, 0, sizeof(Background)); - - // append full transparency background - Background transparent_bg; - memset(&transparent_bg, 0, sizeof(Background)); - g_array_append_val(backgrounds, transparent_bg); -printf("*** init_config()\n"); - - // tint2 could reload config, so we cleanup objects - cleanup_systray(); -#ifdef ENABLE_BATTERY - cleanup_battery(); -#endif - cleanup_clock(); - cleanup_tooltip(); - - // panel's default value - if (panel_config.g_task.font_desc) { - pango_font_description_free(panel_config.g_task.font_desc); - } - memset(&panel_config, 0, sizeof(Panel)); - systray.alpha = 100; - systray.sort = 3; + config_path = 0; + snapshot_path = 0; old_config_file = 1; - - // window manager's menu default value == false - wm_menu = 0; - max_tick_urgent = 7; - - // flush pango cache if possible - //pango_xft_shutdown_display(server.dsp, server.screen); - //PangoFontMap *font_map = pango_xft_get_font_map(server.dsp, server.screen); - //pango_fc_font_map_shutdown(font_map); } - void cleanup_config() { + if (config_path) g_free(config_path); + if (snapshot_path) g_free(snapshot_path); } @@ -188,9 +156,7 @@ int get_task_status(char* status) int config_get_monitor(char* monitor) { - if (strcmp(monitor, "all") == 0) - return -1; - else { + if (strcmp(monitor, "all") != 0) { char* endptr; int ret_int = strtol(monitor, &endptr, 10); if (*endptr == 0) @@ -199,6 +165,9 @@ int config_get_monitor(char* monitor) // monitor specified by name, not by index int i, j; for (i=0; ilen && id >= 0) ? id : 0; + panel_config.launcher.area.bg = &g_array_index(backgrounds, Background, id); + } + else if (strcmp(key, "launcher_icon_size") == 0) { + launcher_max_icon_size = atoi(value); + } + else if (strcmp(key, "launcher_item_app") == 0) { + char *app = strdup(value); + panel_config.launcher.list_apps = g_slist_append(panel_config.launcher.list_apps, app); + } + else if (strcmp(key, "launcher_icon_theme") == 0) { + char *app = strdup(value); + panel_config.launcher.icon_theme_names = g_slist_append(panel_config.launcher.icon_theme_names, app); + } + /* Tooltip */ else if (strcmp (key, "tooltip") == 0) g_tooltip.enabled = atoi(value); @@ -623,8 +624,13 @@ void add_entry (char *key, char *value) else panel_strut_policy = STRUT_MINIMUM; } - else if (strcmp(key, "autohide_height") == 0) + else if (strcmp(key, "autohide_height") == 0) { panel_autohide_height = atoi(value); + if (panel_autohide_height == 0) { + // autohide need height > 0 + panel_autohide_height = 1; + } + } else fprintf(stderr, "tint2 : invalid option \"%s\",\n upgrade tint2 or correct your config file\n", key); @@ -699,9 +705,6 @@ int config_read_file (const char *path) } fclose (fp); - if (old_task_icon_size) { - panel_config.g_task.area.paddingy = ((int)panel_config.area.height - (2 * panel_config.area.paddingy) - old_task_icon_size) / 2; - } return 1; }