hide window on startup (UI)
authorJean-Philippe Orsini <jeanfi@gmail.com>
Wed, 1 Jun 2011 05:52:50 +0000 (05:52 +0000)
committerJean-Philippe Orsini <jeanfi@gmail.com>
Wed, 1 Jun 2011 05:52:50 +0000 (05:52 +0000)
NEWS
src/glade/psensor-pref.glade
src/ui_pref.c

diff --git a/NEWS b/NEWS
index 9a96d45..7b050e6 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -4,6 +4,7 @@
    is selected with application indicator.
 ** added missing src/description.txt file into source archive.
 ** psensor: appindicator displays unit of sensor values.
+** psensor: added preference for hiding main window on startup.
 
 * v0.6.2.8
 
index 1501644..01530d2 100644 (file)
@@ -3,6 +3,7 @@
   <requires lib="gtk+" version="2.16"/>
   <!-- interface-naming-policy project-wide -->
   <object class="GtkDialog" id="dialog1">
+    <property name="can_focus">False</property>
     <property name="border_width">5</property>
     <property name="title" translatable="yes">Edit Preferences</property>
     <property name="modal">True</property>
     <child internal-child="vbox">
       <object class="GtkVBox" id="dialog-vbox1">
         <property name="visible">True</property>
+        <property name="can_focus">False</property>
         <property name="spacing">2</property>
+        <child internal-child="action_area">
+          <object class="GtkHButtonBox" id="dialog-action_area1">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="layout_style">end</property>
+            <child>
+              <object class="GtkButton" id="button1">
+                <property name="label">gtk-ok</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_action_appearance">False</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="button2">
+                <property name="label">gtk-cancel</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_action_appearance">False</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="pack_type">end</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
         <child>
           <object class="GtkTable" id="table1">
             <property name="visible">True</property>
-            <property name="n_rows">16</property>
+            <property name="can_focus">False</property>
+            <property name="n_rows">17</property>
             <property name="n_columns">3</property>
             <child>
               <object class="GtkLabel" id="label1">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">Graph Colors</property>
                 <attributes>
@@ -36,6 +83,7 @@
             <child>
               <object class="GtkLabel" id="label2">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">Foreground:</property>
               </object>
@@ -49,6 +97,7 @@
             <child>
               <object class="GtkLabel" id="label3">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">Background:</property>
               </object>
             <child>
               <object class="GtkLabel" id="label4">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">Background opacity:</property>
               </object>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">True</property>
+                <property name="use_action_appearance">False</property>
                 <property name="color">#000000000000</property>
               </object>
               <packing>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">True</property>
+                <property name="use_action_appearance">False</property>
                 <property name="color">#000000000000</property>
               </object>
               <packing>
             <child>
               <object class="GtkLabel" id="label5">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">Graph</property>
                 <attributes>
             <child>
               <object class="GtkLabel" id="label6">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">Update interval:</property>
               </object>
             <child>
               <object class="GtkLabel" id="label7">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">Monitoring duration:</property>
               </object>
             <child>
               <object class="GtkLabel" id="label8">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="label" translatable="yes">second(s)</property>
               </object>
               <packing>
             <child>
               <object class="GtkLabel" id="label9">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="label" translatable="yes">minute(s)</property>
               </object>
               <packing>
             <child>
               <object class="GtkLabel" id="label10">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">Sensor</property>
                 <attributes>
             <child>
               <object class="GtkLabel" id="label11">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">Measure update interval:</property>
               </object>
             <child>
               <object class="GtkLabel" id="label12">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="label" translatable="yes">second(s)</property>
               </object>
               <packing>
             <child>
               <object class="GtkLabel" id="label13">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">Interface</property>
                 <attributes>
             <child>
               <object class="GtkLabel" id="label14">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">Position of sensors table:</property>
               </object>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">False</property>
+                <property name="use_action_appearance">False</property>
                 <property name="xalign">0</property>
                 <property name="draw_indicator">True</property>
               </object>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">False</property>
+                <property name="use_action_appearance">False</property>
                 <property name="xalign">0</property>
                 <property name="draw_indicator">True</property>
               </object>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="invisible_char">•</property>
+                <property name="primary_icon_activatable">False</property>
+                <property name="secondary_icon_activatable">False</property>
+                <property name="primary_icon_sensitive">True</property>
+                <property name="secondary_icon_sensitive">True</property>
                 <property name="adjustment">secs</property>
               </object>
               <packing>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="invisible_char">•</property>
+                <property name="primary_icon_activatable">False</property>
+                <property name="secondary_icon_activatable">False</property>
+                <property name="primary_icon_sensitive">True</property>
+                <property name="secondary_icon_sensitive">True</property>
                 <property name="adjustment">mins</property>
               </object>
               <packing>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="invisible_char">•</property>
+                <property name="primary_icon_activatable">False</property>
+                <property name="secondary_icon_activatable">False</property>
+                <property name="primary_icon_sensitive">True</property>
+                <property name="secondary_icon_sensitive">True</property>
                 <property name="adjustment">secs2</property>
               </object>
               <packing>
             <child>
               <object class="GtkComboBox" id="sensors_list_position">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="model">liststore1</property>
                 <child>
                   <object class="GtkCellRendererText" id="renderer1"/>
             <child>
               <object class="GtkHBox" id="hbox1">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="spacing">8</property>
                 <child>
                   <object class="GtkLabel" id="label15">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                     <property name="xalign">0</property>
                     <property name="label" translatable="yes">&lt;i&gt;Min&lt;/i&gt;</property>
                     <property name="use_markup">True</property>
                   </object>
                   <packing>
                     <property name="expand">False</property>
+                    <property name="fill">True</property>
                     <property name="position">0</property>
                   </packing>
                 </child>
                     <property name="draw_value">False</property>
                   </object>
                   <packing>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
                     <property name="position">1</property>
                   </packing>
                 </child>
                 <child>
                   <object class="GtkLabel" id="label16">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                     <property name="xalign">0</property>
                     <property name="label" translatable="yes">&lt;i&gt;Max&lt;/i&gt;</property>
                     <property name="use_markup">True</property>
                   </object>
                   <packing>
                     <property name="expand">False</property>
+                    <property name="fill">True</property>
                     <property name="position">2</property>
                   </packing>
                 </child>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">False</property>
+                <property name="use_action_appearance">False</property>
                 <property name="draw_indicator">True</property>
               </object>
               <packing>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">False</property>
+                <property name="use_action_appearance">False</property>
                 <property name="xalign">0</property>
                 <property name="draw_indicator">True</property>
               </object>
                 <property name="y_padding">4</property>
               </packing>
             </child>
-          </object>
-          <packing>
-            <property name="position">1</property>
-          </packing>
-        </child>
-        <child internal-child="action_area">
-          <object class="GtkHButtonBox" id="dialog-action_area1">
-            <property name="visible">True</property>
-            <property name="layout_style">end</property>
-            <child>
-              <object class="GtkButton" id="button1">
-                <property name="label">gtk-ok</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-                <property name="use_stock">True</property>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">0</property>
-              </packing>
-            </child>
             <child>
-              <object class="GtkButton" id="button2">
-                <property name="label">gtk-cancel</property>
+              <object class="GtkCheckButton" id="hide_on_startup">
+                <property name="label" translatable="yes">Hide window on startup</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-                <property name="use_stock">True</property>
+                <property name="receives_default">False</property>
+                <property name="use_action_appearance">False</property>
+                <property name="draw_indicator">True</property>
               </object>
               <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">1</property>
+                <property name="right_attach">3</property>
+                <property name="top_attach">16</property>
+                <property name="bottom_attach">17</property>
+                <property name="x_padding">14</property>
+                <property name="y_padding">4</property>
               </packing>
             </child>
           </object>
           <packing>
-            <property name="expand">False</property>
-            <property name="pack_type">end</property>
-            <property name="position">0</property>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+            <property name="position">1</property>
           </packing>
         </child>
       </object>
       <action-widget response="0">button2</action-widget>
     </action-widgets>
   </object>
-  <object class="GtkAdjustment" id="opacity">
-    <property name="upper">1</property>
-    <property name="step_increment">0.01</property>
-    <property name="page_increment">0.10000000000000001</property>
-  </object>
   <object class="GtkListStore" id="liststore1">
     <columns>
       <!-- column-name gchararray1 -->
       </row>
     </data>
   </object>
-  <object class="GtkAdjustment" id="secs">
-    <property name="value">1</property>
+  <object class="GtkAdjustment" id="mins">
     <property name="lower">1</property>
-    <property name="upper">256</property>
+    <property name="upper">65535</property>
+    <property name="value">10</property>
     <property name="step_increment">1</property>
     <property name="page_increment">10</property>
   </object>
-  <object class="GtkAdjustment" id="mins">
-    <property name="value">10</property>
+  <object class="GtkAdjustment" id="opacity">
+    <property name="upper">1</property>
+    <property name="step_increment">0.01</property>
+    <property name="page_increment">0.10000000000000001</property>
+  </object>
+  <object class="GtkAdjustment" id="secs">
     <property name="lower">1</property>
-    <property name="upper">65535</property>
+    <property name="upper">256</property>
+    <property name="value">1</property>
     <property name="step_increment">1</property>
     <property name="page_increment">10</property>
   </object>
index 0470116..0a5aa1f 100644 (file)
@@ -52,7 +52,7 @@ void ui_pref_dialog_run(struct ui_psensor *ui)
                *w_s_update_interval;
        GtkComboBox *w_sensorlist_pos;
        GtkToggleButton *w_hide_window_decoration, *w_keep_window_below,
-               *w_enable_menu, *w_enable_launcher_counter;
+               *w_enable_menu, *w_enable_launcher_counter, *w_hide_on_startup;
 
        cfg = ui->config;
 
@@ -103,34 +103,32 @@ void ui_pref_dialog_run(struct ui_psensor *ui)
                                  cfg->graph_monitoring_duration);
 
        w_sensorlist_pos = GTK_COMBO_BOX
-               (gtk_builder_get_object(builder,
-                                       "sensors_list_position"));
+               (gtk_builder_get_object(builder, "sensors_list_position"));
        gtk_combo_box_set_active(w_sensorlist_pos, cfg->sensorlist_position);
 
        w_hide_window_decoration = GTK_TOGGLE_BUTTON
-               (gtk_builder_get_object(builder,
-                                       "hide_window_decoration"));
+               (gtk_builder_get_object(builder, "hide_window_decoration"));
        gtk_toggle_button_set_active(w_hide_window_decoration,
                                     !cfg->window_decoration_enabled);
 
        w_keep_window_below = GTK_TOGGLE_BUTTON
-               (gtk_builder_get_object(builder,
-                                       "keep_window_below"));
+               (gtk_builder_get_object(builder, "keep_window_below"));
        gtk_toggle_button_set_active(w_keep_window_below,
                                     cfg->window_keep_below_enabled);
 
        w_enable_menu = GTK_TOGGLE_BUTTON
-               (gtk_builder_get_object(builder,
-                                       "enable_menu"));
-       gtk_toggle_button_set_active(w_enable_menu,
-                                    !cfg->menu_bar_disabled);
+               (gtk_builder_get_object(builder, "enable_menu"));
+       gtk_toggle_button_set_active(w_enable_menu, !cfg->menu_bar_disabled);
 
        w_enable_launcher_counter = GTK_TOGGLE_BUTTON
-               (gtk_builder_get_object(builder,
-                                       "enable_launcher_counter"));
+               (gtk_builder_get_object(builder, "enable_launcher_counter"));
        gtk_toggle_button_set_active(w_enable_launcher_counter,
                                     !cfg->unity_launcher_count_disabled);
 
+       w_hide_on_startup = GTK_TOGGLE_BUTTON
+               (gtk_builder_get_object(builder, "hide_on_startup"));
+       gtk_toggle_button_set_active(w_hide_on_startup, cfg->hide_on_startup);
+
        result = gtk_dialog_run(diag);
 
        if (result == GTK_RESPONSE_ACCEPT) {
@@ -191,6 +189,9 @@ void ui_pref_dialog_run(struct ui_psensor *ui)
                    = (cfg->graph_monitoring_duration * 60) /
                    cfg->sensor_update_interval;
 
+               cfg->hide_on_startup
+                       = gtk_toggle_button_get_active(w_hide_on_startup);
+
                config_save(cfg);
 
                g_mutex_unlock(ui->sensors_mutex);