[Xfce4-commits] <xfce4-panel:nick/background> Add support for more background options (bug #1731).

Nick Schermer noreply at xfce.org
Wed Apr 28 14:38:02 CEST 2010


Updating branch refs/heads/nick/background
         to 00993d1175bb50d746b31623c0193804b230de4e (commit)
       from 62b86c08dcf3bb104376a71843c092806caf6e6d (commit)

commit 00993d1175bb50d746b31623c0193804b230de4e
Author: Nick Schermer <nick at xfce.org>
Date:   Sun Apr 25 11:34:05 2010 +0200

    Add support for more background options (bug #1731).

 panel/panel-preferences-dialog.c     |   47 +++++++
 panel/panel-preferences-dialog.glade |  232 ++++++++++++++++++++++++++++++----
 2 files changed, 254 insertions(+), 25 deletions(-)

diff --git a/panel/panel-preferences-dialog.c b/panel/panel-preferences-dialog.c
index aca1304..cc7b0fe 100644
--- a/panel/panel-preferences-dialog.c
+++ b/panel/panel-preferences-dialog.c
@@ -53,6 +53,8 @@ static void panel_preferences_dialog_bindings_update (PanelPreferencesDialog *di
 
 static void panel_preferences_dialog_output_changed (GtkComboBox *combobox, PanelPreferencesDialog *dialog);
 
+static void panel_preferences_dialog_bg_style_changed (PanelPreferencesDialog *dialog);
+
 static void panel_preferences_dialog_panel_combobox_changed (GtkComboBox *combobox, PanelPreferencesDialog *dialog);
 static void panel_preferences_dialog_panel_combobox_rebuild (PanelPreferencesDialog *dialog);
 static void panel_preferences_dialog_panel_add (GtkWidget *widget, PanelPreferencesDialog *dialog);
@@ -167,6 +169,17 @@ panel_preferences_dialog_init (PanelPreferencesDialog *dialog)
   connect_signal ("panel-remove", "clicked", panel_preferences_dialog_panel_remove);
   connect_signal ("panel-combobox", "changed", panel_preferences_dialog_panel_combobox_changed);
 
+  /* style tab */
+  object = gtk_builder_get_object (GTK_BUILDER (dialog), "background-style");
+  panel_return_if_fail (G_IS_OBJECT (object));
+  g_signal_connect_swapped (G_OBJECT (object), "changed",
+      G_CALLBACK (panel_preferences_dialog_bg_style_changed), dialog);
+
+  object = gtk_builder_get_object (GTK_BUILDER (dialog), "composited");
+  panel_return_if_fail (G_IS_OBJECT (object));
+  g_signal_connect_swapped (G_OBJECT (object), "notify::visible",
+      G_CALLBACK (panel_preferences_dialog_bg_style_changed), dialog);
+
   /* items treeview and buttons */
   connect_signal ("item-up", "clicked", panel_preferences_dialog_item_move);
   connect_signal ("item-down", "clicked", panel_preferences_dialog_item_move);
@@ -508,6 +521,40 @@ panel_preferences_dialog_output_changed (GtkComboBox            *combobox,
 
 
 static void
+panel_preferences_dialog_bg_style_changed (PanelPreferencesDialog *dialog)
+{
+  gint      active;
+  GObject  *object;
+  gboolean  composited;
+
+  panel_return_if_fail (PANEL_IS_PREFERENCES_DIALOG (dialog));
+  panel_return_if_fail (PANEL_WINDOW (dialog->active));
+
+  object = gtk_builder_get_object (GTK_BUILDER (dialog), "background-style");
+  panel_return_if_fail (GTK_IS_COMBO_BOX (object));
+  active = gtk_combo_box_get_active (GTK_COMBO_BOX (object));
+
+  object = gtk_builder_get_object (GTK_BUILDER (dialog), "bg-alpha-box");
+  panel_return_if_fail (GTK_IS_WIDGET (object));
+  g_object_get (G_OBJECT (dialog->active), "composited", &composited, NULL);
+  g_object_set (G_OBJECT (object), "visible", composited && active < 2, NULL);
+
+  object = gtk_builder_get_object (GTK_BUILDER (dialog), "bg-color-box");
+  panel_return_if_fail (GTK_IS_WIDGET (object));
+  g_object_set (G_OBJECT (object), "visible", active == 1, NULL);
+
+  object = gtk_builder_get_object (GTK_BUILDER (dialog), "bg-image-box");
+  panel_return_if_fail (GTK_IS_WIDGET (object));
+  g_object_set (G_OBJECT (object), "visible", active == 2, NULL);
+
+  object = gtk_builder_get_object (GTK_BUILDER (dialog), "bg-theme-box");
+  panel_return_if_fail (GTK_IS_WIDGET (object));
+  g_object_set (G_OBJECT (object), "visible", active == 3, NULL);
+}
+
+
+
+static void
 panel_preferences_dialog_panel_sensitive (PanelPreferencesDialog *dialog)
 {
 
diff --git a/panel/panel-preferences-dialog.glade b/panel/panel-preferences-dialog.glade
index eafa71a..122a000 100644
--- a/panel/panel-preferences-dialog.glade
+++ b/panel/panel-preferences-dialog.glade
@@ -31,6 +31,32 @@
       <column type="gchararray"/>
     </columns>
   </object>
+  <object class="GtkListStore" id="themes-store">
+    <columns>
+      <!-- column-name title -->
+      <column type="gchararray"/>
+    </columns>
+  </object>
+  <object class="GtkListStore" id="styles-store">
+    <columns>
+      <!-- column-name title -->
+      <column type="gchararray"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes">None (use system style)</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Solid color</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Background image</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Panel theme</col>
+      </row>
+    </data>
+  </object>
   <object class="XfceTitledDialog" id="dialog">
     <property name="title" translatable="yes">Xfce Panel</property>
     <property name="window_position">center-on-parent</property>
@@ -349,11 +375,12 @@
                                 </child>
                                 <child>
                                   <object class="GtkCheckButton" id="length-adjust">
-                                    <property name="label" translatable="yes">Automatically increase the length</property>
+                                    <property name="label" translatable="yes">A_utomatically increase the length</property>
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
                                     <property name="receives_default">False</property>
                                     <property name="tooltip_text" translatable="yes">Select this option to automatically increase the length of the panel if the plugins request more space.</property>
+                                    <property name="use_underline">True</property>
                                     <property name="draw_indicator">True</property>
                                   </object>
                                   <packing>
@@ -394,7 +421,7 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkVBox" id="composited">
+                  <object class="GtkVBox" id="vbox7">
                     <property name="visible">True</property>
                     <property name="border_width">6</property>
                     <property name="orientation">vertical</property>
@@ -409,35 +436,189 @@
                             <property name="visible">True</property>
                             <property name="left_padding">12</property>
                             <child>
-                              <object class="GtkHBox" id="hbox2">
+                              <object class="GtkVBox" id="vbox4">
                                 <property name="visible">True</property>
                                 <property name="border_width">6</property>
-                                <property name="spacing">12</property>
+                                <property name="orientation">vertical</property>
+                                <property name="spacing">6</property>
                                 <child>
-                                  <object class="GtkLabel" id="label7">
+                                  <object class="GtkHBox" id="hbox2">
                                     <property name="visible">True</property>
-                                    <property name="label" translatable="yes" comments="I18N: label for the background alha slider">_Alpha:</property>
-                                    <property name="use_underline">True</property>
-                                    <property name="mnemonic_widget">alpha-scale</property>
+                                    <property name="spacing">12</property>
+                                    <child>
+                                      <object class="GtkLabel" id="label7">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">_Style:</property>
+                                        <property name="use_underline">True</property>
+                                        <property name="mnemonic_widget">background-style</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="position">0</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkComboBox" id="background-style">
+                                        <property name="visible">True</property>
+                                        <property name="model">styles-store</property>
+                                        <child>
+                                          <object class="GtkCellRendererText" id="cellrenderertext4"/>
+                                          <attributes>
+                                            <attribute name="text">0</attribute>
+                                          </attributes>
+                                        </child>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="position">1</property>
+                                      </packing>
+                                    </child>
                                   </object>
                                   <packing>
-                                    <property name="expand">False</property>
                                     <property name="position">0</property>
                                   </packing>
                                 </child>
                                 <child>
-                                  <object class="GtkHScale" id="alpha-scale">
+                                  <object class="GtkHBox" id="bg-alpha-box">
                                     <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="tooltip_text" translatable="yes">Alpha value of the panel background, between 0 (transparent) and 100 (opaque).</property>
-                                    <property name="adjustment">background-alpha</property>
-                                    <property name="digits">0</property>
-                                    <property name="value_pos">right</property>
+                                    <property name="spacing">12</property>
+                                    <child>
+                                      <object class="GtkLabel" id="label15">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">_Alpha:</property>
+                                        <property name="use_underline">True</property>
+                                        <property name="mnemonic_widget">bg-alpha-scale</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="position">0</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkHScale" id="bg-alpha-scale">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">True</property>
+                                        <property name="tooltip_text" translatable="yes">Alpha value of the panel background, between 0 (transparent) and 100 (opaq
+ue).</property>
+                                        <property name="adjustment">background-alpha</property>
+                                        <property name="digits">0</property>
+                                        <property name="value_pos">right</property>
+                                      </object>
+                                      <packing>
+                                        <property name="position">1</property>
+                                      </packing>
+                                    </child>
                                   </object>
                                   <packing>
                                     <property name="position">1</property>
                                   </packing>
                                 </child>
+                                <child>
+                                  <object class="GtkHBox" id="bg-color-box">
+                                    <property name="visible">True</property>
+                                    <property name="spacing">12</property>
+                                    <child>
+                                      <object class="GtkLabel" id="label16">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">C_olor:</property>
+                                        <property name="use_underline">True</property>
+                                        <property name="mnemonic_widget">background-color</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="position">0</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkColorButton" id="background-color">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">True</property>
+                                        <property name="receives_default">True</property>
+                                        <property name="title" translatable="yes">Pick a Panel Color</property>
+                                        <property name="color">#000000000000</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="position">1</property>
+                                      </packing>
+                                    </child>
+                                  </object>
+                                  <packing>
+                                    <property name="position">2</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkHBox" id="bg-image-box">
+                                    <property name="visible">True</property>
+                                    <property name="spacing">12</property>
+                                    <child>
+                                      <object class="GtkLabel" id="label19">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">_File:</property>
+                                        <property name="use_underline">True</property>
+                                        <property name="mnemonic_widget">background-image</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="position">0</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkFileChooserButton" id="background-image">
+                                        <property name="visible">True</property>
+                                        <property name="title" translatable="yes">Select A Background Image</property>
+                                      </object>
+                                      <packing>
+                                        <property name="position">1</property>
+                                      </packing>
+                                    </child>
+                                  </object>
+                                  <packing>
+                                    <property name="position">3</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkHBox" id="bg-theme-box">
+                                    <property name="visible">True</property>
+                                    <property name="spacing">12</property>
+                                    <child>
+                                      <object class="GtkLabel" id="label20">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">_Theme:</property>
+                                        <property name="use_underline">True</property>
+                                        <property name="mnemonic_widget">background-theme</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="position">0</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkComboBox" id="background-theme">
+                                        <property name="visible">True</property>
+                                        <property name="model">themes-store</property>
+                                        <child>
+                                          <object class="GtkCellRendererText" id="cellrenderertext5"/>
+                                          <attributes>
+                                            <attribute name="text">0</attribute>
+                                          </attributes>
+                                        </child>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="position">1</property>
+                                      </packing>
+                                    </child>
+                                  </object>
+                                  <packing>
+                                    <property name="position">4</property>
+                                  </packing>
+                                </child>
                               </object>
                             </child>
                           </object>
@@ -458,14 +639,13 @@
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkFrame" id="frame4">
+                      <object class="GtkFrame" id="composited">
                         <property name="visible">True</property>
                         <property name="label_xalign">0</property>
                         <property name="shadow_type">none</property>
                         <child>
                           <object class="GtkAlignment" id="alignment4">
                             <property name="visible">True</property>
-                            <property name="bottom_padding">6</property>
                             <property name="left_padding">12</property>
                             <child>
                               <object class="GtkTable" id="table2">
@@ -558,7 +738,7 @@
                 <child type="tab">
                   <object class="GtkLabel" id="label12">
                     <property name="visible">True</property>
-                    <property name="label" translatable="yes">C_ompositing</property>
+                    <property name="label" translatable="yes">Appeara_nce</property>
                     <property name="use_underline">True</property>
                   </object>
                   <packing>
@@ -822,17 +1002,19 @@
     <property name="step_increment">1</property>
     <property name="page_increment">10</property>
   </object>
-  <object class="GtkSizeGroup" id="composing-sizegroup">
-    <widgets>
-      <widget name="label7"/>
-      <widget name="label9"/>
-      <widget name="label10"/>
-    </widgets>
-  </object>
   <object class="GtkSizeGroup" id="display-sizegroup">
     <widgets>
       <widget name="label1"/>
       <widget name="label13"/>
     </widgets>
   </object>
+  <object class="GtkSizeGroup" id="bg-sizegroup">
+    <widgets>
+      <widget name="label20"/>
+      <widget name="label19"/>
+      <widget name="label16"/>
+      <widget name="label15"/>
+      <widget name="label7"/>
+    </widgets>
+  </object>
 </interface>



More information about the Xfce4-commits mailing list