diff --git a/src/config.c b/src/config.c index 2224a1d..80d02c0 100644 --- a/src/config.c +++ b/src/config.c @@ -77,45 +77,6 @@ void cleanup_config() } -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) diff --git a/src/tint2conf/CMakeLists.txt b/src/tint2conf/CMakeLists.txt index 0ec906d..5526c7d 100644 --- a/src/tint2conf/CMakeLists.txt +++ b/src/tint2conf/CMakeLists.txt @@ -20,6 +20,7 @@ include_directories( ../util set(SOURCES ../util/common.c main.c properties.c + properties_rw.c theme_view.c ) link_directories( ${X11_T2C_LIBRARY_DIRS} ${GLIB2_LIBRARY_DIRS} diff --git a/src/tint2conf/main.c b/src/tint2conf/main.c index c22862d..ee5fa71 100644 --- a/src/tint2conf/main.c +++ b/src/tint2conf/main.c @@ -24,6 +24,7 @@ #include "common.h" #include "theme_view.h" #include "properties.h" +#include "properties_rw.h" #define SNAPSHOT_TICK 190 @@ -76,27 +77,27 @@ static const char *global_ui = " " " " " " -// " " -// " " + " " + " " " " " " " " " " " " " " -// " " -// " " + " " + " " " " " " " " " " " " " " -// " " + " " " " " " " " -// " " + " " " " " " " " @@ -134,6 +135,9 @@ int main (int argc, char ** argv) initTheme(); g_set_application_name (_("tint2conf")); gtk_window_set_default_icon_name("taskbar"); + + // config file use '.' as decimal separator + setlocale(LC_NUMERIC, "POSIX"); // define main layout : container, menubar, toolbar g_window = gtk_window_new (GTK_WINDOW_TOPLEVEL); @@ -335,6 +339,7 @@ static void menuProperties() //* GtkWidget *prop; prop = create_properties(); + config_read_file(file); gtk_window_present(GTK_WINDOW(prop)); //printf("menuProperties : fin\n"); //*/ diff --git a/src/tint2conf/properties.c b/src/tint2conf/properties.c index 82a3075..d93a35c 100644 --- a/src/tint2conf/properties.c +++ b/src/tint2conf/properties.c @@ -27,6 +27,7 @@ void change_paragraph(GtkWidget *widget); void create_general(GtkWidget *parent); void create_panel(GtkWidget *parent); +void create_panel_items(GtkWidget *parent); void create_launcher(GtkWidget *parent); void create_taskbar(GtkWidget *parent); void create_task(GtkWidget *parent); @@ -41,7 +42,7 @@ GtkWidget *create_properties() { GtkWidget *view, *dialog_vbox3, *button, *notebook; GtkTooltips *tooltips; - GtkWidget *page_panel, *page_launcher, *page_taskbar, *page_battery, *page_clock, *page_tooltip, *page_systemtray, *page_task, *page_background; + GtkWidget *page_panel, *page_panel_items, *page_launcher, *page_taskbar, *page_battery, *page_clock, *page_tooltip, *page_systemtray, *page_task, *page_background; GtkWidget *label; tooltips = gtk_tooltips_new (); @@ -86,6 +87,14 @@ GtkWidget *create_properties() gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page_panel, label); create_panel(page_panel); + label = gtk_label_new (_("Panel items")); + gtk_widget_show (label); + page_panel_items = gtk_vbox_new (FALSE, DEFAULT_HOR_SPACING); + gtk_container_set_border_width(GTK_CONTAINER(page_panel_items), 10); + gtk_widget_show (page_panel_items); + gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page_panel_items, label); + create_panel_items(page_panel_items); + label = gtk_label_new (_("Launcher")); gtk_widget_show (label); page_launcher = gtk_vbox_new (FALSE, DEFAULT_HOR_SPACING); @@ -169,10 +178,9 @@ void create_panel(GtkWidget *parent) int i; GtkWidget *screen_position[12]; GtkWidget *table, *hbox, *frame; - GtkWidget *margin_x, *margin_y, *combo_strut_policy, *combo_layer, *combo_width_type, *combo_height_type, *combo_monitor, *combo_background, *items_order; GtkWidget *label; - label = gtk_label_new (_("Position, size and items order")); + label = gtk_label_new (_("Position and size")); gtk_misc_set_alignment (GTK_MISC (label), 0, 0); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_widget_show (label); @@ -188,6 +196,69 @@ void create_panel(GtkWidget *parent) gtk_table_set_row_spacings (GTK_TABLE (table), ROW_SPACING); gtk_table_set_col_spacings (GTK_TABLE (table), COL_SPACING); + table = gtk_table_new (3, 8, FALSE); + gtk_widget_show (table); + gtk_box_pack_start (GTK_BOX (hbox), table, FALSE, FALSE, 0); + gtk_table_set_row_spacings (GTK_TABLE (table), ROW_SPACING); + gtk_table_set_col_spacings (GTK_TABLE (table), COL_SPACING); + + label = gtk_label_new (_("Width")); + gtk_misc_set_alignment (GTK_MISC (label), 0, 0); + gtk_widget_show (label); + gtk_table_attach (GTK_TABLE (table), label, 1, 2, 0, 1, GTK_FILL, 0, 0, 0); + + panel_width = gtk_spin_button_new_with_range (0, 9000, 1); + gtk_widget_show (panel_width); + gtk_table_attach (GTK_TABLE (table), panel_width, 2, 3, 0, 1, GTK_FILL, 0, 0, 0); + + panel_combo_width_type = gtk_combo_box_new_text (); + gtk_widget_show (panel_combo_width_type); + gtk_table_attach (GTK_TABLE (table), panel_combo_width_type, 3, 4, 0, 1, GTK_FILL, 0, 0, 0); + gtk_combo_box_append_text (GTK_COMBO_BOX (panel_combo_width_type), _("Percent")); + gtk_combo_box_append_text (GTK_COMBO_BOX (panel_combo_width_type), _("Pixels")); + + label = gtk_label_new (_("Marging x")); + gtk_misc_set_alignment (GTK_MISC (label), 0, 0); + gtk_widget_show (label); + gtk_table_attach (GTK_TABLE (table), label, 6, 7, 0, 1, GTK_FILL, 0, 0, 0); + + panel_margin_x = gtk_spin_button_new_with_range (0, 500, 1); + gtk_widget_show (panel_margin_x); + gtk_entry_set_max_length (GTK_ENTRY (panel_margin_x), 3); + gtk_table_attach (GTK_TABLE (table), panel_margin_x, 7, 8, 0, 1, GTK_FILL, 0, 0, 0); + + label = gtk_label_new (_("Height")); + gtk_misc_set_alignment (GTK_MISC (label), 0, 0); + gtk_widget_show (label); + gtk_table_attach (GTK_TABLE (table), label, 1, 2, 1, 2, GTK_FILL, 0, 0, 0); + + panel_height = gtk_spin_button_new_with_range (0, 9000, 1); + gtk_widget_show (panel_height); + gtk_table_attach (GTK_TABLE (table), panel_height, 2, 3, 1, 2, GTK_FILL, 0, 0, 0); + + change_paragraph(parent); + + panel_combo_height_type = gtk_combo_box_new_text (); + gtk_widget_show (panel_combo_height_type); + gtk_table_attach (GTK_TABLE (table), panel_combo_height_type, 3, 4, 1, 2, GTK_FILL, 0, 0, 0); + gtk_combo_box_append_text (GTK_COMBO_BOX (panel_combo_height_type), _("Percent")); + gtk_combo_box_append_text (GTK_COMBO_BOX (panel_combo_height_type), _("Pixels")); + + label = gtk_label_new (_("Marging y")); + gtk_misc_set_alignment (GTK_MISC (label), 0, 0); + gtk_widget_show (label); + gtk_table_attach (GTK_TABLE (table), label, 6, 7, 1, 2, GTK_FILL, 0, 0, 0); + + panel_margin_y = gtk_spin_button_new_with_range (0, 500, 1); + gtk_widget_show (panel_margin_y); + gtk_entry_set_max_length (GTK_ENTRY (panel_margin_y), 3); + gtk_table_attach (GTK_TABLE (table), panel_margin_y, 7, 8, 1, 2, GTK_FILL, 0, 0, 0); + + frame = gtk_frame_new (NULL); + gtk_widget_show (frame); + gtk_box_pack_start (GTK_BOX (hbox), frame, FALSE, TRUE, 0); + gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE); + table = gtk_table_new (5, 5, FALSE); gtk_widget_show (table); gtk_box_pack_start (GTK_BOX (hbox), table, FALSE, FALSE, 0); @@ -216,79 +287,6 @@ void create_panel(GtkWidget *parent) gtk_table_attach_defaults (GTK_TABLE (table), screen_position[10], 2, 3, 4, 5); gtk_table_attach_defaults (GTK_TABLE (table), screen_position[11], 3, 4, 4, 5); - table = gtk_table_new (3, 8, FALSE); - gtk_widget_show (table); - gtk_box_pack_start (GTK_BOX (hbox), table, FALSE, FALSE, 0); - gtk_table_set_row_spacings (GTK_TABLE (table), ROW_SPACING); - gtk_table_set_col_spacings (GTK_TABLE (table), COL_SPACING); - - label = gtk_label_new (_("Width")); - gtk_misc_set_alignment (GTK_MISC (label), 0, 0); - gtk_widget_show (label); - gtk_table_attach (GTK_TABLE (table), label, 1, 2, 0, 1, GTK_FILL, 0, 0, 0); - - margin_x = gtk_spin_button_new_with_range (0, 9000, 1); - gtk_widget_show (margin_x); - gtk_table_attach (GTK_TABLE (table), margin_x, 2, 3, 0, 1, GTK_FILL, 0, 0, 0); - - combo_width_type = gtk_combo_box_new_text (); - gtk_widget_show (combo_width_type); - gtk_table_attach (GTK_TABLE (table), combo_width_type, 3, 4, 0, 1, GTK_FILL, 0, 0, 0); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_width_type), _("Percent")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_width_type), _("Pixels")); - - label = gtk_label_new (_("Marging x")); - gtk_misc_set_alignment (GTK_MISC (label), 0, 0); - gtk_widget_show (label); - gtk_table_attach (GTK_TABLE (table), label, 6, 7, 0, 1, GTK_FILL, 0, 0, 0); - - margin_x = gtk_spin_button_new_with_range (0, 500, 1); - gtk_widget_show (margin_x); - gtk_entry_set_max_length (GTK_ENTRY (margin_x), 3); - gtk_table_attach (GTK_TABLE (table), margin_x, 7, 8, 0, 1, GTK_FILL, 0, 0, 0); - - label = gtk_label_new (_("Height")); - gtk_misc_set_alignment (GTK_MISC (label), 0, 0); - gtk_widget_show (label); - gtk_table_attach (GTK_TABLE (table), label, 1, 2, 1, 2, GTK_FILL, 0, 0, 0); - - margin_y = gtk_spin_button_new_with_range (0, 9000, 1); - gtk_widget_show (margin_y); - gtk_table_attach (GTK_TABLE (table), margin_y, 2, 3, 1, 2, GTK_FILL, 0, 0, 0); - - label = gtk_label_new (_("Items order")); - gtk_misc_set_alignment (GTK_MISC (label), 0, 0); - gtk_widget_show (label); - gtk_table_attach (GTK_TABLE (table), label, 1, 2, 2, 3, GTK_FILL, 0, 0, 0); - - items_order = gtk_entry_new (); - gtk_widget_show (items_order); - gtk_entry_set_width_chars (GTK_ENTRY (items_order), 15); - gtk_table_attach (GTK_TABLE (table), items_order, 2, 4, 2, 3, GTK_FILL, 0, 0, 0); - - change_paragraph(parent); - - combo_height_type = gtk_combo_box_new_text (); - gtk_widget_show (combo_height_type); - gtk_table_attach (GTK_TABLE (table), combo_height_type, 3, 4, 1, 2, GTK_FILL, 0, 0, 0); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_height_type), _("Percent")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_height_type), _("Pixels")); - - label = gtk_label_new (_("Marging y")); - gtk_misc_set_alignment (GTK_MISC (label), 0, 0); - gtk_widget_show (label); - gtk_table_attach (GTK_TABLE (table), label, 6, 7, 1, 2, GTK_FILL, 0, 0, 0); - - margin_y = gtk_spin_button_new_with_range (0, 500, 1); - gtk_widget_show (margin_y); - gtk_entry_set_max_length (GTK_ENTRY (margin_y), 3); - gtk_table_attach (GTK_TABLE (table), margin_y, 7, 8, 1, 2, GTK_FILL, 0, 0, 0); - - frame = gtk_frame_new (NULL); - gtk_widget_show (frame); - gtk_box_pack_start (GTK_BOX (hbox), frame, FALSE, TRUE, 0); - gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE); - label = gtk_label_new (_("Autohide")); gtk_misc_set_alignment (GTK_MISC (label), 0, 0); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); @@ -306,18 +304,18 @@ void create_panel(GtkWidget *parent) gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 2, 3, 0, 1, GTK_FILL, 0, 0, 0); - margin_x = gtk_check_button_new (); - gtk_widget_show (margin_x); - gtk_table_attach (GTK_TABLE (table), margin_x, 3, 4, 0, 1, GTK_FILL, 0, 0, 0); + panel_autohide = gtk_check_button_new (); + gtk_widget_show (panel_autohide); + gtk_table_attach (GTK_TABLE (table), panel_autohide, 3, 4, 0, 1, GTK_FILL, 0, 0, 0); label = gtk_label_new (_("Show panel after")); gtk_misc_set_alignment (GTK_MISC (label), 0, 0); gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 6, 7, 0, 1, GTK_FILL, 0, 0, 0); - margin_x = gtk_spin_button_new_with_range (0, 10000, 0.1); - gtk_widget_show (margin_x); - gtk_table_attach (GTK_TABLE (table), margin_x, 7, 8, 0, 1, GTK_FILL, 0, 0, 0); + panel_autohide_show_time = gtk_spin_button_new_with_range (0, 10000, 0.1); + gtk_widget_show (panel_autohide_show_time); + gtk_table_attach (GTK_TABLE (table), panel_autohide_show_time, 7, 8, 0, 1, GTK_FILL, 0, 0, 0); label = gtk_label_new (_("seconds")); gtk_misc_set_alignment (GTK_MISC (label), 0, 0); @@ -329,19 +327,19 @@ void create_panel(GtkWidget *parent) gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 2, 3, 1, 2, GTK_FILL, 0, 0, 0); - margin_x = gtk_spin_button_new_with_range (0, 500, 1); - gtk_widget_show (margin_x); - gtk_entry_set_max_length (GTK_ENTRY (margin_x), 3); - gtk_table_attach (GTK_TABLE (table), margin_x, 3, 4, 1, 2, GTK_FILL, 0, 0, 0); + panel_autohide_size = gtk_spin_button_new_with_range (0, 500, 1); + gtk_widget_show (panel_autohide_size); + gtk_entry_set_max_length (GTK_ENTRY (panel_autohide_size), 3); + gtk_table_attach (GTK_TABLE (table), panel_autohide_size, 3, 4, 1, 2, GTK_FILL, 0, 0, 0); label = gtk_label_new (_("Hide panel after")); gtk_misc_set_alignment (GTK_MISC (label), 0, 0); gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 6, 7, 1, 2, GTK_FILL, 0, 0, 0); - margin_y = gtk_spin_button_new_with_range (0, 10000, 0.1); - gtk_widget_show (margin_y); - gtk_table_attach (GTK_TABLE (table), margin_y, 7, 8, 1, 2, GTK_FILL, 0, 0, 0); + panel_autohide_hide_time = gtk_spin_button_new_with_range (0, 10000, 0.1); + gtk_widget_show (panel_autohide_hide_time); + gtk_table_attach (GTK_TABLE (table), panel_autohide_hide_time, 7, 8, 1, 2, GTK_FILL, 0, 0, 0); label = gtk_label_new (_("seconds")); gtk_misc_set_alignment (GTK_MISC (label), 0, 0); @@ -367,10 +365,10 @@ void create_panel(GtkWidget *parent) gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 2, 3, 0, 1, GTK_FILL, 0, 0, 0); - margin_x = gtk_spin_button_new_with_range (0, 500, 1); - gtk_widget_show (margin_x); - gtk_entry_set_max_length (GTK_ENTRY (margin_x), 3); - gtk_table_attach (GTK_TABLE (table), margin_x, 3, 4, 0, 1, GTK_FILL, 0, 0, 0); + panel_padding_x = gtk_spin_button_new_with_range (0, 500, 1); + gtk_widget_show (panel_padding_x); + gtk_entry_set_max_length (GTK_ENTRY (panel_padding_x), 3); + gtk_table_attach (GTK_TABLE (table), panel_padding_x, 3, 4, 0, 1, GTK_FILL, 0, 0, 0); label = gtk_label_new (_("Background")); gtk_misc_set_alignment (GTK_MISC (label), 0, 0); @@ -380,29 +378,29 @@ void create_panel(GtkWidget *parent) combo_background = gtk_combo_box_new_text (); gtk_widget_show (combo_background); gtk_table_attach (GTK_TABLE (table), combo_background, 7, 8, 0, 1, GTK_FILL, 0, 0, 0); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Back 1")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Back 2")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Back 3")); + gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Id 1")); + gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Id 2")); + gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Id 3")); label = gtk_label_new (_("Vertical padding")); gtk_misc_set_alignment (GTK_MISC (label), 0, 0); gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 2, 3, 1, 2, GTK_FILL, 0, 0, 0); - margin_y = gtk_spin_button_new_with_range (0, 500, 1); - gtk_widget_show (margin_y); - gtk_entry_set_max_length (GTK_ENTRY (margin_y), 3); - gtk_table_attach (GTK_TABLE (table), margin_y, 3, 4, 1, 2, GTK_FILL, 0, 0, 0); + panel_padding_y = gtk_spin_button_new_with_range (0, 500, 1); + gtk_widget_show (panel_padding_y); + gtk_entry_set_max_length (GTK_ENTRY (panel_padding_y), 3); + gtk_table_attach (GTK_TABLE (table), panel_padding_y, 3, 4, 1, 2, GTK_FILL, 0, 0, 0); label = gtk_label_new (_("Spacing")); gtk_misc_set_alignment (GTK_MISC (label), 0, 0); gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 6, 7, 1, 2, GTK_FILL, 0, 0, 0); - margin_x = gtk_spin_button_new_with_range (0, 500, 1); - gtk_widget_show (margin_x); - gtk_entry_set_max_length (GTK_ENTRY (margin_x), 3); - gtk_table_attach (GTK_TABLE (table), margin_x, 7, 8, 1, 2, GTK_FILL, 0, 0, 0); + panel_spacing = gtk_spin_button_new_with_range (0, 500, 1); + gtk_widget_show (panel_spacing); + gtk_entry_set_max_length (GTK_ENTRY (panel_spacing), 3); + gtk_table_attach (GTK_TABLE (table), panel_spacing, 7, 8, 1, 2, GTK_FILL, 0, 0, 0); change_paragraph(parent); @@ -418,61 +416,91 @@ void create_panel(GtkWidget *parent) gtk_table_set_row_spacings (GTK_TABLE (table), ROW_SPACING); gtk_table_set_col_spacings (GTK_TABLE (table), COL_SPACING); - label = gtk_label_new (_("WM menu")); + label = gtk_label_new (_("Show WM menu")); gtk_misc_set_alignment (GTK_MISC (label), 0, 0); gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 2, 3, 0, 1, GTK_FILL, 0, 0, 0); - margin_x = gtk_check_button_new (); - gtk_widget_show (margin_x); - gtk_entry_set_max_length (GTK_ENTRY (margin_x), 3); - gtk_table_attach (GTK_TABLE (table), margin_x, 3, 4, 0, 1, GTK_FILL, 0, 0, 0); + panel_wm_menu = gtk_check_button_new (); + gtk_widget_show (panel_wm_menu); + gtk_entry_set_max_length (GTK_ENTRY (panel_wm_menu), 3); + gtk_table_attach (GTK_TABLE (table), panel_wm_menu, 3, 4, 0, 1, GTK_FILL, 0, 0, 0); label = gtk_label_new (_("Place in dock")); gtk_misc_set_alignment (GTK_MISC (label), 0, 0); gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 2, 3, 1, 2, GTK_FILL, 0, 0, 0); - margin_x = gtk_check_button_new (); - gtk_widget_show (margin_x); - gtk_entry_set_max_length (GTK_ENTRY (margin_x), 3); - gtk_table_attach (GTK_TABLE (table), margin_x, 3, 4, 1, 2, GTK_FILL, 0, 0, 0); + panel_dock = gtk_check_button_new (); + gtk_widget_show (panel_dock); + gtk_entry_set_max_length (GTK_ENTRY (panel_dock), 3); + gtk_table_attach (GTK_TABLE (table), panel_dock, 3, 4, 1, 2, GTK_FILL, 0, 0, 0); - label = gtk_label_new (_("Layer")); + label = gtk_label_new (_("Panel's layer")); gtk_misc_set_alignment (GTK_MISC (label), 0, 0); gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 6, 7, 0, 1, GTK_FILL, 0, 0, 0); - combo_layer = gtk_combo_box_new_text (); - gtk_widget_show (combo_layer); - gtk_entry_set_max_length (GTK_ENTRY (combo_layer), 3); - gtk_table_attach (GTK_TABLE (table), combo_layer, 7, 8, 0, 1, GTK_FILL, 0, 0, 0); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_layer), _("top")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_layer), _("normal")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_layer), _("bottom")); + panel_combo_layer = gtk_combo_box_new_text (); + gtk_widget_show (panel_combo_layer); + gtk_entry_set_max_length (GTK_ENTRY (panel_combo_layer), 3); + gtk_table_attach (GTK_TABLE (table), panel_combo_layer, 7, 8, 0, 1, GTK_FILL, 0, 0, 0); + gtk_combo_box_append_text (GTK_COMBO_BOX (panel_combo_layer), _("Top")); + gtk_combo_box_append_text (GTK_COMBO_BOX (panel_combo_layer), _("Normal")); + gtk_combo_box_append_text (GTK_COMBO_BOX (panel_combo_layer), _("Bottom")); - label = gtk_label_new (_("Strut policy")); + label = gtk_label_new (_("Maximized window")); gtk_misc_set_alignment (GTK_MISC (label), 0, 0); gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 6, 7, 1, 2, GTK_FILL, 0, 0, 0); - combo_strut_policy = gtk_combo_box_new_text (); - gtk_widget_show (combo_strut_policy); - gtk_entry_set_max_length (GTK_ENTRY (combo_strut_policy), 3); - gtk_table_attach (GTK_TABLE (table), combo_strut_policy, 7, 8, 1, 2, GTK_FILL, 0, 0, 0); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_strut_policy), _("follow_size")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_strut_policy), _("minimum")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_strut_policy), _("none")); + panel_combo_strut_policy = gtk_combo_box_new_text (); + gtk_widget_show (panel_combo_strut_policy); + gtk_entry_set_max_length (GTK_ENTRY (panel_combo_strut_policy), 3); + gtk_table_attach (GTK_TABLE (table), panel_combo_strut_policy, 7, 8, 1, 2, GTK_FILL, 0, 0, 0); + gtk_combo_box_append_text (GTK_COMBO_BOX (panel_combo_strut_policy), _("Follow panel size")); + gtk_combo_box_append_text (GTK_COMBO_BOX (panel_combo_strut_policy), _("Follow hidden size")); + gtk_combo_box_append_text (GTK_COMBO_BOX (panel_combo_strut_policy), _("Full screen")); label = gtk_label_new (_("Monitor")); gtk_misc_set_alignment (GTK_MISC (label), 0, 0); gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 10, 11, 0, 1, GTK_FILL, 0, 0, 0); - combo_monitor = gtk_combo_box_new_text (); - gtk_widget_show (combo_monitor); - gtk_table_attach (GTK_TABLE (table), combo_monitor, 11, 12, 0, 1, GTK_FILL, 0, 0, 0); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_monitor), _("All")); + panel_combo_monitor = gtk_combo_box_new_text (); + gtk_widget_show (panel_combo_monitor); + gtk_table_attach (GTK_TABLE (table), panel_combo_monitor, 11, 12, 0, 1, GTK_FILL, 0, 0, 0); + gtk_combo_box_append_text (GTK_COMBO_BOX (panel_combo_monitor), _("All")); + gtk_combo_box_append_text (GTK_COMBO_BOX (panel_combo_monitor), _("1")); + gtk_combo_box_append_text (GTK_COMBO_BOX (panel_combo_monitor), _("2")); + gtk_combo_box_append_text (GTK_COMBO_BOX (panel_combo_monitor), _("3")); + gtk_combo_box_append_text (GTK_COMBO_BOX (panel_combo_monitor), _("4")); + gtk_combo_box_append_text (GTK_COMBO_BOX (panel_combo_monitor), _("5")); + gtk_combo_box_append_text (GTK_COMBO_BOX (panel_combo_monitor), _("6")); + + change_paragraph(parent); +} + + +void create_panel_items(GtkWidget *parent) +{ + GtkWidget *table, *label; + + table = gtk_table_new (2, 2, FALSE); + gtk_widget_show (table); + gtk_box_pack_start (GTK_BOX (parent), table, FALSE, FALSE, 0); + gtk_table_set_row_spacings (GTK_TABLE (table), ROW_SPACING); + gtk_table_set_col_spacings (GTK_TABLE (table), COL_SPACING); + + label = gtk_label_new (_("Items order")); + gtk_misc_set_alignment (GTK_MISC (label), 0, 0); + gtk_widget_show (label); + gtk_table_attach (GTK_TABLE (table), label, 0, 1, 0, 1, GTK_FILL, 0, 0, 0); + + items_order = gtk_entry_new (); + gtk_widget_show (items_order); + gtk_entry_set_width_chars (GTK_ENTRY (items_order), 15); + gtk_table_attach (GTK_TABLE (table), items_order, 1, 2, 0, 1, GTK_FILL, 0, 0, 0); change_paragraph(parent); } @@ -541,9 +569,9 @@ void create_launcher(GtkWidget *parent) combo_background = gtk_combo_box_new_text (); gtk_widget_show (combo_background); gtk_table_attach (GTK_TABLE (table), combo_background, 7, 8, 0, 1, GTK_FILL, 0, 0, 0); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Back 1")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Back 2")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Back 3")); + gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Id 1")); + gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Id 2")); + gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Id 3")); label = gtk_label_new (_("Icon size")); gtk_misc_set_alignment (GTK_MISC (label), 0, 0); @@ -587,24 +615,24 @@ void create_taskbar(GtkWidget *parent) gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 0, 1, 0, 1, GTK_FILL, 0, 0, 0); - margin_x = gtk_check_button_new (); - gtk_widget_show (margin_x); - gtk_entry_set_max_length (GTK_ENTRY (margin_x), 3); - gtk_table_attach (GTK_TABLE (table), margin_x, 1, 2, 0, 1, GTK_FILL, 0, 0, 0); + taskbar_show_desktop = gtk_check_button_new (); + gtk_widget_show (taskbar_show_desktop); + gtk_entry_set_max_length (GTK_ENTRY (taskbar_show_desktop), 3); + gtk_table_attach (GTK_TABLE (table), taskbar_show_desktop, 1, 2, 0, 1, GTK_FILL, 0, 0, 0); label = gtk_label_new (_("Show taskbar name")); gtk_misc_set_alignment (GTK_MISC (label), 0, 0); gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 0, 1, 1, 2, GTK_FILL, 0, 0, 0); - margin_x = gtk_check_button_new (); - gtk_widget_show (margin_x); - gtk_entry_set_max_length (GTK_ENTRY (margin_x), 3); - gtk_table_attach (GTK_TABLE (table), margin_x, 1, 2, 1, 2, GTK_FILL, 0, 0, 0); + taskbar_show_name = gtk_check_button_new (); + gtk_widget_show (taskbar_show_name); + gtk_entry_set_max_length (GTK_ENTRY (taskbar_show_name), 3); + gtk_table_attach (GTK_TABLE (table), taskbar_show_name, 1, 2, 1, 2, GTK_FILL, 0, 0, 0); change_paragraph(parent); - label = gtk_label_new (_("Appearance")); + label = gtk_label_new (_("Taskbar Appearance")); gtk_misc_set_alignment (GTK_MISC (label), 0, 0); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_widget_show (label); @@ -621,32 +649,32 @@ void create_taskbar(GtkWidget *parent) gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 2, 3, 0, 1, GTK_FILL, 0, 0, 0); - margin_x = gtk_spin_button_new_with_range (0, 500, 1); - gtk_widget_show (margin_x); - gtk_entry_set_max_length (GTK_ENTRY (margin_x), 3); - gtk_table_attach (GTK_TABLE (table), margin_x, 3, 4, 0, 1, GTK_FILL, 0, 0, 0); + taskbar_padding_x = gtk_spin_button_new_with_range (0, 500, 1); + gtk_widget_show (taskbar_padding_x); + gtk_entry_set_max_length (GTK_ENTRY (taskbar_padding_x), 3); + gtk_table_attach (GTK_TABLE (table), taskbar_padding_x, 3, 4, 0, 1, GTK_FILL, 0, 0, 0); label = gtk_label_new (_("Vertical padding")); gtk_misc_set_alignment (GTK_MISC (label), 0, 0); gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 2, 3, 1, 2, GTK_FILL, 0, 0, 0); - margin_y = gtk_spin_button_new_with_range (0, 500, 1); - gtk_widget_show (margin_y); - gtk_entry_set_max_length (GTK_ENTRY (margin_y), 3); - gtk_table_attach (GTK_TABLE (table), margin_y, 3, 4, 1, 2, GTK_FILL, 0, 0, 0); + taskbar_padding_y = gtk_spin_button_new_with_range (0, 500, 1); + gtk_widget_show (taskbar_padding_y); + gtk_entry_set_max_length (GTK_ENTRY (taskbar_padding_y), 3); + gtk_table_attach (GTK_TABLE (table), taskbar_padding_y, 3, 4, 1, 2, GTK_FILL, 0, 0, 0); label = gtk_label_new (_("Spacing")); gtk_misc_set_alignment (GTK_MISC (label), 0, 0); gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 2, 3, 2, 3, GTK_FILL, 0, 0, 0); - margin_x = gtk_spin_button_new_with_range (0, 500, 1); - gtk_widget_show (margin_x); - gtk_entry_set_max_length (GTK_ENTRY (margin_x), 3); - gtk_table_attach (GTK_TABLE (table), margin_x, 3, 4, 2, 3, GTK_FILL, 0, 0, 0); + taskbar_spacing = gtk_spin_button_new_with_range (0, 500, 1); + gtk_widget_show (taskbar_spacing); + gtk_entry_set_max_length (GTK_ENTRY (taskbar_spacing), 3); + gtk_table_attach (GTK_TABLE (table), taskbar_spacing, 3, 4, 2, 3, GTK_FILL, 0, 0, 0); - label = gtk_label_new (_("Normal background")); + label = gtk_label_new (_("Inactive background")); gtk_misc_set_alignment (GTK_MISC (label), 0, 0); gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 6, 7, 0, 1, GTK_FILL, 0, 0, 0); @@ -654,9 +682,9 @@ void create_taskbar(GtkWidget *parent) combo_background = gtk_combo_box_new_text (); gtk_widget_show (combo_background); gtk_table_attach (GTK_TABLE (table), combo_background, 7, 8, 0, 1, GTK_FILL, 0, 0, 0); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Back 1")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Back 2")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Back 3")); + gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Id 1")); + gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Id 2")); + gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Id 3")); label = gtk_label_new (_("Active background")); gtk_misc_set_alignment (GTK_MISC (label), 0, 0); @@ -666,9 +694,9 @@ void create_taskbar(GtkWidget *parent) combo_background = gtk_combo_box_new_text (); gtk_widget_show (combo_background); gtk_table_attach (GTK_TABLE (table), combo_background, 7, 8, 1, 2, GTK_FILL, 0, 0, 0); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Back 1")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Back 2")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Back 3")); + gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Id 1")); + gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Id 2")); + gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Id 3")); change_paragraph(parent); @@ -678,7 +706,7 @@ void create_taskbar(GtkWidget *parent) gtk_widget_show (label); gtk_box_pack_start(GTK_BOX (parent), label, FALSE, FALSE, 0); - table = gtk_table_new (2, 12, FALSE); + table = gtk_table_new (6, 22, FALSE); gtk_widget_show (table); gtk_box_pack_start (GTK_BOX (parent), table, FALSE, FALSE, 0); gtk_table_set_row_spacings (GTK_TABLE (table), ROW_SPACING); @@ -689,34 +717,42 @@ void create_taskbar(GtkWidget *parent) gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 2, 3, 0, 1, GTK_FILL, 0, 0, 0); - margin_x = gtk_spin_button_new_with_range (0, 500, 1); - gtk_widget_show (margin_x); - gtk_entry_set_max_length (GTK_ENTRY (margin_x), 3); - gtk_table_attach (GTK_TABLE (table), margin_x, 3, 4, 0, 1, GTK_FILL, 0, 0, 0); + taskbar_name_padding_x = gtk_spin_button_new_with_range (0, 500, 1); + gtk_widget_show (taskbar_name_padding_x); + gtk_entry_set_max_length (GTK_ENTRY (taskbar_name_padding_x), 3); + gtk_table_attach (GTK_TABLE (table), taskbar_name_padding_x, 3, 4, 0, 1, GTK_FILL, 0, 0, 0); - label = gtk_label_new (_("Vertical padding")); + label = gtk_label_new (_("Inactive font color")); gtk_misc_set_alignment (GTK_MISC (label), 0, 0); gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 2, 3, 1, 2, GTK_FILL, 0, 0, 0); - margin_y = gtk_spin_button_new_with_range (0, 500, 1); - gtk_widget_show (margin_y); - gtk_entry_set_max_length (GTK_ENTRY (margin_y), 3); - gtk_table_attach (GTK_TABLE (table), margin_y, 3, 4, 1, 2, GTK_FILL, 0, 0, 0); + taskbar_name_inactive_color = gtk_color_button_new(); + gtk_color_button_set_use_alpha(GTK_COLOR_BUTTON(taskbar_name_inactive_color), TRUE); + gtk_widget_show (taskbar_name_inactive_color); + gtk_table_attach (GTK_TABLE (table), taskbar_name_inactive_color, 3, 4, 1, 2, GTK_FILL, 0, 0, 0); - label = gtk_label_new (_("Normal background")); + label = gtk_label_new (_("Active font color")); + gtk_misc_set_alignment (GTK_MISC (label), 0, 0); + gtk_widget_show (label); + gtk_table_attach (GTK_TABLE (table), label, 2, 3, 2, 3, GTK_FILL, 0, 0, 0); + + taskbar_name_active_color = gtk_color_button_new(); + gtk_color_button_set_use_alpha(GTK_COLOR_BUTTON(taskbar_name_active_color), TRUE); + gtk_widget_show (taskbar_name_active_color); + gtk_table_attach (GTK_TABLE (table), taskbar_name_active_color, 3, 4, 2, 3, GTK_FILL, 0, 0, 0); + + label = gtk_label_new (_("Font")); gtk_misc_set_alignment (GTK_MISC (label), 0, 0); gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 6, 7, 0, 1, GTK_FILL, 0, 0, 0); - combo_background = gtk_combo_box_new_text (); - gtk_widget_show (combo_background); - gtk_table_attach (GTK_TABLE (table), combo_background, 7, 8, 0, 1, GTK_FILL, 0, 0, 0); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Back 1")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Back 2")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Back 3")); + taskbar_name_font = gtk_font_button_new (); + gtk_widget_show (taskbar_name_font); + gtk_table_attach (GTK_TABLE (table), taskbar_name_font, 7, 22, 0, 1, GTK_FILL, 0, 0, 0); + //gtk_font_button_set_show_style (GTK_FONT_BUTTON (taskbar_name_font), FALSE); - label = gtk_label_new (_("Active background")); + label = gtk_label_new (_("Inactive background")); gtk_misc_set_alignment (GTK_MISC (label), 0, 0); gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 6, 7, 1, 2, GTK_FILL, 0, 0, 0); @@ -724,9 +760,21 @@ void create_taskbar(GtkWidget *parent) combo_background = gtk_combo_box_new_text (); gtk_widget_show (combo_background); gtk_table_attach (GTK_TABLE (table), combo_background, 7, 8, 1, 2, GTK_FILL, 0, 0, 0); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Back 1")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Back 2")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Back 3")); + gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Id 1")); + gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Id 2")); + gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Id 3")); + + label = gtk_label_new (_("Active background")); + gtk_misc_set_alignment (GTK_MISC (label), 0, 0); + gtk_widget_show (label); + gtk_table_attach (GTK_TABLE (table), label, 6, 7, 2, 3, GTK_FILL, 0, 0, 0); + + combo_background = gtk_combo_box_new_text (); + gtk_widget_show (combo_background); + gtk_table_attach (GTK_TABLE (table), combo_background, 7, 8, 2, 3, GTK_FILL, 0, 0, 0); + gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Id 1")); + gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Id 2")); + gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Id 3")); change_paragraph(parent); } @@ -945,64 +993,64 @@ void create_clock(GtkWidget *parent) gtk_table_set_row_spacings (GTK_TABLE (table), ROW_SPACING); gtk_table_set_col_spacings (GTK_TABLE (table), COL_SPACING); - label = gtk_label_new (_("First line")); + label = gtk_label_new (_("First line format")); gtk_misc_set_alignment (GTK_MISC (label), 0, 0); gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 2, 3, 0, 1, GTK_FILL, 0, 0, 0); margin_x = gtk_entry_new (); gtk_widget_show (margin_x); - gtk_entry_set_width_chars (GTK_ENTRY (margin_x), 15); + gtk_entry_set_width_chars (GTK_ENTRY (margin_x), 16); gtk_table_attach (GTK_TABLE (table), margin_x, 3, 4, 0, 1, GTK_FILL, 0, 0, 0); - label = gtk_label_new (_("Second line")); + label = gtk_label_new (_("Second line format")); gtk_misc_set_alignment (GTK_MISC (label), 0, 0); gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 2, 3, 1, 2, GTK_FILL, 0, 0, 0); margin_x = gtk_entry_new (); gtk_widget_show (margin_x); - gtk_entry_set_width_chars (GTK_ENTRY (margin_x), 15); + gtk_entry_set_width_chars (GTK_ENTRY (margin_x), 16); gtk_table_attach (GTK_TABLE (table), margin_x, 3, 4, 1, 2, GTK_FILL, 0, 0, 0); - label = gtk_label_new (_("Tooltip")); + label = gtk_label_new (_("Tooltip format")); gtk_misc_set_alignment (GTK_MISC (label), 0, 0); gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 2, 3, 2, 3, GTK_FILL, 0, 0, 0); margin_x = gtk_entry_new (); gtk_widget_show (margin_x); - gtk_entry_set_width_chars (GTK_ENTRY (margin_x), 15); + gtk_entry_set_width_chars (GTK_ENTRY (margin_x), 16); gtk_table_attach (GTK_TABLE (table), margin_x, 3, 4, 2, 3, GTK_FILL, 0, 0, 0); - label = gtk_label_new (_("First line")); + label = gtk_label_new (_("First line timezone")); gtk_misc_set_alignment (GTK_MISC (label), 0, 0); gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 6, 7, 0, 1, GTK_FILL, 0, 0, 0); margin_x = gtk_entry_new (); gtk_widget_show (margin_x); - gtk_entry_set_width_chars (GTK_ENTRY (margin_x), 20); + gtk_entry_set_width_chars (GTK_ENTRY (margin_x), 16); gtk_table_attach (GTK_TABLE (table), margin_x, 7, 8, 0, 1, GTK_FILL, 0, 0, 0); - label = gtk_label_new (_("Second line")); + label = gtk_label_new (_("Second line timezone")); gtk_misc_set_alignment (GTK_MISC (label), 0, 0); gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 6, 7, 1, 2, GTK_FILL, 0, 0, 0); margin_x = gtk_entry_new (); gtk_widget_show (margin_x); - gtk_entry_set_width_chars (GTK_ENTRY (margin_x), 20); + gtk_entry_set_width_chars (GTK_ENTRY (margin_x), 16); gtk_table_attach (GTK_TABLE (table), margin_x, 7, 8, 1, 2, GTK_FILL, 0, 0, 0); - label = gtk_label_new (_("Tooltip")); + label = gtk_label_new (_("Tooltip timezone")); gtk_misc_set_alignment (GTK_MISC (label), 0, 0); gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 6, 7, 2, 3, GTK_FILL, 0, 0, 0); margin_x = gtk_entry_new (); gtk_widget_show (margin_x); - gtk_entry_set_width_chars (GTK_ENTRY (margin_x), 20); + gtk_entry_set_width_chars (GTK_ENTRY (margin_x), 16); gtk_table_attach (GTK_TABLE (table), margin_x, 7, 8, 2, 3, GTK_FILL, 0, 0, 0); change_paragraph(parent); @@ -1026,7 +1074,7 @@ void create_clock(GtkWidget *parent) margin_x = gtk_entry_new (); gtk_widget_show (margin_x); - gtk_entry_set_width_chars (GTK_ENTRY (margin_x), 12); + gtk_entry_set_width_chars (GTK_ENTRY (margin_x), 16); gtk_table_attach (GTK_TABLE (table), margin_x, 3, 4, 0, 1, GTK_FILL, 0, 0, 0); label = gtk_label_new (_("Right click command")); @@ -1036,7 +1084,7 @@ void create_clock(GtkWidget *parent) margin_x = gtk_entry_new (); gtk_widget_show (margin_x); - gtk_entry_set_width_chars (GTK_ENTRY (margin_x), 12); + gtk_entry_set_width_chars (GTK_ENTRY (margin_x), 16); gtk_table_attach (GTK_TABLE (table), margin_x, 7, 8, 0, 1, GTK_FILL, 0, 0, 0); change_paragraph(parent); @@ -1047,7 +1095,7 @@ void create_clock(GtkWidget *parent) gtk_widget_show (label); gtk_box_pack_start(GTK_BOX (parent), label, FALSE, FALSE, 0); - table = gtk_table_new (3, 10, FALSE); + table = gtk_table_new (3, 22, FALSE); gtk_widget_show (table); gtk_box_pack_start (GTK_BOX (parent), table, FALSE, FALSE, 0); gtk_table_set_row_spacings (GTK_TABLE (table), ROW_SPACING); @@ -1081,9 +1129,9 @@ void create_clock(GtkWidget *parent) combo_background = gtk_combo_box_new_text (); gtk_widget_show (combo_background); gtk_table_attach (GTK_TABLE (table), combo_background, 3, 4, 2, 3, GTK_FILL, 0, 0, 0); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Back 1")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Back 2")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Back 3")); + gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Id 1")); + gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Id 2")); + gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Id 3")); label = gtk_label_new (_("Font first line")); gtk_misc_set_alignment (GTK_MISC (label), 0, 0); @@ -1092,7 +1140,7 @@ void create_clock(GtkWidget *parent) margin_x = gtk_font_button_new (); gtk_widget_show (margin_x); - gtk_table_attach (GTK_TABLE (table), margin_x, 7, 8, 0, 1, GTK_FILL, 0, 0, 0); + gtk_table_attach (GTK_TABLE (table), margin_x, 7, 22, 0, 1, GTK_FILL, 0, 0, 0); // gtk_font_button_set_show_style (GTK_FONT_BUTTON (margin_x), FALSE); label = gtk_label_new (_("Font second line")); @@ -1102,7 +1150,7 @@ void create_clock(GtkWidget *parent) margin_x = gtk_font_button_new (); gtk_widget_show (margin_x); - gtk_table_attach (GTK_TABLE (table), margin_x, 7, 8, 1, 2, GTK_FILL, 0, 0, 0); + gtk_table_attach (GTK_TABLE (table), margin_x, 7, 22, 1, 2, GTK_FILL, 0, 0, 0); // gtk_font_button_set_show_style (GTK_FONT_BUTTON (margin_x), FALSE); label = gtk_label_new (_("Font color")); @@ -1122,7 +1170,7 @@ void create_clock(GtkWidget *parent) void create_systemtray(GtkWidget *parent) { GtkWidget *table; - GtkWidget *margin_x, *margin_y, *combo_background; + GtkWidget *margin_x, *margin_y; GtkWidget *label; table = gtk_table_new (2, 2, FALSE); @@ -1136,13 +1184,13 @@ void create_systemtray(GtkWidget *parent) gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 0, 1, 1, 2, GTK_FILL, 0, 0, 0); - combo_background = gtk_combo_box_new_text (); - gtk_widget_show (combo_background); - gtk_table_attach (GTK_TABLE (table), combo_background, 1, 2, 1, 2, GTK_FILL, 0, 0, 0); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("ascending")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("descending")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("left2right")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("right2left")); + systray_icon_order = gtk_combo_box_new_text (); + gtk_widget_show (systray_icon_order); + gtk_table_attach (GTK_TABLE (table), systray_icon_order, 1, 2, 1, 2, GTK_FILL, 0, 0, 0); + gtk_combo_box_append_text (GTK_COMBO_BOX (systray_icon_order), _("Ascending")); + gtk_combo_box_append_text (GTK_COMBO_BOX (systray_icon_order), _("Descending")); + gtk_combo_box_append_text (GTK_COMBO_BOX (systray_icon_order), _("Left to right")); + gtk_combo_box_append_text (GTK_COMBO_BOX (systray_icon_order), _("Right to left")); change_paragraph(parent); @@ -1196,9 +1244,9 @@ void create_systemtray(GtkWidget *parent) combo_background = gtk_combo_box_new_text (); gtk_widget_show (combo_background); gtk_table_attach (GTK_TABLE (table), combo_background, 3, 4, 3, 4, GTK_FILL, 0, 0, 0); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Back 1")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Back 2")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Back 3")); + gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Id 1")); + gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Id 2")); + gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Id 3")); label = gtk_label_new (_("Icon size")); gtk_misc_set_alignment (GTK_MISC (label), 0, 0); @@ -1245,9 +1293,8 @@ void create_systemtray(GtkWidget *parent) void create_battery(GtkWidget *parent) { - GtkWidget *table; - GtkWidget *margin_x, *margin_y, *combo_background; - GtkWidget *label; + GtkWidget *table, *label; + GtkWidget *margin_x, *margin_y, *combo_background, *alert_command; table = gtk_table_new (1, 2, FALSE); gtk_widget_show (table); @@ -1297,6 +1344,17 @@ void create_battery(GtkWidget *parent) gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 4, 5, 1, 2, GTK_FILL, 0, 0, 0); + label = gtk_label_new (_("Alert command")); + gtk_misc_set_alignment (GTK_MISC (label), 0, 0); + gtk_widget_show (label); + gtk_table_attach (GTK_TABLE (table), label, 7, 8, 1, 2, GTK_FILL, 0, 0, 0); + + alert_command = gtk_entry_new (); + gtk_widget_show (alert_command); + gtk_entry_set_width_chars (GTK_ENTRY (alert_command), 20); + gtk_table_attach (GTK_TABLE (table), alert_command, 8, 9, 1, 2, GTK_FILL, 0, 0, 0); + + change_paragraph(parent); label = gtk_label_new (_("Appearance")); @@ -1305,7 +1363,7 @@ void create_battery(GtkWidget *parent) gtk_widget_show (label); gtk_box_pack_start(GTK_BOX (parent), label, FALSE, FALSE, 0); - table = gtk_table_new (4, 10, FALSE); + table = gtk_table_new (4, 22, FALSE); gtk_widget_show (table); gtk_box_pack_start (GTK_BOX (parent), table, FALSE, FALSE, 0); gtk_table_set_row_spacings (GTK_TABLE (table), ROW_SPACING); @@ -1339,9 +1397,9 @@ void create_battery(GtkWidget *parent) combo_background = gtk_combo_box_new_text (); gtk_widget_show (combo_background); gtk_table_attach (GTK_TABLE (table), combo_background, 3, 4, 2, 3, GTK_FILL, 0, 0, 0); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Back 1")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Back 2")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Back 3")); + gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Id 1")); + gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Id 2")); + gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Id 3")); label = gtk_label_new (_("Font first line")); gtk_misc_set_alignment (GTK_MISC (label), 0, 0); @@ -1350,7 +1408,7 @@ void create_battery(GtkWidget *parent) margin_x = gtk_font_button_new (); gtk_widget_show (margin_x); - gtk_table_attach (GTK_TABLE (table), margin_x, 7, 8, 0, 1, GTK_FILL, 0, 0, 0); + gtk_table_attach (GTK_TABLE (table), margin_x, 7, 22, 0, 1, GTK_FILL, 0, 0, 0); // gtk_font_button_set_show_style (GTK_FONT_BUTTON (margin_x), FALSE); label = gtk_label_new (_("Font second line")); @@ -1360,7 +1418,7 @@ void create_battery(GtkWidget *parent) margin_x = gtk_font_button_new (); gtk_widget_show (margin_x); - gtk_table_attach (GTK_TABLE (table), margin_x, 7, 8, 1, 2, GTK_FILL, 0, 0, 0); + gtk_table_attach (GTK_TABLE (table), margin_x, 7, 22, 1, 2, GTK_FILL, 0, 0, 0); // gtk_font_button_set_show_style (GTK_FONT_BUTTON (margin_x), FALSE); label = gtk_label_new (_("Font color")); @@ -1406,7 +1464,7 @@ void create_tooltip(GtkWidget *parent) gtk_widget_show (label); gtk_box_pack_start(GTK_BOX (parent), label, FALSE, FALSE, 0); - table = gtk_table_new (2, 10, FALSE); + table = gtk_table_new (2, 22, FALSE); gtk_widget_show (table); gtk_box_pack_start (GTK_BOX (parent), table, FALSE, FALSE, 0); gtk_table_set_row_spacings (GTK_TABLE (table), ROW_SPACING); @@ -1482,9 +1540,9 @@ void create_tooltip(GtkWidget *parent) combo_background = gtk_combo_box_new_text (); gtk_widget_show (combo_background); gtk_table_attach (GTK_TABLE (table), combo_background, 3, 4, 2, 3, GTK_FILL, 0, 0, 0); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Back 1")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Back 2")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Back 3")); + gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Id 1")); + gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Id 2")); + gtk_combo_box_append_text (GTK_COMBO_BOX (combo_background), _("Id 3")); label = gtk_label_new (_("Font")); gtk_misc_set_alignment (GTK_MISC (label), 0, 0); @@ -1493,7 +1551,7 @@ void create_tooltip(GtkWidget *parent) margin_x = gtk_font_button_new (); gtk_widget_show (margin_x); - gtk_table_attach (GTK_TABLE (table), margin_x, 7, 8, 0, 1, GTK_FILL, 0, 0, 0); + gtk_table_attach (GTK_TABLE (table), margin_x, 7, 22, 0, 1, GTK_FILL, 0, 0, 0); // gtk_font_button_set_show_style (GTK_FONT_BUTTON (margin_x), FALSE); label = gtk_label_new (_("Font color")); diff --git a/src/tint2conf/properties.h b/src/tint2conf/properties.h index 5378bd7..c66edb2 100644 --- a/src/tint2conf/properties.h +++ b/src/tint2conf/properties.h @@ -4,6 +4,32 @@ #include +// panel +GtkWidget *panel_width, *panel_height, *panel_margin_x, *panel_margin_y, *panel_padding_x, *panel_padding_y, *panel_spacing; +GtkWidget *panel_wm_menu, *panel_dock, *panel_autohide, *panel_autohide_show_time, *panel_autohide_hide_time, *panel_autohide_size; +GtkWidget *panel_combo_strut_policy, *panel_combo_layer, *panel_combo_width_type, *panel_combo_height_type, *panel_combo_monitor; +GtkWidget *items_order; + +// taskbar +GtkWidget *taskbar_show_desktop, *taskbar_show_name, *taskbar_padding_x, *taskbar_padding_y, *taskbar_spacing; +GtkWidget *taskbar_name_padding_x, *taskbar_name_inactive_color, *taskbar_name_active_color, *taskbar_name_font; + +// task + +// clock + +// battery + +// systray +GtkWidget *systray_icon_order; + +// tooltip + +// launcher + +// background +GtkWidget *combo_background; +GtkWidget *margin_x, *margin_y; GtkWidget *create_properties(); diff --git a/src/tint2conf/properties_rw.c b/src/tint2conf/properties_rw.c new file mode 100644 index 0000000..78df71f --- /dev/null +++ b/src/tint2conf/properties_rw.c @@ -0,0 +1,551 @@ + +#include +#include +#include +#include + +#include "common.h" +#include "properties.h" +#include "properties_rw.h" + + +void add_entry (char *key, char *value); +void hex2gdk(char *hex, GdkColor *color); + + + +void config_read_file (const char *path) +{ + FILE *fp; + char line[512]; + char *key, *value; + + if ((fp = fopen(path, "r")) == NULL) return; + + while (fgets(line, sizeof(line), fp) != NULL) { + if (parse_line(line, &key, &value)) { + add_entry (key, value); + free (key); + free (value); + } + } + fclose (fp); +} + + +void config_save_file(const char *path) { + //printf("config_save_file : %s\n", path); +} + + +void add_entry (char *key, char *value) +{ + char *value1=0, *value2=0, *value3=0; + + /* Background and border */ + if (strcmp (key, "rounded") == 0) { + // 'rounded' is the first parameter => alloc a new background + //Background bg; + //bg.border.rounded = atoi(value); + //g_array_append_val(backgrounds, bg); + } + else if (strcmp (key, "border_width") == 0) { + //g_array_index(backgrounds, Background, backgrounds->len-1).border.width = atoi(value); + } + else if (strcmp (key, "background_color") == 0) { + extract_values(value, &value1, &value2, &value3); + //Background* bg = &g_array_index(backgrounds, Background, backgrounds->len-1); + //get_color (value1, bg->back.color); + //if (value2) bg->back.alpha = (atoi (value2) / 100.0); + //else bg->back.alpha = 0.5; + } + else if (strcmp (key, "border_color") == 0) { + extract_values(value, &value1, &value2, &value3); + //Background* bg = &g_array_index(backgrounds, Background, backgrounds->len-1); + //get_color (value1, bg->border.color); + //if (value2) bg->border.alpha = (atoi (value2) / 100.0); + //else bg->border.alpha = 0.5; + } + + /* Panel */ + else if (strcmp (key, "panel_size") == 0) { + extract_values(value, &value1, &value2, &value3); + char *b; + if ((b = strchr (value1, '%'))) { + b[0] = '\0'; + gtk_combo_box_set_active(GTK_COMBO_BOX(panel_combo_width_type), 0); + } + else + gtk_combo_box_set_active(GTK_COMBO_BOX(panel_combo_width_type), 1); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(panel_width), atof(value1)); + if (atoi(value1) == 0) { + // full width mode + gtk_spin_button_set_value(GTK_SPIN_BUTTON(panel_width), 100); + gtk_combo_box_set_active(GTK_COMBO_BOX(panel_combo_width_type), 0); + } + if ((b = strchr (value2, '%'))) { + b[0] = '\0'; + gtk_combo_box_set_active(GTK_COMBO_BOX(panel_combo_height_type), 0); + } + else + gtk_combo_box_set_active(GTK_COMBO_BOX(panel_combo_height_type), 1); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(panel_height), atof(value2)); + } + else if (strcmp (key, "panel_items") == 0) { + gtk_entry_set_text(GTK_ENTRY(items_order), value); + } + else if (strcmp (key, "panel_margin") == 0) { + extract_values(value, &value1, &value2, &value3); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(panel_margin_x), atof(value1)); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(panel_margin_y), atof(value1)); + } + else if (strcmp (key, "panel_padding") == 0) { + extract_values(value, &value1, &value2, &value3); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(panel_padding_x), atof(value1)); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(panel_spacing), atof(value1)); + if (value2) gtk_spin_button_set_value(GTK_SPIN_BUTTON(panel_padding_y), atof(value2)); + if (value3) gtk_spin_button_set_value(GTK_SPIN_BUTTON(panel_spacing), atof(value3)); + } + else if (strcmp (key, "panel_position") == 0) { + extract_values(value, &value1, &value2, &value3); + /* + if (strcmp (value1, "top") == 0) panel_position = TOP; + else { + if (strcmp (value1, "bottom") == 0) panel_position = BOTTOM; + else panel_position = CENTER; + } + + if (!value2) panel_position |= CENTER; + else { + if (strcmp (value2, "left") == 0) panel_position |= LEFT; + else { + if (strcmp (value2, "right") == 0) panel_position |= RIGHT; + else panel_position |= CENTER; + } + } + if (!value3) panel_horizontal = 1; + else { + if (strcmp (value3, "vertical") == 0) panel_horizontal = 0; + else panel_horizontal = 1; + } + */ + } + else if (strcmp (key, "panel_background_id") == 0) { + //int id = atoi (value); + //id = (id < backgrounds->len && id >= 0) ? id : 0; + //panel_config.area.bg = &g_array_index(backgrounds, Background, id); + } + else if (strcmp (key, "wm_menu") == 0) { + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(panel_wm_menu), atoi(value)); + } + else if (strcmp (key, "panel_dock") == 0) { + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(panel_dock), atoi(value)); + } + else if (strcmp (key, "panel_layer") == 0) { + if (strcmp(value, "bottom") == 0) + gtk_combo_box_set_active(GTK_COMBO_BOX(panel_combo_layer), 2); + else if (strcmp(value, "top") == 0) + gtk_combo_box_set_active(GTK_COMBO_BOX(panel_combo_layer), 0); + else + gtk_combo_box_set_active(GTK_COMBO_BOX(panel_combo_layer), 1); + } + else if (strcmp (key, "panel_monitor") == 0) { + //panel_config.monitor = config_get_monitor(value); + } + else if (strcmp (key, "font_shadow") == 0) { + //panel_config.g_task.font_shadow = atoi (value); + } + else if (strcmp (key, "urgent_nb_of_blink") == 0) { + //max_tick_urgent = atoi (value); + } + + /* autohide options */ + else if (strcmp(key, "autohide") == 0) { + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(panel_autohide), atoi(value)); + } + else if (strcmp(key, "autohide_show_timeout") == 0) { + gtk_spin_button_set_value(GTK_SPIN_BUTTON(panel_autohide_show_time), atof(value)); + } + else if (strcmp(key, "autohide_hide_timeout") == 0) { + gtk_spin_button_set_value(GTK_SPIN_BUTTON(panel_autohide_hide_time), atof(value)); + } + else if (strcmp(key, "strut_policy") == 0) { + if (strcmp(value, "follow_size") == 0) + gtk_combo_box_set_active(GTK_COMBO_BOX(panel_combo_strut_policy), 0); + else if (strcmp(value, "none") == 0) + gtk_combo_box_set_active(GTK_COMBO_BOX(panel_combo_strut_policy), 2); + else + gtk_combo_box_set_active(GTK_COMBO_BOX(panel_combo_strut_policy), 1); + } + else if (strcmp(key, "autohide_height") == 0) { + if (atoi(value) == 0) { + // autohide need height > 0 + gtk_spin_button_set_value(GTK_SPIN_BUTTON(panel_autohide_size), 1); + } + else + gtk_spin_button_set_value(GTK_SPIN_BUTTON(panel_autohide_size), atof(value)); + } + + /* Battery */ + else if (strcmp (key, "battery_low_status") == 0) { +#ifdef ENABLE_BATTERY + //battery_low_status = atoi(value); + //if(battery_low_status < 0 || battery_low_status > 100) + //battery_low_status = 0; +#endif + } + else if (strcmp (key, "battery_low_cmd") == 0) { +#ifdef ENABLE_BATTERY + //if (strlen(value) > 0) + //battery_low_cmd = strdup (value); +#endif + } + else if (strcmp (key, "bat1_font") == 0) { +#ifdef ENABLE_BATTERY + //bat1_font_desc = pango_font_description_from_string (value); +#endif + } + else if (strcmp (key, "bat2_font") == 0) { +#ifdef ENABLE_BATTERY + //bat2_font_desc = pango_font_description_from_string (value); +#endif + } + else if (strcmp (key, "battery_font_color") == 0) { +#ifdef ENABLE_BATTERY + extract_values(value, &value1, &value2, &value3); + //get_color (value1, panel_config.battery.font.color); + //if (value2) panel_config.battery.font.alpha = (atoi (value2) / 100.0); + //else panel_config.battery.font.alpha = 0.5; +#endif + } + else if (strcmp (key, "battery_padding") == 0) { +#ifdef ENABLE_BATTERY + extract_values(value, &value1, &value2, &value3); + //panel_config.battery.area.paddingxlr = panel_config.battery.area.paddingx = atoi (value1); + //if (value2) panel_config.battery.area.paddingy = atoi (value2); + //if (value3) panel_config.battery.area.paddingx = atoi (value3); +#endif + } + else if (strcmp (key, "battery_background_id") == 0) { +#ifdef ENABLE_BATTERY + //int id = atoi (value); + //id = (id < backgrounds->len && id >= 0) ? id : 0; + //panel_config.battery.area.bg = &g_array_index(backgrounds, Background, id); +#endif + } + else if (strcmp (key, "battery_hide") == 0) { +#ifdef ENABLE_BATTERY + //percentage_hide = atoi (value); + //if (percentage_hide == 0) + // percentage_hide = 101; +#endif + } + + /* Clock */ + else if (strcmp (key, "time1_format") == 0) { + //if (strlen(value) > 0) { + //time1_format = strdup (value); + //clock_enabled = 1; + //} + } + else if (strcmp (key, "time2_format") == 0) { + //if (strlen(value) > 0) + //time2_format = strdup (value); + } + else if (strcmp (key, "time1_font") == 0) { + //time1_font_desc = pango_font_description_from_string (value); + } + else if (strcmp(key, "time1_timezone") == 0) { + //if (strlen(value) > 0) + //time1_timezone = strdup(value); + } + else if (strcmp(key, "time2_timezone") == 0) { + //if (strlen(value) > 0) + //time2_timezone = strdup(value); + } + else if (strcmp (key, "time2_font") == 0) { + //time2_font_desc = pango_font_description_from_string (value); + } + else if (strcmp (key, "clock_font_color") == 0) { + extract_values(value, &value1, &value2, &value3); + //get_color (value1, panel_config.clock.font.color); + //if (value2) panel_config.clock.font.alpha = (atoi (value2) / 100.0); + //else panel_config.clock.font.alpha = 0.5; + } + else if (strcmp (key, "clock_padding") == 0) { + extract_values(value, &value1, &value2, &value3); + //panel_config.clock.area.paddingxlr = panel_config.clock.area.paddingx = atoi (value1); + //if (value2) panel_config.clock.area.paddingy = atoi (value2); + //if (value3) panel_config.clock.area.paddingx = atoi (value3); + } + else if (strcmp (key, "clock_background_id") == 0) { + //int id = atoi (value); + //id = (id < backgrounds->len && id >= 0) ? id : 0; + //panel_config.clock.area.bg = &g_array_index(backgrounds, Background, id); + } + else if (strcmp(key, "clock_tooltip") == 0) { + //if (strlen(value) > 0) + //time_tooltip_format = strdup (value); + } + else if (strcmp(key, "clock_tooltip_timezone") == 0) { + //if (strlen(value) > 0) + //time_tooltip_timezone = strdup(value); + } + else if (strcmp(key, "clock_lclick_command") == 0) { + //if (strlen(value) > 0) + //clock_lclick_command = strdup(value); + } + else if (strcmp(key, "clock_rclick_command") == 0) { + //if (strlen(value) > 0) + //clock_rclick_command = strdup(value); + } + + /* Taskbar */ + else if (strcmp (key, "taskbar_mode") == 0) { + if (strcmp (value, "multi_desktop") == 0) + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(taskbar_show_desktop), 1); + else + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(taskbar_show_desktop), 0); + } + else if (strcmp (key, "taskbar_padding") == 0) { + extract_values(value, &value1, &value2, &value3); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(taskbar_padding_x), atof(value1)); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(taskbar_spacing), atof(value1)); + if (value2) gtk_spin_button_set_value(GTK_SPIN_BUTTON(taskbar_padding_y), atof(value2)); + if (value3) gtk_spin_button_set_value(GTK_SPIN_BUTTON(taskbar_spacing), atof(value3)); + } + else if (strcmp (key, "taskbar_background_id") == 0) { + //int id = atoi (value); + //id = (id < backgrounds->len && id >= 0) ? id : 0; + //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.background[TASKBAR_ACTIVE] = &g_array_index(backgrounds, Background, id); + } + else if (strcmp (key, "taskbar_name") == 0) { + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(taskbar_show_name), atoi(value)); + } + else if (strcmp (key, "taskbar_name_padding") == 0) { + extract_values(value, &value1, &value2, &value3); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(taskbar_name_padding_x), atof(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) { + gtk_font_button_set_font_name(GTK_FONT_BUTTON(taskbar_name_font), value); + } + else if (strcmp (key, "taskbar_name_font_color") == 0) { + extract_values(value, &value1, &value2, &value3); + GdkColor col; + hex2gdk(value1, &col); + gtk_color_button_set_color(GTK_COLOR_BUTTON(taskbar_name_inactive_color), &col); + if (value2) { + int alpha = atoi(value2); + gtk_color_button_set_alpha(GTK_COLOR_BUTTON(taskbar_name_inactive_color), (alpha*65535)/100); + } + } + else if (strcmp (key, "taskbar_name_active_font_color") == 0) { + extract_values(value, &value1, &value2, &value3); + GdkColor col; + hex2gdk(value1, &col); + gtk_color_button_set_color(GTK_COLOR_BUTTON(taskbar_name_active_color), &col); + if (value2) { + int alpha = atoi(value2); + gtk_color_button_set_alpha(GTK_COLOR_BUTTON(taskbar_name_active_color), (alpha*65535)/100); + } + } + + /* Task */ + else if (strcmp (key, "task_text") == 0) { + //panel_config.g_task.text = atoi (value); + } + else if (strcmp (key, "task_icon") == 0) { + //panel_config.g_task.icon = atoi (value); + } + else if (strcmp (key, "task_centered") == 0) { + //panel_config.g_task.centered = atoi (value); + } + else if (strcmp (key, "task_width") == 0) { + // old parameter : just for backward compatibility + //panel_config.g_task.maximum_width = atoi (value); + //panel_config.g_task.maximum_height = 30; + } + else if (strcmp (key, "task_maximum_size") == 0) { + extract_values(value, &value1, &value2, &value3); + //panel_config.g_task.maximum_width = atoi (value1); + //panel_config.g_task.maximum_height = 30; + //if (value2) + //panel_config.g_task.maximum_height = atoi (value2); + } + else if (strcmp (key, "task_padding") == 0) { + extract_values(value, &value1, &value2, &value3); + //panel_config.g_task.area.paddingxlr = panel_config.g_task.area.paddingx = atoi (value1); + //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_font") == 0) { + //panel_config.g_task.font_desc = pango_font_description_from_string (value); + } + else if (g_regex_match_simple("task.*_font_color", key, 0, 0)) { + /*gchar** split = g_regex_split_simple("_", key, 0, 0); + int status = get_task_status(split[1]); + g_strfreev(split); + extract_values(value, &value1, &value2, &value3); + float alpha = 1; + if (value2) alpha = (atoi (value2) / 100.0); + get_color (value1, panel_config.g_task.font[status].color); + panel_config.g_task.font[status].alpha = alpha; + panel_config.g_task.config_font_mask |= (1<len && id >= 0) ? id : 0; + panel_config.g_task.background[status] = &g_array_index(backgrounds, Background, id); + panel_config.g_task.config_background_mask |= (1<len && id >= 0) ? id : 0; + //systray.area.bg = &g_array_index(backgrounds, Background, id); + } + else if (strcmp(key, "systray_sort") == 0) { + if (strcmp(value, "descending") == 0) + gtk_combo_box_set_active(GTK_COMBO_BOX(systray_icon_order), 1); + else if (strcmp(value, "ascending") == 0) + gtk_combo_box_set_active(GTK_COMBO_BOX(systray_icon_order), 0); + else if (strcmp(value, "right2left") == 0) + gtk_combo_box_set_active(GTK_COMBO_BOX(systray_icon_order), 3); + else // default to left2right + gtk_combo_box_set_active(GTK_COMBO_BOX(systray_icon_order), 2); + } + else if (strcmp(key, "systray_icon_size") == 0) { + //systray_max_icon_size = atoi(value); + } + else if (strcmp(key, "systray_icon_asb") == 0) { + extract_values(value, &value1, &value2, &value3); + //systray.alpha = atoi(value1); + //systray.saturation = atoi(value2); + //systray.brightness = atoi(value3); + } + + /* Launcher */ + else if (strcmp (key, "launcher_padding") == 0) { + extract_values(value, &value1, &value2, &value3); + //panel_config.launcher.area.paddingxlr = panel_config.launcher.area.paddingx = atoi (value1); + //if (value2) panel_config.launcher.area.paddingy = atoi (value2); + //if (value3) panel_config.launcher.area.paddingx = atoi (value3); + } + else if (strcmp (key, "launcher_background_id") == 0) { + //int id = atoi (value); + //id = (id < backgrounds->len && 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) { + // if XSETTINGS manager running, tint2 use it. + //icon_theme_name = strdup(value); + } + + /* Tooltip */ + else if (strcmp (key, "tooltip_show_timeout") == 0) { + //int timeout_msec = 1000*atof(value); + } + else if (strcmp (key, "tooltip_hide_timeout") == 0) { + //int timeout_msec = 1000*atof(value); + } + else if (strcmp (key, "tooltip_padding") == 0) { + extract_values(value, &value1, &value2, &value3); + //if (value1) g_tooltip.paddingx = atoi(value1); + //if (value2) g_tooltip.paddingy = atoi(value2); + } + else if (strcmp (key, "tooltip_background_id") == 0) { + //int id = atoi (value); + //id = (id < backgrounds->len && id >= 0) ? id : 0; + //g_tooltip.bg = &g_array_index(backgrounds, Background, id); + } + else if (strcmp (key, "tooltip_font_color") == 0) { + extract_values(value, &value1, &value2, &value3); + //get_color(value1, g_tooltip.font_color.color); + //if (value2) g_tooltip.font_color.alpha = (atoi (value2) / 100.0); + //else g_tooltip.font_color.alpha = 0.1; + } + else if (strcmp (key, "tooltip_font") == 0) { + //g_tooltip.font_desc = pango_font_description_from_string(value); + } + + /* Mouse actions */ + else if (strcmp (key, "mouse_middle") == 0) { + //get_action (value, &mouse_middle); + } + else if (strcmp (key, "mouse_right") == 0) { + } + else if (strcmp (key, "mouse_scroll_up") == 0) { + } + else if (strcmp (key, "mouse_scroll_down") == 0) { + } + + if (value1) free (value1); + if (value2) free (value2); + if (value3) free (value3); +} + + +void hex2gdk(char *hex, GdkColor *color) +{ + if (hex == NULL || hex[0] != '#') return; + + color->red = 257 * (hex_char_to_int (hex[1]) * 16 + hex_char_to_int (hex[2])); + color->green = 257 * (hex_char_to_int (hex[3]) * 16 + hex_char_to_int (hex[4])); + color->blue = 257 * (hex_char_to_int (hex[5]) * 16 + hex_char_to_int (hex[6])); +} + + diff --git a/src/tint2conf/properties_rw.h b/src/tint2conf/properties_rw.h new file mode 100644 index 0000000..77f86e8 --- /dev/null +++ b/src/tint2conf/properties_rw.h @@ -0,0 +1,11 @@ + +#ifndef PROPERTIES_RW +#define PROPERTIES_RW + + +void config_read_file (const char *path); +void config_save_file(const char *path); + + +#endif + diff --git a/src/tint2conf/theme_view.c b/src/tint2conf/theme_view.c index 4e169c1..05fad6b 100644 --- a/src/tint2conf/theme_view.c +++ b/src/tint2conf/theme_view.c @@ -35,7 +35,7 @@ GtkWidget *create_view() GtkCellRenderer *renderer; GtkWidget *view; - g_store = gtk_list_store_new(NB_COL, G_TYPE_STRING, GDK_TYPE_PIXBUF); + g_store = gtk_list_store_new(NB_COL, G_TYPE_STRING, G_TYPE_STRING, GDK_TYPE_PIXBUF); view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(g_store)); gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(view), TRUE); @@ -50,6 +50,12 @@ GtkWidget *create_view() gtk_tree_view_column_set_visible(col, FALSE); gtk_tree_view_append_column(GTK_TREE_VIEW(view),col); + renderer = gtk_cell_renderer_text_new(); + col = gtk_tree_view_column_new(); + gtk_tree_view_column_pack_start(col, renderer, TRUE); + gtk_tree_view_column_add_attribute(col, renderer, "text", COL_THEME_NAME); + gtk_tree_view_append_column(GTK_TREE_VIEW(view),col); + g_width_list = 200; g_height_list = 30; g_renderer = gtk_cell_renderer_pixbuf_new(); @@ -75,6 +81,13 @@ void custom_list_append(const gchar *name) gtk_list_store_append(g_store, &iter); gtk_list_store_set(g_store, &iter, COL_THEME_FILE, name, -1); + + gchar *b, *n; + b = strrchr(name, '/'); + n = g_strdup(b+1); + b = strrchr(n, '.'); + *b = '\0'; + gtk_list_store_set(g_store, &iter, COL_THEME_NAME, n, -1); } diff --git a/src/tint2conf/theme_view.h b/src/tint2conf/theme_view.h index 306107d..dc1c71d 100644 --- a/src/tint2conf/theme_view.h +++ b/src/tint2conf/theme_view.h @@ -6,7 +6,7 @@ extern GtkWidget *g_theme_view; extern GtkListStore *g_store; -enum { COL_THEME_FILE = 0, COL_SNAPSHOT, NB_COL, }; +enum { COL_THEME_FILE = 0, COL_THEME_NAME, COL_SNAPSHOT, NB_COL, }; GtkWidget *create_view(); diff --git a/src/util/common.c b/src/util/common.c index b9f2b72..f6fa36e 100644 --- a/src/util/common.c +++ b/src/util/common.c @@ -146,6 +146,45 @@ void get_color (char *hex, double *rgb) } +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 adjust_asb(DATA32 *data, int w, int h, int alpha, float satur, float bright) { unsigned int x, y; diff --git a/src/util/common.h b/src/util/common.h index e85af7e..0c60317 100644 --- a/src/util/common.h +++ b/src/util/common.h @@ -49,6 +49,8 @@ int hex_char_to_int (char c); int hex_to_rgb (char *hex, int *r, int *g, int *b); void get_color (char *hex, double *rgb); +void extract_values (const char *value, char **value1, char **value2, char **value3); + // adjust Alpha/Saturation/Brightness on an ARGB icon // alpha from 0 to 100, satur from 0 to 1, bright from 0 to 1. void adjust_asb(DATA32 *data, int w, int h, int alpha, float satur, float bright);