* Tint2 : read/write config file
*
* Copyright (C) 2007 Pål Staurland (staura@gmail.com)
-* Modified (C) 2008 thierry lorthiois (lorthiois@bbsoft.fr)
+* Modified (C) 2008 thierry lorthiois (lorthiois@bbsoft.fr) from Omega distribution
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License version 2
#include "panel.h"
#include "task.h"
#include "taskbar.h"
+#include "taskbarname.h"
#include "systraybar.h"
#include "launcher.h"
#include "clock.h"
}
-void extract_values (const char *value, char **value1, char **value2, char **value3)
-{
- char *b=0, *c=0;
-
- if (*value1) free (*value1);
- if (*value2) free (*value2);
- if (*value3) free (*value3);
-
- if ((b = strchr (value, ' '))) {
- b[0] = '\0';
- b++;
- }
- else {
- *value2 = 0;
- *value3 = 0;
- }
- *value1 = strdup (value);
- g_strstrip(*value1);
-
- if (b) {
- if ((c = strchr (b, ' '))) {
- c[0] = '\0';
- c++;
- }
- else {
- c = 0;
- *value3 = 0;
- }
- *value2 = strdup (b);
- g_strstrip(*value2);
- }
-
- if (c) {
- *value3 = strdup (c);
- g_strstrip(*value3);
- }
-}
-
-
void get_action (char *event, int *action)
{
if (strcmp (event, "none") == 0)
if (snapshot_path == 0)
systray_enabled = 1;
}
- if (panel_items_order[j] == 'C')
+ if (panel_items_order[j] == 'C')
clock_enabled = 1;
}
}
else if (strcmp (key, "time1_format") == 0) {
if (new_config_file == 0) {
clock_enabled = 1;
- if (panel_items_order)
- panel_items_order = strcat(panel_items_order, "C");
+ if (panel_items_order) {
+ char* tmp = g_strconcat(panel_items_order, "C", NULL);
+ g_free( panel_items_order );
+ panel_items_order = tmp;
+ }
else
- panel_items_order = strdup("C");
+ panel_items_order = g_strdup("C");
}
if (strlen(value) > 0) {
time1_format = strdup (value);
else if (strcmp (key, "taskbar_background_id") == 0) {
int id = atoi (value);
id = (id < backgrounds->len && id >= 0) ? id : 0;
- panel_config.g_taskbar.bg = &g_array_index(backgrounds, Background, id);
- panel_config.g_taskbar.area.bg = panel_config.g_taskbar.bg;
+ panel_config.g_taskbar.background[TASKBAR_NORMAL] = &g_array_index(backgrounds, Background, id);
+ if (panel_config.g_taskbar.background[TASKBAR_ACTIVE] == 0)
+ panel_config.g_taskbar.background[TASKBAR_ACTIVE] = panel_config.g_taskbar.background[TASKBAR_NORMAL];
}
else if (strcmp (key, "taskbar_active_background_id") == 0) {
int id = atoi (value);
id = (id < backgrounds->len && id >= 0) ? id : 0;
- panel_config.g_taskbar.bg_active = &g_array_index(backgrounds, Background, id);
- panel_config.g_taskbar.use_active = 1;
+ panel_config.g_taskbar.background[TASKBAR_ACTIVE] = &g_array_index(backgrounds, Background, id);
+ }
+ else if (strcmp (key, "taskbar_name") == 0) {
+ taskbarname_enabled = atoi (value);
+ }
+ else if (strcmp (key, "taskbar_name_padding") == 0) {
+ extract_values(value, &value1, &value2, &value3);
+ panel_config.g_taskbar.area_name.paddingxlr = panel_config.g_taskbar.area_name.paddingx = atoi (value1);
+ }
+ else if (strcmp (key, "taskbar_name_background_id") == 0) {
+ int id = atoi (value);
+ id = (id < backgrounds->len && id >= 0) ? id : 0;
+ panel_config.g_taskbar.background_name[TASKBAR_NORMAL] = &g_array_index(backgrounds, Background, id);
+ if (panel_config.g_taskbar.background_name[TASKBAR_ACTIVE] == 0)
+ panel_config.g_taskbar.background_name[TASKBAR_ACTIVE] = panel_config.g_taskbar.background_name[TASKBAR_NORMAL];
+ }
+ else if (strcmp (key, "taskbar_name_active_background_id") == 0) {
+ int id = atoi (value);
+ id = (id < backgrounds->len && id >= 0) ? id : 0;
+ panel_config.g_taskbar.background_name[TASKBAR_ACTIVE] = &g_array_index(backgrounds, Background, id);
+ }
+ else if (strcmp (key, "taskbar_name_font") == 0) {
+ taskbarname_font_desc = pango_font_description_from_string (value);
+ }
+ else if (strcmp (key, "taskbar_name_font_color") == 0) {
+ extract_values(value, &value1, &value2, &value3);
+ get_color (value1, taskbarname_font.color);
+ if (value2) taskbarname_font.alpha = (atoi (value2) / 100.0);
+ else taskbarname_font.alpha = 0.5;
+ }
+ else if (strcmp (key, "taskbar_name_active_font_color") == 0) {
+ extract_values(value, &value1, &value2, &value3);
+ get_color (value1, taskbarname_active_font.color);
+ if (value2) taskbarname_active_font.alpha = (atoi (value2) / 100.0);
+ else taskbarname_active_font.alpha = 0.5;
}
/* Task */
if (value2) panel_config.g_task.area.paddingy = atoi (value2);
if (value3) panel_config.g_task.area.paddingx = atoi (value3);
}
+ else if (strcmp (key, "task_align") == 0) {
+ extract_values(value, &value1, &value2, &value3);
+ printf("task_align: %s\n", value1);
+ if (strcmp (value1, "left") == 0) panel_config.g_task.align = ALIGN_LEFT;
+ else if (strcmp (value1, "center") == 0) panel_config.g_task.align = ALIGN_CENTER;
+ else if (strcmp (value1, "right") == 0) panel_config.g_task.align = ALIGN_RIGHT;
+ else fprintf(stderr, "Unknown value for task_align: %s\n", value1);
+ }
else if (strcmp (key, "task_font") == 0) {
panel_config.g_task.font_desc = pango_font_description_from_string (value);
}
panel_config.g_task.config_background_mask |= (1<<status);
if (status == TASK_NORMAL) panel_config.g_task.area.bg = panel_config.g_task.background[TASK_NORMAL];
}
+ // "tooltip" is deprecated but here for backwards compatibility
+ else if (strcmp (key, "task_tooltip") == 0 || strcmp(key, "tooltip") == 0)
+ panel_config.g_task.tooltip_enabled = atoi(value);
/* Systray */
else if (strcmp (key, "systray_padding") == 0) {
+ if (new_config_file == 0 && systray_enabled == 0) {
+ systray_enabled = 1;
+ if (panel_items_order) {
+ char* tmp = g_strconcat(panel_items_order, "S", NULL);
+ g_free( panel_items_order );
+ panel_items_order = tmp;
+ }
+ else
+ panel_items_order = g_strdup("S");
+ }
extract_values(value, &value1, &value2, &value3);
systray.area.paddingxlr = systray.area.paddingx = atoi (value1);
if (value2) systray.area.paddingy = atoi (value2);
char *app = strdup(value);
panel_config.launcher.list_apps = g_slist_append(panel_config.launcher.list_apps, app);
}
+ else if (strcmp(key, "launcher_apps_dir") == 0) {
+
+ GList *list = dir_scan_alpha(value, "*.desktop");
+
+ for (list = g_list_first(list); list; list = g_list_next(list)) {
+ fprintf(stderr, "Add launcher app: %s\n", (const char *)list->data);
+ panel_config.launcher.list_apps = g_slist_append(panel_config.launcher.list_apps, (char *)strdup((const char *)list->data));
+ }
+
+ // Cleanup
+ g_list_free_full(list, g_free);
+ }
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);
+ // if XSETTINGS manager running, tint2 use it.
+ if (!icon_theme_name)
+ icon_theme_name = strdup(value);
+ }
+ else if (strcmp(key, "launcher_icon_asb") == 0) {
+ extract_values(value, &value1, &value2, &value3);
+ launcher_alpha = atoi(value1);
+ launcher_saturation = atoi(value2);
+ launcher_brightness = atoi(value3);
+ }
+ else if (strcmp(key, "launcher_tooltip") == 0) {
+ launcher_tooltip_enabled = atoi(value);
}
/* Tooltip */
- else if (strcmp (key, "tooltip") == 0)
- g_tooltip.enabled = atoi(value);
else if (strcmp (key, "tooltip_show_timeout") == 0) {
int timeout_msec = 1000*atof(value);
g_tooltip.show_timeout_msec = timeout_msec;
if (new_config_file == 0) {
systray_enabled = atoi(value);
if (systray_enabled) {
- if (panel_items_order)
- panel_items_order = strcat(panel_items_order, "S");
- else
- panel_items_order = strdup("S");
+ if (panel_items_order) {
+ char* tmp = g_strconcat(panel_items_order, "S", NULL);
+ g_free( panel_items_order );
+ panel_items_order = tmp;
+ }
+ else
+ panel_items_order = g_strdup("S");
}
}
}
if (new_config_file == 0) {
battery_enabled = atoi(value);
if (battery_enabled) {
- if (panel_items_order)
- panel_items_order = strcat(panel_items_order, "B");
- else
- panel_items_order = strdup("B");
+ if (panel_items_order) {
+ char* tmp = g_strconcat(panel_items_order, "B", NULL);
+ g_free( panel_items_order );
+ panel_items_order = tmp;
+ }
+ else
+ panel_items_order = g_strdup("B");
}
}
}
if (new_config_file == 0) {
taskbar_enabled = 1;
if (panel_items_order) {
- char *tmp = strdup("T");
- panel_items_order = strcat(tmp, panel_items_order);
+ char* tmp = g_strconcat( "T", panel_items_order, NULL );
+ g_free(panel_items_order);
+ panel_items_order = tmp;
}
else
- panel_items_order = strdup("T");
+ panel_items_order = g_strdup("T");
}
return 1;