X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fconfig.c;h=98938e4dae425ffd72382e2e5cc7633203c2a285;hb=e9f82fb210675167061fd45697f49e6eb733c732;hp=f93faf572a124de89d77c86b04985f3eba1e6a5f;hpb=da65866b2388391052e3ce95818c1d5ebd2b26b5;p=chaz%2Ftint2 diff --git a/src/config.c b/src/config.c index f93faf5..98938e4 100644 --- a/src/config.c +++ b/src/config.c @@ -311,6 +311,7 @@ void add_entry (char *key, char *value) if (time1_format) g_free(time1_format); if (strlen(value) > 0) time1_format = strdup (value); else time1_format = 0; + panel_config->clock.area.visible = 1; } else if (strcmp (key, "time2_format") == 0) { if (time2_format) g_free(time2_format); @@ -410,12 +411,19 @@ void add_entry (char *key, char *value) memcpy(&panel_config->g_task.area.pix_active.border, &a->pix.border, sizeof(Border)); } - /* Trayer */ - else if (strcmp (key, "trayer_background_id") == 0) { + /* Systray */ + else if (strcmp (key, "systray_padding") == 0) { + extract_values(value, &value1, &value2, &value3); + panel_config->systray.area.paddingxlr = panel_config->systray.area.paddingx = atoi (value1); + if (value2) panel_config->systray.area.paddingy = atoi (value2); + if (value3) panel_config->systray.area.paddingx = atoi (value3); + panel_config->systray.area.visible = 1; + } + else if (strcmp (key, "systray_background_id") == 0) { int id = atoi (value); Area *a = g_slist_nth_data(list_back, id); - memcpy(&panel_config->trayer.area.pix.back, &a->pix.back, sizeof(Color)); - memcpy(&panel_config->trayer.area.pix.border, &a->pix.border, sizeof(Border)); + memcpy(&panel_config->systray.area.pix.back, &a->pix.back, sizeof(Color)); + memcpy(&panel_config->systray.area.pix.border, &a->pix.border, sizeof(Border)); } /* Mouse actions */ @@ -505,7 +513,7 @@ void add_entry (char *key, char *value) } else - fprintf(stderr, "Invalid option: \"%s\", correct your config file\n", key); + fprintf(stderr, "tint2 : invalid option \"%s\", correct your config file\n", key); if (value1) free (value1); if (value2) free (value2); @@ -569,13 +577,18 @@ void config_finish () } } + // TODO: user can configure layout => ordered objects in panel.area.list + // clock and systray before taskbar because resize(clock) can resize others object init_panel(); + init_clock(); // force the resize for (i=0 ; i < nb_panel ; i++) { panel1[i].area.resize = 1; - resize_clock(&panel1[i].clock); + if (panel1[i].clock.area.visible) + resize_clock(&panel1[i].clock); } + init_systray(); init_taskbar(); visible_object(); @@ -588,61 +601,70 @@ void config_finish () int config_read () { const gchar * const * system_dirs; - char *path1, *path2, *dir; + char *path1; gint i; save_file_config = 0; + // follow XDG specification deb: - // check tint2rc file according to XDG specification + // check tint2rc in user directory path1 = g_build_filename (g_get_user_config_dir(), "tint2", "tint2rc", NULL); - if (!g_file_test (path1, G_FILE_TEST_EXISTS)) { + if (g_file_test (path1, G_FILE_TEST_EXISTS)) { + i = config_read_file (path1); + g_free(path1); + return i; + } - if (save_file_config) { - fprintf(stderr, "tint2 error : enable to write $HOME/.config/tint2/tint2rc\n"); - exit(0); - } - // check old tintrc config file - 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); - goto deb; - } - else { - path2 = 0; - system_dirs = g_get_system_config_dirs(); - for (i = 0; system_dirs[i]; i++) { - path2 = g_build_filename(system_dirs[i], "tint2", "tint2rc", NULL); - - if (g_file_test(path2, G_FILE_TEST_EXISTS)) break; - g_free (path2); - path2 = 0; - } + g_free(path1); + if (save_file_config) { + fprintf(stderr, "tint2 exit : enable to write $HOME/.config/tint2/tint2rc\n"); + exit(0); + } - if (path2) { - // copy file in user directory (path1) - dir = g_build_filename (g_get_user_config_dir(), "tint2", NULL); - if (!g_file_test (dir, G_FILE_TEST_IS_DIR)) g_mkdir(dir, 0777); - g_free(dir); + // check old tintrc config file + 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; + } - copy_file(path2, path1); - g_free(path2); - } - } - } + // copy tint2rc from system directory to user directory + g_free(path1); + char *path2 = 0; + system_dirs = g_get_system_config_dirs(); + for (i = 0; system_dirs[i]; i++) { + path2 = g_build_filename(system_dirs[i], "tint2", "tint2rc", NULL); - i = config_read_file (path1); - g_free(path1); + if (g_file_test(path2, G_FILE_TEST_EXISTS)) break; + g_free (path2); + path2 = 0; + } + + if (path2) { + // copy file in user directory (path1) + char *dir = g_build_filename (g_get_user_config_dir(), "tint2", NULL); + if (!g_file_test (dir, G_FILE_TEST_IS_DIR)) g_mkdir(dir, 0777); + g_free(dir); - return i; + path1 = g_build_filename (g_get_user_config_dir(), "tint2", "tint2rc", NULL); + copy_file(path2, path1); + g_free(path2); + + i = config_read_file (path1); + g_free(path1); + return i; + } + return 0; } @@ -663,7 +685,7 @@ int config_read_file (const char *path) void save_config () { - fprintf(stderr, "tint2 warning : convert user's config file tintrc to tint2rc\n"); + fprintf(stderr, "tint2 : convert user's config file tintrc to tint2rc\n"); char *path, *dir; FILE *fp;