]> Dogcows Code - chaz/tint2/commitdiff
start tint2conf work
authorThierry Lorthiois <lorthiois@bbsoft.fr>
Mon, 6 Jun 2011 09:16:51 +0000 (09:16 +0000)
committerThierry Lorthiois <lorthiois@bbsoft.fr>
Mon, 6 Jun 2011 09:16:51 +0000 (09:16 +0000)
src/config.c
src/tint2conf/CMakeLists.txt
src/tint2conf/main.c
src/tint2conf/properties.c
src/tint2conf/properties.h
src/tint2conf/properties_rw.c [new file with mode: 0644]
src/tint2conf/properties_rw.h [new file with mode: 0644]
src/tint2conf/theme_view.c
src/tint2conf/theme_view.h
src/util/common.c
src/util/common.h

index 2224a1d3e30449e34becb982835c50ec1be15eb5..80d02c0275b564bbaedc5347534ee8c150e01528 100644 (file)
@@ -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)
index 0ec906dfdc3851f34e2b254120adb878237a0528..5526c7d5e7626fc830a53e380c2cc7a52fd1bc6c 100644 (file)
@@ -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}
index c22862d1468b510188505de55312e527de689bd4..ee5fa71ac0a6dc07c1969a4983eb2cab43d2a0a0 100644 (file)
@@ -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 =
        "      <menuitem action='ThemeSaveAs'/>"
        "      <separator/>"
        "      <menuitem action='ThemeDelete'/>"
-//     "      <separator/>"
-//     "      <menuitem action='ThemeProperties'/>"
+       "      <separator/>"
+       "      <menuitem action='ThemeProperties'/>"
        "      <separator/>"
        "      <menuitem action='ThemeQuit'/>"
        "    </menu>"
        "    <menu action='EditMenu'>"
        "      <menuitem action='EditRefresh'/>"
        "      <menuitem action='EditRefreshAll'/>"
-//     "      <separator/>"
-//     "      <menuitem action='EditPreferences'/>"
+       "      <separator/>"
+       "      <menuitem action='EditPreferences'/>"
        "    </menu>"
        "    <menu action='HelpMenu'>"
        "      <menuitem action='HelpAbout'/>"
        "    </menu>"
        "  </menubar>"
        "  <toolbar  name='ToolBar'>"
-//     "    <toolitem action='ThemeProperties'/>"
+       "    <toolitem action='ThemeProperties'/>"
        "    <toolitem action='ViewApply'/>"
        "  </toolbar>"
        "  <popup  name='ThemePopup'>"
-//     "    <menuitem action='ThemeProperties'/>"
+       "    <menuitem action='ThemeProperties'/>"
        "    <menuitem action='EditRefresh'/>"
        "    <menuitem action='ViewApply'/>"
        "    <separator/>"
@@ -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");
 //*/
index 82a30750e95952624d7d08f547782c2d17d0a6ff..d93a35c2f8818ef4ad25b6c2f02d184e8e412d2b 100644 (file)
@@ -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 (_("<b>Position, size and items order</b>"));
+       label = gtk_label_new (_("<b>Position and size</b>"));
        gtk_misc_set_alignment (GTK_MISC (label), 0, 0);
        gtk_label_set_use_markup (GTK_LABEL (label), TRUE);
        gtk_widget_show (label);
@@ -188,34 +196,6 @@ 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 (5, 5, FALSE);
-       gtk_widget_show (table);
-       gtk_box_pack_start (GTK_BOX (hbox), table, FALSE, FALSE, 0);
-       for (i = 0; i < 12; ++i) {
-               screen_position[i] = gtk_toggle_button_new ();
-               gtk_widget_show (screen_position[i]);
-
-               if (i <= 2 || i >= 9)
-                       gtk_widget_set_size_request (screen_position[i], 30, 15);
-               else
-                       gtk_widget_set_size_request (screen_position[i], 15, 25);
-
-//             g_signal_connect (G_OBJECT (screen_position[i]), "button-press-event", G_CALLBACK (screen_position_pressed));
-//             g_signal_connect (G_OBJECT (screen_position[i]), "key-press-event", G_CALLBACK (screen_position_pressed));
-       }
-       gtk_table_attach_defaults (GTK_TABLE (table), screen_position[0], 1, 2, 0, 1);
-       gtk_table_attach_defaults (GTK_TABLE (table), screen_position[1], 2, 3, 0, 1);
-       gtk_table_attach_defaults (GTK_TABLE (table), screen_position[2], 3, 4, 0, 1);
-       gtk_table_attach_defaults (GTK_TABLE (table), screen_position[3], 0, 1, 1, 2);
-       gtk_table_attach_defaults (GTK_TABLE (table), screen_position[4], 0, 1, 2, 3);
-       gtk_table_attach_defaults (GTK_TABLE (table), screen_position[5], 0, 1, 3, 4);
-       gtk_table_attach_defaults (GTK_TABLE (table), screen_position[6], 4, 5, 1, 2);
-       gtk_table_attach_defaults (GTK_TABLE (table), screen_position[7], 4, 5, 2, 3);
-       gtk_table_attach_defaults (GTK_TABLE (table), screen_position[8], 4, 5, 3, 4);
-       gtk_table_attach_defaults (GTK_TABLE (table), screen_position[9], 1, 2, 4, 5);
-       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);
@@ -227,68 +207,86 @@ void create_panel(GtkWidget  *parent)
        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);
+       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);
 
-       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"));
+       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);
 
-       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);
+       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);
 
-       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);
+       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);
 
-       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"));
+       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);
 
-       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);
+       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);
+       for (i = 0; i < 12; ++i) {
+               screen_position[i] = gtk_toggle_button_new ();
+               gtk_widget_show (screen_position[i]);
+
+               if (i <= 2 || i >= 9)
+                       gtk_widget_set_size_request (screen_position[i], 30, 15);
+               else
+                       gtk_widget_set_size_request (screen_position[i], 15, 25);
+
+//             g_signal_connect (G_OBJECT (screen_position[i]), "button-press-event", G_CALLBACK (screen_position_pressed));
+//             g_signal_connect (G_OBJECT (screen_position[i]), "key-press-event", G_CALLBACK (screen_position_pressed));
+       }
+       gtk_table_attach_defaults (GTK_TABLE (table), screen_position[0], 1, 2, 0, 1);
+       gtk_table_attach_defaults (GTK_TABLE (table), screen_position[1], 2, 3, 0, 1);
+       gtk_table_attach_defaults (GTK_TABLE (table), screen_position[2], 3, 4, 0, 1);
+       gtk_table_attach_defaults (GTK_TABLE (table), screen_position[3], 0, 1, 1, 2);
+       gtk_table_attach_defaults (GTK_TABLE (table), screen_position[4], 0, 1, 2, 3);
+       gtk_table_attach_defaults (GTK_TABLE (table), screen_position[5], 0, 1, 3, 4);
+       gtk_table_attach_defaults (GTK_TABLE (table), screen_position[6], 4, 5, 1, 2);
+       gtk_table_attach_defaults (GTK_TABLE (table), screen_position[7], 4, 5, 2, 3);
+       gtk_table_attach_defaults (GTK_TABLE (table), screen_position[8], 4, 5, 3, 4);
+       gtk_table_attach_defaults (GTK_TABLE (table), screen_position[9], 1, 2, 4, 5);
+       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);
+
        label = gtk_label_new (_("<b>Autohide</b>"));
        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 (_("<b>Appearance</b>"));
+       label = gtk_label_new (_("<b>Taskbar Appearance</b>"));
        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,44 +717,64 @@ 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);
 
+       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 (_("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);
+
        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_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), _("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, 1, 2, GTK_FILL, 0, 0, 0);
+       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, 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_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 (_("<b>Appearance</b>"));
@@ -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"));
index 5378bd732a424965c6ac57d8e106dfc6d9c243da..c66edb23df4e55237762652185de35a187757d3b 100644 (file)
@@ -4,6 +4,32 @@
 
 #include <gtk/gtk.h>
 
+// 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 (file)
index 0000000..78df71f
--- /dev/null
@@ -0,0 +1,551 @@
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gtk/gtk.h>
+
+#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<<status);
+               */
+       }
+       else if (g_regex_match_simple("task.*_icon_asb", 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);
+               panel_config.g_task.alpha[status] = atoi(value1);
+               panel_config.g_task.saturation[status] = atoi(value2);
+               panel_config.g_task.brightness[status] = atoi(value3);
+               panel_config.g_task.config_asb_mask |= (1<<status);
+               */
+       }
+       else if (g_regex_match_simple("task.*_background_id", key, 0, 0)) {
+               /*gchar** split = g_regex_split_simple("_", key, 0, 0);
+               int status = get_task_status(split[1]);
+               g_strfreev(split);
+               int id = atoi (value);
+               id = (id < backgrounds->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<<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) {
+               extract_values(value, &value1, &value2, &value3);
+               //systray.area.paddingxlr = systray.area.paddingx = atoi (value1);
+               //if (value2) systray.area.paddingy = atoi (value2);
+               //if (value3) systray.area.paddingx = atoi (value3);
+       }
+       else if (strcmp (key, "systray_background_id") == 0) {
+               //int id = atoi (value);
+               //id = (id < backgrounds->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 (file)
index 0000000..77f86e8
--- /dev/null
@@ -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
+
index 4e169c19cae8c0207d8b7b8403eee136e68bfa74..05fad6be4588d2950e00abcb18f033ec51910052 100644 (file)
@@ -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);
 }
 
 
index 306107de98bc5432a0bcf88c98a0354599cf143d..dc1c71d9c9d08ab9dbee57272c8b57064b1e6ef1 100644 (file)
@@ -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();
 
index b9f2b727e3adf0262a5b75f37865a86519905506..f6fa36e32c2c0f8cbbfaeda9f339809c4db1f880 100644 (file)
@@ -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;
index e85af7e099bd690970597d13326888cd571b5cd5..0c60317a54d49a1cbe23f55d7e93360549c6a675 100644 (file)
@@ -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);
This page took 0.07911 seconds and 4 git commands to generate.