X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fconfig.c;h=f70b78a9a8db0cf055938bb4d05031f7f5aebb78;hb=bd9ade337cc85297242a10d5eb258aad2e71d021;hp=d861ba5672d02cd13a27722f7eb76f706dacc5df;hpb=3b8e1d7fae07407b54d7ec5f61a64420a4993234;p=chaz%2Ftint2 diff --git a/src/config.c b/src/config.c index d861ba5..f70b78a 100644 --- a/src/config.c +++ b/src/config.c @@ -40,11 +40,15 @@ #include "taskbar.h" #include "systraybar.h" #include "clock.h" -#include "battery.h" #include "panel.h" #include "config.h" #include "window.h" +#ifdef ENABLE_BATTERY +#include "battery.h" +#endif + + // -------------------------------------------------- // backward compatibility static int save_file_config; @@ -54,8 +58,10 @@ static char *old_time1_font; static char *old_time2_font; static Area *area_task, *area_task_active; +#ifdef ENABLE_BATTERY static char *old_bat1_font; static char *old_bat2_font; +#endif // temporary panel static Panel *panel_config = 0; @@ -75,6 +81,8 @@ void init_config() list_back = g_slist_append(0, calloc(1, sizeof(Area))); panel_config = calloc(1, sizeof(Panel)); + // window manager's menu default value == false + wm_menu = 0; } @@ -308,8 +316,11 @@ void add_entry (char *key, char *value) memcpy(&panel_config->area.pix.back, &a->pix.back, sizeof(Color)); memcpy(&panel_config->area.pix.border, &a->pix.border, sizeof(Border)); } + else if (strcmp (key, "wm_menu") == 0) + wm_menu = atoi (value); /* Battery */ +#ifdef ENABLE_BATTERY else if (strcmp (key, "battery") == 0) { if(atoi(value) == 1) panel_config->battery.area.on_screen = 1; @@ -352,6 +363,11 @@ void add_entry (char *key, char *value) memcpy(&panel_config->battery.area.pix.back, &a->pix.back, sizeof(Color)); memcpy(&panel_config->battery.area.pix.border, &a->pix.border, sizeof(Border)); } +#else + else if ((strcmp (key, "battery") == 0) || (strcmp (key, "battery_low_status") == 0) || (strcmp (key, "battery_low_cmd") == 0) || (strcmp (key, "bat1_font") == 0) || (strcmp (key, "bat2_font") == 0) || (strcmp (key, "battery_font_color") == 0) || (strcmp (key, "battery_padding") == 0) || (strcmp (key, "battery_background_id") == 0)) { + printf("tint2 is build without battery support\n"); + } +#endif /* Clock */ else if (strcmp (key, "time1_format") == 0) { @@ -398,12 +414,21 @@ void add_entry (char *key, char *value) memcpy(&panel_config->clock.area.pix.back, &a->pix.back, sizeof(Color)); memcpy(&panel_config->clock.area.pix.border, &a->pix.border, sizeof(Border)); } + else if (strcmp(key, "clock_lclick_command") == 0) { + if (clock_lclick_command) g_free(clock_lclick_command); + if (strlen(value) > 0) clock_lclick_command = strdup(value); + else clock_lclick_command = 0; + } + else if (strcmp(key, "clock_rclick_command") == 0) { + if (clock_rclick_command) g_free(clock_rclick_command); + if (strlen(value) > 0) clock_rclick_command = strdup(value); + else clock_rclick_command = 0; + } /* Taskbar */ else if (strcmp (key, "taskbar_mode") == 0) { if (strcmp (value, "multi_desktop") == 0) panel_mode = MULTI_DESKTOP; - else if (strcmp (value, "single_desktop") == 0) panel_mode = SINGLE_DESKTOP; - else panel_mode = SINGLE_MONITOR; + else panel_mode = SINGLE_DESKTOP; } else if (strcmp (key, "taskbar_padding") == 0) { extract_values(value, &value1, &value2, &value3); @@ -491,9 +516,9 @@ void add_entry (char *key, char *value) /* Read tint-0.6 config for backward compatibility */ else if (strcmp (key, "panel_mode") == 0) { - if (strcmp (value, "multi_desktop") == 0) panel_mode = MULTI_DESKTOP; - else if (strcmp (value, "single_desktop") == 0) panel_mode = SINGLE_DESKTOP; - else panel_mode = SINGLE_MONITOR; + save_file_config = 1; + if (strcmp (value, "single_desktop") == 0) panel_mode = SINGLE_DESKTOP; + else panel_mode = MULTI_DESKTOP; } else if (strcmp (key, "panel_rounded") == 0) { Area *a = calloc(1, sizeof(Area)); @@ -633,7 +658,9 @@ void config_finish () // clock and systray before taskbar because resize(clock) can resize others object ?? init_panel(); init_clock(); +#ifdef ENABLE_BATTERY init_battery(); +#endif init_systray(); init_taskbar(); visible_object(); @@ -672,14 +699,7 @@ deb: path1 = g_build_filename (g_get_user_config_dir(), "tint", "tintrc", NULL); if (g_file_test (path1, G_FILE_TEST_EXISTS)) { save_file_config = 1; - old_task_font = 0; - old_time1_font = 0; - old_time2_font = 0; config_read_file (path1); - save_config(); - if (old_task_font) g_free(old_task_font); - if (old_time1_font) g_free(old_time1_font); - if (old_time2_font) g_free(old_time2_font); g_free(path1); goto deb; } @@ -720,18 +740,37 @@ int config_read_file (const char *path) char line[80]; if ((fp = fopen(path, "r")) == NULL) return 0; + old_task_font = 0; + old_time1_font = 0; + old_time2_font = 0; while (fgets(line, sizeof(line), fp) != NULL) parse_line (line); fclose (fp); + + if (save_file_config) + save_config(); + + if (old_task_font) { + g_free(old_task_font); + old_task_font = 0; + } + if (old_time1_font) { + g_free(old_time1_font); + old_time1_font = 0; + } + if (old_time2_font) { + g_free(old_time2_font); + old_time2_font = 0; + } return 1; } void save_config () { - fprintf(stderr, "tint2 : convert user's config file tintrc to tint2rc\n"); + fprintf(stderr, "tint2 : convert user's config file\n"); char *path, *dir; FILE *fp; @@ -777,9 +816,9 @@ void save_config () if (panel_position & LEFT) fputs(" left\n", fp); else if (panel_position & RIGHT) fputs(" right\n", fp); else fputs(" center\n", fp); - fprintf(fp, "panel_size = %d %d\n", (int)panel_config->initial_width, (int)panel_config->initial_height); - fprintf(fp, "panel_margin = %d %d\n", panel_config->marginx, panel_config->marginy); - fprintf(fp, "panel_padding = %d %d\n", panel_config->area.paddingx, panel_config->area.paddingy); + fprintf(fp, "panel_size = %d %d\n", (int)panel_config->initial_width, (int)panel_config->initial_height); + fprintf(fp, "panel_margin = %d %d\n", panel_config->marginx, panel_config->marginy); + fprintf(fp, "panel_padding = %d %d %d\n", panel_config->area.paddingxlr, panel_config->area.paddingy, panel_config->area.paddingx); fprintf(fp, "font_shadow = %d\n", panel_config->g_task.font_shadow); fputs("panel_background_id = 1\n", fp); @@ -825,6 +864,7 @@ void save_config () fputs("clock_padding = 2 2\n", fp); fputs("clock_background_id = 0\n", fp); +#ifdef ENABLE_BATTERY fputs("\n#---------------------------------------------\n", fp); fputs("# BATTERY\n", fp); fputs("#---------------------------------------------\n", fp); @@ -836,6 +876,7 @@ void save_config () fprintf(fp, "battery_font_color = #%02x%02x%02x %d\n", (int)(panel_config->battery.font.color[0]*255), (int)(panel_config->battery.font.color[1]*255), (int)(panel_config->battery.font.color[2]*255), (int)(panel_config->battery.font.alpha*100)); fputs("battery_padding = 2 2\n", fp); fputs("battery_background_id = 0\n", fp); +#endif fputs("\n#---------------------------------------------\n", fp); fputs("# MOUSE ACTION ON TASK\n", fp);