[Goodies-commits] r7473 - in parole/trunk: . data/interfaces po src

Ali Abdallah aliov at xfce.org
Sat Jun 6 15:41:52 CEST 2009


Author: aliov
Date: 2009-06-06 13:41:52 +0000 (Sat, 06 Jun 2009)
New Revision: 7473

Modified:
   parole/trunk/ChangeLog
   parole/trunk/configure.ac.in
   parole/trunk/data/interfaces/parole.ui
   parole/trunk/po/POTFILES.in
   parole/trunk/src/gst.c
   parole/trunk/src/gst.h
   parole/trunk/src/mediachooser.c
   parole/trunk/src/medialist.c
   parole/trunk/src/medialist.h
   parole/trunk/src/player.c
   parole/trunk/src/rc-utils.c
   parole/trunk/src/rc-utils.h
   parole/trunk/src/sidebar.c
   parole/trunk/src/statusbar.c
   parole/trunk/src/statusbar.h
Log:
	* Button to hide/show playlist.
	* Fallback to ximagesink if xvimagesink is not found.
	* set the play button hidden if there is no media
	in the medialist rows.
	* Provide clear menu in the playlist to clear all media
	* Volume range for changing volume.

Modified: parole/trunk/ChangeLog
===================================================================
--- parole/trunk/ChangeLog	2009-06-06 13:18:48 UTC (rev 7472)
+++ parole/trunk/ChangeLog	2009-06-06 13:41:52 UTC (rev 7473)
@@ -1,2 +1,10 @@
+2009-06-06: Ali aliov at xfce.org
+	* Button to hide/show playlist.
+	* Fallback to ximagesink if xvimagesink is not found.
+	* set the play button hidden if there is no media
+	in the medialist rows.
+	* Provide clear menu in the playlist to clear all media
+	* Volume range for changing volume.
+
 2009-06-03: 10:30 Ali aliov at xfce.org
 	* Initial import of parole, Juste une parole.

Modified: parole/trunk/configure.ac.in
===================================================================
--- parole/trunk/configure.ac.in	2009-06-06 13:18:48 UTC (rev 7472)
+++ parole/trunk/configure.ac.in	2009-06-06 13:41:52 UTC (rev 7473)
@@ -53,10 +53,12 @@
 #          Check for required packages 		      #
 #=====================================================#
 m4_define([gtk_minimum_version], [2.16.0])
-m4_define([glib_minimum_version], [2.16.0]) 
+m4_define([glib_minimum_version], [2.16.0])
+m4_define([gstreamer_minimum_version], [0.10.11])
+
 m4_define([dbus_minimum_version], [0.60])
 m4_define([dbus_glib_minimum_version], [0.70])
-m4_define([gstreamer_minimum_version], [0.10.11])
+
 m4_define([libxfcegui4_minimum_version],[4.6.0])
 m4_define([libxfce4util_minimum_version],[4.6.0])
 

Modified: parole/trunk/data/interfaces/parole.ui
===================================================================
--- parole/trunk/data/interfaces/parole.ui	2009-06-06 13:18:48 UTC (rev 7472)
+++ parole/trunk/data/interfaces/parole.ui	2009-06-06 13:41:52 UTC (rev 7473)
@@ -4,7 +4,7 @@
   <!-- interface-naming-policy project-wide -->
   <object class="GtkWindow" id="main-window">
     <property name="window_position">center</property>
-    <property name="default_width">680</property>
+    <property name="default_width">720</property>
     <property name="default_height">440</property>
     <child>
       <object class="GtkVBox" id="vbox1">
@@ -112,7 +112,6 @@
               <object class="GtkTreeView" id="treeview">
                 <property name="can_focus">True</property>
                 <property name="headers_visible">False</property>
-                <property name="headers_clickable">False</property>
                 <property name="enable_search">False</property>
               </object>
               <packing>
@@ -121,374 +120,560 @@
               </packing>
             </child>
             <child>
-              <object class="GtkNotebook" id="notebook">
+              <object class="GtkHBox" id="hbox2">
                 <property name="visible">True</property>
-                <property name="show_tabs">False</property>
-                <property name="scrollable">True</property>
-                <property name="group_id">0</property>
                 <child>
-                  <object class="GtkHBox" id="playerbox">
+                  <object class="GtkNotebook" id="notebook">
                     <property name="visible">True</property>
+                    <property name="show_tabs">False</property>
+                    <property name="scrollable">True</property>
+                    <property name="group_id">0</property>
                     <child>
                       <object class="GtkVBox" id="vbox3">
                         <property name="visible">True</property>
                         <property name="orientation">vertical</property>
+                        <property name="spacing">5</property>
                         <child>
-                          <object class="GtkHBox" id="output">
+                          <object class="GtkHPaned" id="hpaned1">
                             <property name="visible">True</property>
+                            <property name="can_focus">True</property>
                             <child>
-                              <placeholder/>
-                            </child>
-                          </object>
-                          <packing>
-                            <property name="position">0</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkVBox" id="vbox4">
-                            <property name="visible">True</property>
-                            <property name="orientation">vertical</property>
-                            <property name="spacing">5</property>
-                            <child>
-                              <object class="GtkHScale" id="scale">
+                              <object class="GtkVBox" id="vbox8">
                                 <property name="visible">True</property>
-                                <property name="sensitive">False</property>
-                                <property name="can_focus">True</property>
-                                <property name="draw_value">False</property>
-                              </object>
-                              <packing>
-                                <property name="position">0</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkHBox" id="hbox2">
-                                <property name="visible">True</property>
-                                <property name="spacing">5</property>
+                                <property name="orientation">vertical</property>
                                 <child>
-                                  <object class="GtkButton" id="back">
+                                  <object class="GtkHBox" id="output">
                                     <property name="visible">True</property>
-                                    <property name="sensitive">False</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="receives_default">True</property>
-                                    <property name="image">image6</property>
-                                    <property name="relief">none</property>
-                                    <property name="focus_on_click">False</property>
+                                    <child>
+                                      <placeholder/>
+                                    </child>
                                   </object>
                                   <packing>
-                                    <property name="expand">False</property>
                                     <property name="position">0</property>
                                   </packing>
                                 </child>
                                 <child>
-                                  <object class="GtkButton" id="stop">
+                                  <object class="GtkVBox" id="vbox4">
                                     <property name="visible">True</property>
-                                    <property name="sensitive">False</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="receives_default">True</property>
-                                    <property name="image">image7</property>
-                                    <property name="relief">none</property>
-                                    <property name="focus_on_click">False</property>
-                                    <accelerator key="s" signal="clicked"/>
+                                    <property name="orientation">vertical</property>
+                                    <property name="spacing">5</property>
+                                    <child>
+                                      <object class="GtkHScale" id="scale">
+                                        <property name="visible">True</property>
+                                        <property name="sensitive">False</property>
+                                        <property name="can_focus">True</property>
+                                        <property name="draw_value">False</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="position">0</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkHBox" id="hbox7">
+                                        <property name="visible">True</property>
+                                        <child>
+                                          <object class="GtkVBox" id="vbox6">
+                                            <property name="visible">True</property>
+                                            <property name="orientation">vertical</property>
+                                            <property name="spacing">5</property>
+                                            <child>
+                                              <object class="GtkHBox" id="hbox6">
+                                                <property name="visible">True</property>
+                                                <property name="spacing">5</property>
+                                                <child>
+                                                  <object class="GtkButton" id="back">
+                                                    <property name="visible">True</property>
+                                                    <property name="sensitive">False</property>
+                                                    <property name="can_focus">True</property>
+                                                    <property name="receives_default">True</property>
+                                                    <property name="image">image6</property>
+                                                    <property name="relief">none</property>
+                                                    <property name="focus_on_click">False</property>
+                                                  </object>
+                                                  <packing>
+                                                    <property name="expand">False</property>
+                                                    <property name="position">0</property>
+                                                  </packing>
+                                                </child>
+                                                <child>
+                                                  <object class="GtkButton" id="stop">
+                                                    <property name="visible">True</property>
+                                                    <property name="sensitive">False</property>
+                                                    <property name="can_focus">True</property>
+                                                    <property name="receives_default">True</property>
+                                                    <property name="image">image7</property>
+                                                    <property name="relief">none</property>
+                                                    <property name="focus_on_click">False</property>
+                                                    <accelerator key="s" signal="clicked"/>
+                                                  </object>
+                                                  <packing>
+                                                    <property name="expand">False</property>
+                                                    <property name="position">1</property>
+                                                  </packing>
+                                                </child>
+                                                <child>
+                                                  <object class="GtkButton" id="play-pause">
+                                                    <property name="visible">True</property>
+                                                    <property name="sensitive">False</property>
+                                                    <property name="can_focus">True</property>
+                                                    <property name="receives_default">True</property>
+                                                    <property name="image">image8</property>
+                                                    <property name="relief">none</property>
+                                                    <property name="focus_on_click">False</property>
+                                                    <accelerator key="space" signal="activate"/>
+                                                  </object>
+                                                  <packing>
+                                                    <property name="expand">False</property>
+                                                    <property name="position">2</property>
+                                                  </packing>
+                                                </child>
+                                                <child>
+                                                  <object class="GtkButton" id="forward">
+                                                    <property name="visible">True</property>
+                                                    <property name="sensitive">False</property>
+                                                    <property name="can_focus">True</property>
+                                                    <property name="receives_default">True</property>
+                                                    <property name="image">image9</property>
+                                                    <property name="relief">none</property>
+                                                    <property name="focus_on_click">False</property>
+                                                  </object>
+                                                  <packing>
+                                                    <property name="expand">False</property>
+                                                    <property name="position">3</property>
+                                                  </packing>
+                                                </child>
+                                                <child>
+                                                  <object class="GtkHBox" id="hbox8">
+                                                    <property name="visible">True</property>
+                                                    <property name="spacing">5</property>
+                                                    <child>
+                                                      <object class="GtkImage" id="volume-image">
+                                                        <property name="visible">True</property>
+                                                        <property name="stock">gtk-missing-image</property>
+                                                      </object>
+                                                      <packing>
+                                                        <property name="expand">False</property>
+                                                        <property name="position">0</property>
+                                                      </packing>
+                                                    </child>
+                                                    <child>
+                                                      <object class="GtkHScale" id="volume">
+                                                        <property name="width_request">100</property>
+                                                        <property name="height_request">10</property>
+                                                        <property name="visible">True</property>
+                                                        <property name="can_focus">True</property>
+                                                        <property name="show_fill_level">True</property>
+                                                        <property name="draw_value">False</property>
+                                                      </object>
+                                                      <packing>
+                                                        <property name="expand">False</property>
+                                                        <property name="position">1</property>
+                                                      </packing>
+                                                    </child>
+                                                  </object>
+                                                  <packing>
+                                                    <property name="padding">30</property>
+                                                    <property name="pack_type">end</property>
+                                                    <property name="position">4</property>
+                                                  </packing>
+                                                </child>
+                                              </object>
+                                              <packing>
+                                                <property name="position">0</property>
+                                              </packing>
+                                            </child>
+                                          </object>
+                                          <packing>
+                                            <property name="position">0</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <object class="GtkButton" id="show-hide-list">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">True</property>
+                                            <property name="receives_default">True</property>
+                                            <property name="image">image18</property>
+                                          </object>
+                                          <packing>
+                                            <property name="expand">False</property>
+                                            <property name="fill">False</property>
+                                            <property name="pack_type">end</property>
+                                            <property name="position">1</property>
+                                          </packing>
+                                        </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">1</property>
                                   </packing>
                                 </child>
+                              </object>
+                              <packing>
+                                <property name="resize">True</property>
+                                <property name="shrink">False</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkVBox" id="list-box">
+                                <property name="visible">True</property>
+                                <property name="orientation">vertical</property>
                                 <child>
-                                  <object class="GtkButton" id="play-pause">
+                                  <object class="GtkScrolledWindow" id="scrolledwindow1">
                                     <property name="visible">True</property>
-                                    <property name="sensitive">False</property>
                                     <property name="can_focus">True</property>
-                                    <property name="receives_default">True</property>
-                                    <property name="image">image8</property>
-                                    <property name="relief">none</property>
-                                    <property name="focus_on_click">False</property>
+                                    <property name="hscrollbar_policy">automatic</property>
+                                    <property name="vscrollbar_policy">automatic</property>
+                                    <child>
+                                      <object class="GtkTreeView" id="media-list">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">True</property>
+                                        <property name="headers_visible">False</property>
+                                        <property name="show_expanders">False</property>
+                                      </object>
+                                    </child>
                                   </object>
                                   <packing>
-                                    <property name="expand">False</property>
-                                    <property name="position">2</property>
+                                    <property name="position">0</property>
                                   </packing>
                                 </child>
                                 <child>
-                                  <object class="GtkButton" id="forward">
+                                  <object class="GtkHBox" id="hbox3">
                                     <property name="visible">True</property>
-                                    <property name="sensitive">False</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="receives_default">True</property>
-                                    <property name="image">image9</property>
-                                    <property name="relief">none</property>
-                                    <property name="focus_on_click">False</property>
+                                    <property name="homogeneous">True</property>
+                                    <child>
+                                      <object class="GtkButton" id="add-media">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">True</property>
+                                        <property name="receives_default">True</property>
+                                        <property name="image">image1</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="position">0</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkButton" id="remove-media">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">True</property>
+                                        <property name="receives_default">True</property>
+                                        <property name="image">image2</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="position">1</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkButton" id="media-up">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">True</property>
+                                        <property name="receives_default">True</property>
+                                        <property name="image">image3</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="position">2</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkButton" id="media-down">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">True</property>
+                                        <property name="receives_default">True</property>
+                                        <property name="image">image4</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="position">3</property>
+                                      </packing>
+                                    </child>
                                   </object>
                                   <packing>
                                     <property name="expand">False</property>
-                                    <property name="position">3</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">1</property>
                                   </packing>
                                 </child>
-                                <child>
-                                  <placeholder/>
-                                </child>
                               </object>
                               <packing>
-                                <property name="position">1</property>
+                                <property name="resize">False</property>
+                                <property name="shrink">False</property>
                               </packing>
                             </child>
                           </object>
                           <packing>
-                            <property name="expand">False</property>
-                            <property name="position">1</property>
+                            <property name="position">0</property>
                           </packing>
                         </child>
                       </object>
-                      <packing>
-                        <property name="position">0</property>
-                      </packing>
                     </child>
-                    <child>
-                      <object class="GtkVSeparator" id="vseparator2">
+                    <child type="tab">
+                      <object class="GtkLabel" id="Player">
                         <property name="visible">True</property>
-                        <property name="orientation">vertical</property>
+                        <property name="label" translatable="yes">Media player</property>
                       </object>
                       <packing>
-                        <property name="expand">False</property>
-                        <property name="position">1</property>
+                        <property name="tab_fill">False</property>
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkVBox" id="list-box">
+                      <object class="GtkVBox" id="converter-box">
                         <property name="visible">True</property>
                         <property name="orientation">vertical</property>
                         <child>
-                          <object class="GtkScrolledWindow" id="scrolledwindow1">
+                          <object class="GtkLabel" id="label1">
                             <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="hscrollbar_policy">automatic</property>
-                            <property name="vscrollbar_policy">automatic</property>
-                            <child>
-                              <object class="GtkTreeView" id="media-list">
-                                <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="headers_visible">False</property>
-                                <property name="show_expanders">False</property>
-                              </object>
-                            </child>
+                            <property name="label" translatable="yes">Nothing yet.</property>
                           </object>
                           <packing>
                             <property name="position">0</property>
                           </packing>
                         </child>
+                      </object>
+                      <packing>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                    <child type="tab">
+                      <object class="GtkLabel" id="label2">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">Audio converter</property>
+                      </object>
+                      <packing>
+                        <property name="position">1</property>
+                        <property name="tab_fill">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkVBox" id="recorder-box">
+                        <property name="visible">True</property>
+                        <property name="orientation">vertical</property>
                         <child>
-                          <object class="GtkHBox" id="hbox3">
+                          <object class="GtkLabel" id="label4">
                             <property name="visible">True</property>
-                            <child>
-                              <object class="GtkButton" id="add-media">
-                                <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="receives_default">True</property>
-                                <property name="image">image1</property>
-                              </object>
-                              <packing>
-                                <property name="expand">False</property>
-                                <property name="position">0</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkButton" id="remove-media">
-                                <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="receives_default">True</property>
-                                <property name="image">image2</property>
-                              </object>
-                              <packing>
-                                <property name="expand">False</property>
-                                <property name="position">1</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkButton" id="media-up">
-                                <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="receives_default">True</property>
-                                <property name="image">image3</property>
-                              </object>
-                              <packing>
-                                <property name="expand">False</property>
-                                <property name="position">2</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkButton" id="media-down">
-                                <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="receives_default">True</property>
-                                <property name="image">image4</property>
-                              </object>
-                              <packing>
-                                <property name="expand">False</property>
-                                <property name="position">3</property>
-                              </packing>
-                            </child>
+                            <property name="label" translatable="yes">Nothing yet.</property>
                           </object>
                           <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">False</property>
-                            <property name="position">1</property>
+                            <property name="position">0</property>
                           </packing>
                         </child>
                       </object>
                       <packing>
-                        <property name="expand">False</property>
                         <property name="position">2</property>
                       </packing>
                     </child>
-                  </object>
-                </child>
-                <child type="tab">
-                  <object class="GtkLabel" id="Player">
-                    <property name="visible">True</property>
-                    <property name="label" translatable="yes">Media player</property>
-                  </object>
-                  <packing>
-                    <property name="tab_fill">False</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkVBox" id="converter-box">
-                    <property name="visible">True</property>
-                    <property name="orientation">vertical</property>
-                    <child>
-                      <object class="GtkLabel" id="label1">
+                    <child type="tab">
+                      <object class="GtkLabel" id="label3">
                         <property name="visible">True</property>
-                        <property name="label" translatable="yes">Nothing yet.</property>
+                        <property name="label" translatable="yes">Audio recorder</property>
                       </object>
                       <packing>
-                        <property name="position">0</property>
+                        <property name="position">2</property>
+                        <property name="tab_fill">False</property>
                       </packing>
                     </child>
-                  </object>
-                  <packing>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-                <child type="tab">
-                  <object class="GtkLabel" id="label2">
-                    <property name="visible">True</property>
-                    <property name="label" translatable="yes">Audio converter</property>
-                  </object>
-                  <packing>
-                    <property name="position">1</property>
-                    <property name="tab_fill">False</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkVBox" id="recorder-box">
-                    <property name="visible">True</property>
-                    <property name="orientation">vertical</property>
                     <child>
-                      <object class="GtkLabel" id="label4">
+                      <object class="GtkVBox" id="albums-box">
                         <property name="visible">True</property>
-                        <property name="label" translatable="yes">Nothing yet.</property>
+                        <property name="orientation">vertical</property>
+                        <child>
+                          <object class="GtkLabel" id="label5">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">Nothing yet.</property>
+                          </object>
+                          <packing>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
                       </object>
                       <packing>
-                        <property name="position">0</property>
+                        <property name="position">3</property>
                       </packing>
                     </child>
-                  </object>
-                  <packing>
-                    <property name="position">2</property>
-                  </packing>
-                </child>
-                <child type="tab">
-                  <object class="GtkLabel" id="label3">
-                    <property name="visible">True</property>
-                    <property name="label" translatable="yes">Audio recorder</property>
-                  </object>
-                  <packing>
-                    <property name="position">2</property>
-                    <property name="tab_fill">False</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkVBox" id="albums-box">
-                    <property name="visible">True</property>
-                    <property name="orientation">vertical</property>
-                    <child>
-                      <object class="GtkLabel" id="label5">
+                    <child type="tab">
+                      <object class="GtkLabel" id="album">
                         <property name="visible">True</property>
-                        <property name="label" translatable="yes">Nothing yet.</property>
+                        <property name="label" translatable="yes">Albums</property>
                       </object>
                       <packing>
-                        <property name="position">0</property>
+                        <property name="position">3</property>
+                        <property name="tab_fill">False</property>
                       </packing>
                     </child>
-                  </object>
-                  <packing>
-                    <property name="position">3</property>
-                  </packing>
-                </child>
-                <child type="tab">
-                  <object class="GtkLabel" id="album">
-                    <property name="visible">True</property>
-                    <property name="label" translatable="yes">Albums</property>
-                  </object>
-                  <packing>
-                    <property name="position">3</property>
-                    <property name="tab_fill">False</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkNotebook" id="notebook1">
-                    <property name="visible">True</property>
-                    <property name="show_tabs">False</property>
-                    <property name="scrollable">True</property>
-                    <property name="group_id">0</property>
                     <child>
-                      <object class="GtkHBox" id="playerbox1">
+                      <object class="GtkNotebook" id="notebook1">
                         <property name="visible">True</property>
+                        <property name="show_tabs">False</property>
+                        <property name="scrollable">True</property>
+                        <property name="group_id">0</property>
                         <child>
-                          <object class="GtkVBox" id="vbox2">
+                          <object class="GtkHBox" id="playerbox1">
                             <property name="visible">True</property>
-                            <property name="orientation">vertical</property>
                             <child>
-                              <object class="GtkHBox" id="output1">
+                              <object class="GtkVBox" id="vbox5">
                                 <property name="visible">True</property>
+                                <property name="orientation">vertical</property>
                                 <child>
-                                  <placeholder/>
+                                  <object class="GtkHBox" id="output1">
+                                    <property name="visible">True</property>
+                                    <child>
+                                      <placeholder/>
+                                    </child>
+                                  </object>
+                                  <packing>
+                                    <property name="position">0</property>
+                                  </packing>
                                 </child>
+                                <child>
+                                  <object class="GtkVBox" id="vbox7">
+                                    <property name="visible">True</property>
+                                    <property name="orientation">vertical</property>
+                                    <property name="spacing">5</property>
+                                    <child>
+                                      <object class="GtkHScale" id="scale1">
+                                        <property name="visible">True</property>
+                                        <property name="sensitive">False</property>
+                                        <property name="can_focus">True</property>
+                                        <property name="draw_value">False</property>
+                                      </object>
+                                      <packing>
+                                        <property name="position">0</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkHBox" id="hbox4">
+                                        <property name="visible">True</property>
+                                        <property name="spacing">5</property>
+                                        <child>
+                                          <object class="GtkButton" id="back1">
+                                            <property name="visible">True</property>
+                                            <property name="sensitive">False</property>
+                                            <property name="can_focus">True</property>
+                                            <property name="receives_default">True</property>
+                                            <property name="image">image10</property>
+                                            <property name="relief">none</property>
+                                            <property name="focus_on_click">False</property>
+                                          </object>
+                                          <packing>
+                                            <property name="expand">False</property>
+                                            <property name="position">0</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <object class="GtkButton" id="stop1">
+                                            <property name="visible">True</property>
+                                            <property name="sensitive">False</property>
+                                            <property name="can_focus">True</property>
+                                            <property name="receives_default">True</property>
+                                            <property name="image">image11</property>
+                                            <property name="relief">none</property>
+                                            <property name="focus_on_click">False</property>
+                                            <accelerator key="s" signal="clicked"/>
+                                          </object>
+                                          <packing>
+                                            <property name="expand">False</property>
+                                            <property name="position">1</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <object class="GtkButton" id="play-pause1">
+                                            <property name="visible">True</property>
+                                            <property name="sensitive">False</property>
+                                            <property name="can_focus">True</property>
+                                            <property name="receives_default">True</property>
+                                            <property name="image">image12</property>
+                                            <property name="relief">none</property>
+                                            <property name="focus_on_click">False</property>
+                                          </object>
+                                          <packing>
+                                            <property name="expand">False</property>
+                                            <property name="position">2</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <object class="GtkButton" id="forward1">
+                                            <property name="visible">True</property>
+                                            <property name="sensitive">False</property>
+                                            <property name="can_focus">True</property>
+                                            <property name="receives_default">True</property>
+                                            <property name="image">image13</property>
+                                            <property name="relief">none</property>
+                                            <property name="focus_on_click">False</property>
+                                          </object>
+                                          <packing>
+                                            <property name="expand">False</property>
+                                            <property name="position">3</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <placeholder/>
+                                        </child>
+                                      </object>
+                                      <packing>
+                                        <property name="position">1</property>
+                                      </packing>
+                                    </child>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
                               </object>
                               <packing>
                                 <property name="position">0</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkVBox" id="vbox5">
+                              <object class="GtkVSeparator" id="vseparator1">
                                 <property name="visible">True</property>
                                 <property name="orientation">vertical</property>
-                                <property name="spacing">5</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkVBox" id="list-box1">
+                                <property name="visible">True</property>
+                                <property name="orientation">vertical</property>
                                 <child>
-                                  <object class="GtkHScale" id="scale1">
+                                  <object class="GtkScrolledWindow" id="scrolledwindow2">
                                     <property name="visible">True</property>
-                                    <property name="sensitive">False</property>
                                     <property name="can_focus">True</property>
-                                    <property name="draw_value">False</property>
+                                    <property name="hscrollbar_policy">automatic</property>
+                                    <property name="vscrollbar_policy">automatic</property>
+                                    <child>
+                                      <object class="GtkTreeView" id="media-list1">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">True</property>
+                                        <property name="headers_visible">False</property>
+                                        <property name="show_expanders">False</property>
+                                      </object>
+                                    </child>
                                   </object>
                                   <packing>
                                     <property name="position">0</property>
                                   </packing>
                                 </child>
                                 <child>
-                                  <object class="GtkHBox" id="hbox4">
+                                  <object class="GtkHBox" id="hbox5">
                                     <property name="visible">True</property>
-                                    <property name="spacing">5</property>
                                     <child>
-                                      <object class="GtkButton" id="back1">
+                                      <object class="GtkButton" id="add-media1">
                                         <property name="visible">True</property>
-                                        <property name="sensitive">False</property>
                                         <property name="can_focus">True</property>
                                         <property name="receives_default">True</property>
-                                        <property name="image">image10</property>
-                                        <property name="relief">none</property>
-                                        <property name="focus_on_click">False</property>
+                                        <property name="image">image14</property>
                                       </object>
                                       <packing>
                                         <property name="expand">False</property>
@@ -496,15 +681,11 @@
                                       </packing>
                                     </child>
                                     <child>
-                                      <object class="GtkButton" id="stop1">
+                                      <object class="GtkButton" id="remove-media1">
                                         <property name="visible">True</property>
-                                        <property name="sensitive">False</property>
                                         <property name="can_focus">True</property>
                                         <property name="receives_default">True</property>
-                                        <property name="image">image11</property>
-                                        <property name="relief">none</property>
-                                        <property name="focus_on_click">False</property>
-                                        <accelerator key="s" signal="clicked"/>
+                                        <property name="image">image15</property>
                                       </object>
                                       <packing>
                                         <property name="expand">False</property>
@@ -512,14 +693,11 @@
                                       </packing>
                                     </child>
                                     <child>
-                                      <object class="GtkButton" id="play-pause1">
+                                      <object class="GtkButton" id="media-up1">
                                         <property name="visible">True</property>
-                                        <property name="sensitive">False</property>
                                         <property name="can_focus">True</property>
                                         <property name="receives_default">True</property>
-                                        <property name="image">image12</property>
-                                        <property name="relief">none</property>
-                                        <property name="focus_on_click">False</property>
+                                        <property name="image">image16</property>
                                       </object>
                                       <packing>
                                         <property name="expand">False</property>
@@ -527,245 +705,144 @@
                                       </packing>
                                     </child>
                                     <child>
-                                      <object class="GtkButton" id="forward1">
+                                      <object class="GtkButton" id="media-down1">
                                         <property name="visible">True</property>
-                                        <property name="sensitive">False</property>
                                         <property name="can_focus">True</property>
                                         <property name="receives_default">True</property>
-                                        <property name="image">image13</property>
-                                        <property name="relief">none</property>
-                                        <property name="focus_on_click">False</property>
+                                        <property name="image">image17</property>
                                       </object>
                                       <packing>
                                         <property name="expand">False</property>
                                         <property name="position">3</property>
                                       </packing>
                                     </child>
-                                    <child>
-                                      <placeholder/>
-                                    </child>
                                   </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="position">1</property>
+                                <property name="position">2</property>
                               </packing>
                             </child>
                           </object>
-                          <packing>
-                            <property name="position">0</property>
-                          </packing>
                         </child>
-                        <child>
-                          <object class="GtkVSeparator" id="vseparator1">
+                        <child type="tab">
+                          <object class="GtkLabel" id="Player1">
                             <property name="visible">True</property>
-                            <property name="orientation">vertical</property>
+                            <property name="label" translatable="yes">Media player</property>
                           </object>
                           <packing>
-                            <property name="expand">False</property>
-                            <property name="position">1</property>
+                            <property name="tab_fill">False</property>
                           </packing>
                         </child>
                         <child>
-                          <object class="GtkVBox" id="list-box1">
+                          <object class="GtkVBox" id="converter-box1">
                             <property name="visible">True</property>
                             <property name="orientation">vertical</property>
                             <child>
-                              <object class="GtkScrolledWindow" id="scrolledwindow2">
+                              <object class="GtkLabel" id="label6">
                                 <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="hscrollbar_policy">automatic</property>
-                                <property name="vscrollbar_policy">automatic</property>
-                                <child>
-                                  <object class="GtkTreeView" id="media-list1">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="headers_visible">False</property>
-                                    <property name="show_expanders">False</property>
-                                  </object>
-                                </child>
+                                <property name="label" translatable="yes">Nothing yet.</property>
                               </object>
                               <packing>
                                 <property name="position">0</property>
                               </packing>
                             </child>
+                          </object>
+                          <packing>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                        <child type="tab">
+                          <object class="GtkLabel" id="label7">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">Audio converter</property>
+                          </object>
+                          <packing>
+                            <property name="position">1</property>
+                            <property name="tab_fill">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkVBox" id="recorder-box1">
+                            <property name="visible">True</property>
+                            <property name="orientation">vertical</property>
                             <child>
-                              <object class="GtkHBox" id="hbox5">
+                              <object class="GtkLabel" id="label8">
                                 <property name="visible">True</property>
-                                <child>
-                                  <object class="GtkButton" id="add-media1">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="receives_default">True</property>
-                                    <property name="image">image14</property>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="position">0</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <object class="GtkButton" id="remove-media1">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="receives_default">True</property>
-                                    <property name="image">image15</property>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="position">1</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <object class="GtkButton" id="media-up1">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="receives_default">True</property>
-                                    <property name="image">image16</property>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="position">2</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <object class="GtkButton" id="media-down1">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="receives_default">True</property>
-                                    <property name="image">image17</property>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">False</property>
-                                    <property name="position">3</property>
-                                  </packing>
-                                </child>
+                                <property name="label" translatable="yes">Nothing yet.</property>
                               </object>
                               <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">False</property>
-                                <property name="position">1</property>
+                                <property name="position">0</property>
                               </packing>
                             </child>
                           </object>
                           <packing>
-                            <property name="expand">False</property>
                             <property name="position">2</property>
                           </packing>
                         </child>
-                      </object>
-                    </child>
-                    <child type="tab">
-                      <object class="GtkLabel" id="Player1">
-                        <property name="visible">True</property>
-                        <property name="label" translatable="yes">Media player</property>
-                      </object>
-                      <packing>
-                        <property name="tab_fill">False</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkVBox" id="converter-box1">
-                        <property name="visible">True</property>
-                        <property name="orientation">vertical</property>
-                        <child>
-                          <object class="GtkLabel" id="label6">
+                        <child type="tab">
+                          <object class="GtkLabel" id="label9">
                             <property name="visible">True</property>
-                            <property name="label" translatable="yes">Nothing yet.</property>
+                            <property name="label" translatable="yes">Audio recorder</property>
                           </object>
                           <packing>
-                            <property name="position">0</property>
+                            <property name="position">2</property>
+                            <property name="tab_fill">False</property>
                           </packing>
                         </child>
-                      </object>
-                      <packing>
-                        <property name="position">1</property>
-                      </packing>
-                    </child>
-                    <child type="tab">
-                      <object class="GtkLabel" id="label7">
-                        <property name="visible">True</property>
-                        <property name="label" translatable="yes">Audio converter</property>
-                      </object>
-                      <packing>
-                        <property name="position">1</property>
-                        <property name="tab_fill">False</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkVBox" id="recorder-box1">
-                        <property name="visible">True</property>
-                        <property name="orientation">vertical</property>
                         <child>
-                          <object class="GtkLabel" id="label8">
+                          <object class="GtkVBox" id="albums-box1">
                             <property name="visible">True</property>
-                            <property name="label" translatable="yes">Nothing yet.</property>
+                            <property name="orientation">vertical</property>
+                            <child>
+                              <object class="GtkLabel" id="label10">
+                                <property name="visible">True</property>
+                                <property name="label" translatable="yes">Nothing yet.</property>
+                              </object>
+                              <packing>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
                           </object>
                           <packing>
-                            <property name="position">0</property>
+                            <property name="position">3</property>
                           </packing>
                         </child>
-                      </object>
-                      <packing>
-                        <property name="position">2</property>
-                      </packing>
-                    </child>
-                    <child type="tab">
-                      <object class="GtkLabel" id="label9">
-                        <property name="visible">True</property>
-                        <property name="label" translatable="yes">Audio recorder</property>
-                      </object>
-                      <packing>
-                        <property name="position">2</property>
-                        <property name="tab_fill">False</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkVBox" id="albums-box1">
-                        <property name="visible">True</property>
-                        <property name="orientation">vertical</property>
-                        <child>
-                          <object class="GtkLabel" id="label10">
+                        <child type="tab">
+                          <object class="GtkLabel" id="album1">
                             <property name="visible">True</property>
-                            <property name="label" translatable="yes">Nothing yet.</property>
+                            <property name="label" translatable="yes">Albums</property>
                           </object>
                           <packing>
-                            <property name="position">0</property>
+                            <property name="position">3</property>
+                            <property name="tab_fill">False</property>
                           </packing>
                         </child>
+                        <child>
+                          <placeholder/>
+                        </child>
+                        <child type="tab">
+                          <placeholder/>
+                        </child>
                       </object>
                       <packing>
-                        <property name="position">3</property>
+                        <property name="position">4</property>
                       </packing>
                     </child>
                     <child type="tab">
-                      <object class="GtkLabel" id="album1">
-                        <property name="visible">True</property>
-                        <property name="label" translatable="yes">Albums</property>
-                      </object>
-                      <packing>
-                        <property name="position">3</property>
-                        <property name="tab_fill">False</property>
-                      </packing>
-                    </child>
-                    <child>
                       <placeholder/>
                     </child>
-                    <child type="tab">
-                      <placeholder/>
-                    </child>
                   </object>
                   <packing>
-                    <property name="position">4</property>
+                    <property name="position">0</property>
                   </packing>
                 </child>
-                <child type="tab">
-                  <placeholder/>
-                </child>
               </object>
               <packing>
                 <property name="position">1</property>
@@ -793,73 +870,76 @@
       </object>
     </child>
   </object>
-  <object class="GtkAction" id="action1"/>
   <object class="GtkImage" id="image5">
     <property name="visible">True</property>
     <property name="stock">gtk-network</property>
   </object>
-  <object class="GtkImage" id="image6">
+  <object class="GtkImage" id="image10">
     <property name="visible">True</property>
     <property name="stock">gtk-media-previous</property>
   </object>
-  <object class="GtkImage" id="image7">
+  <object class="GtkImage" id="image11">
     <property name="visible">True</property>
     <property name="stock">gtk-media-stop</property>
   </object>
-  <object class="GtkImage" id="image8">
+  <object class="GtkImage" id="image12">
     <property name="visible">True</property>
     <property name="stock">gtk-media-play</property>
   </object>
-  <object class="GtkImage" id="image9">
+  <object class="GtkImage" id="image13">
     <property name="visible">True</property>
     <property name="stock">gtk-media-next</property>
   </object>
-  <object class="GtkImage" id="image1">
+  <object class="GtkImage" id="image14">
     <property name="visible">True</property>
     <property name="stock">gtk-add</property>
   </object>
-  <object class="GtkImage" id="image2">
+  <object class="GtkImage" id="image15">
     <property name="visible">True</property>
     <property name="stock">gtk-remove</property>
   </object>
-  <object class="GtkImage" id="image3">
+  <object class="GtkImage" id="image16">
     <property name="visible">True</property>
     <property name="stock">gtk-go-up</property>
   </object>
-  <object class="GtkImage" id="image4">
+  <object class="GtkImage" id="image17">
     <property name="visible">True</property>
     <property name="stock">gtk-go-down</property>
   </object>
-  <object class="GtkImage" id="image10">
+  <object class="GtkImage" id="image6">
     <property name="visible">True</property>
     <property name="stock">gtk-media-previous</property>
   </object>
-  <object class="GtkImage" id="image11">
+  <object class="GtkImage" id="image7">
     <property name="visible">True</property>
     <property name="stock">gtk-media-stop</property>
   </object>
-  <object class="GtkImage" id="image12">
+  <object class="GtkImage" id="image8">
     <property name="visible">True</property>
     <property name="stock">gtk-media-play</property>
   </object>
-  <object class="GtkImage" id="image13">
+  <object class="GtkImage" id="image9">
     <property name="visible">True</property>
     <property name="stock">gtk-media-next</property>
   </object>
-  <object class="GtkImage" id="image14">
+  <object class="GtkImage" id="image1">
     <property name="visible">True</property>
     <property name="stock">gtk-add</property>
   </object>
-  <object class="GtkImage" id="image15">
+  <object class="GtkImage" id="image2">
     <property name="visible">True</property>
     <property name="stock">gtk-remove</property>
   </object>
-  <object class="GtkImage" id="image16">
+  <object class="GtkImage" id="image3">
     <property name="visible">True</property>
     <property name="stock">gtk-go-up</property>
   </object>
-  <object class="GtkImage" id="image17">
+  <object class="GtkImage" id="image4">
     <property name="visible">True</property>
     <property name="stock">gtk-go-down</property>
   </object>
+  <object class="GtkImage" id="image18">
+    <property name="visible">True</property>
+    <property name="stock">gtk-go-back</property>
+  </object>
 </interface>

Modified: parole/trunk/po/POTFILES.in
===================================================================
--- parole/trunk/po/POTFILES.in	2009-06-06 13:18:48 UTC (rev 7472)
+++ parole/trunk/po/POTFILES.in	2009-06-06 13:41:52 UTC (rev 7473)
@@ -1,6 +1,7 @@
 data/interfaces/parole.ui
 data/parole-media-player.desktop.in
 src/gst.c
+src/builder.c
 src/mediachooser.c
 src/medialist.c
 src/player.c

Modified: parole/trunk/src/gst.c
===================================================================
--- parole/trunk/src/gst.c	2009-06-06 13:18:48 UTC (rev 7472)
+++ parole/trunk/src/gst.c	2009-06-06 13:41:52 UTC (rev 7473)
@@ -44,7 +44,7 @@
 (G_TYPE_INSTANCE_GET_PRIVATE ((o), PAROLE_TYPE_GST, ParoleGstPrivate))
 
 static void	parole_gst_play_file_internal 	(ParoleGst *gst);
-static void     parole_gst_change_state 		(ParoleGst *gst, 
+static void     parole_gst_change_state 	(ParoleGst *gst, 
 						 GstState new);
 
 struct ParoleGstPrivate
@@ -57,7 +57,7 @@
     GstState      state;
     GstState      target;
     
-    ParoleStream   *stream;
+    ParoleStream *stream;
     gulong	  tick_id;
     gboolean      seeking;
     
@@ -255,20 +255,21 @@
 parole_gst_expose_event (GtkWidget *widget, GdkEventExpose *ev)
 {
     ParoleGst *gst;
-    
+
     if ( ev && ev->count > 0 )
 	return TRUE;
 
     gst = PAROLE_GST (widget);
 
-    g_mutex_lock (gst->priv->lock);
     parole_gst_set_x_overlay (gst);
-    g_mutex_unlock (gst->priv->lock);
 
     if ( gst->priv->state < GST_STATE_PAUSED )
 	parole_gst_draw_logo (gst);
     else 
+    {
+	TRACE ("Exposing GST");
 	gst_x_overlay_expose (GST_X_OVERLAY (gst->priv->video_sink));
+    }
 	
     return TRUE;
 }
@@ -376,7 +377,7 @@
 {
     if ( gst->priv->state != new )
     {
-	TRACE ("State change %d", new);
+	TRACE ("State change new %i old %i pending %i", new, old, pending);
 	
 	gst->priv->state = new;
 
@@ -602,10 +603,15 @@
     
     if ( G_UNLIKELY (gst->priv->video_sink == NULL) )
     {
-	xfce_err (_("Unable to load xvimagesink GStreamer plugin"
-		    ", check your GStreamer installation"));
-		    
-	g_error ("xvimagesink load failed");
+	g_debug ("xvimagesink not found, trying to load ximagesink"); 
+	gst->priv->video_sink = gst_element_factory_make ("ximagesink", "video");
+	
+	if ( G_UNLIKELY (gst->priv->video_sink == NULL) )
+	{
+	    xfce_err (_("Unable to load video GStreamer plugin"
+		      ", check your GStreamer installation"));
+	    g_error ("ximagesink load failed");
+	}
     }
     
     gst->priv->vis_sink = gst_element_factory_make ("goom", "vis");
@@ -819,3 +825,20 @@
 	g_warning ("Failed to seek element");
     }
 }
+
+void parole_gst_set_volume (ParoleGst *gst, gdouble value)
+{
+    g_object_set (G_OBJECT (gst->priv->playbin),
+		  "volume", value,
+		  NULL);
+}
+						    
+gdouble	parole_gst_get_volume (ParoleGst *gst)
+{
+    gdouble volume;
+    
+    g_object_get (G_OBJECT (gst->priv->playbin),
+		  "volume", &volume,
+		  NULL);
+    return volume;
+}

Modified: parole/trunk/src/gst.h
===================================================================
--- parole/trunk/src/gst.h	2009-06-06 13:18:48 UTC (rev 7472)
+++ parole/trunk/src/gst.h	2009-06-06 13:41:52 UTC (rev 7473)
@@ -81,6 +81,11 @@
 void			parole_gst_seek		   (ParoleGst *gst,
 						    gdouble pos);
 
+void			parole_gst_set_volume      (ParoleGst *gst,
+						    gdouble value);
+						    
+gdouble			parole_gst_get_volume	   (ParoleGst *gst);
+
 G_END_DECLS
 
 #endif /* __PAROLE_GST_H */

Modified: parole/trunk/src/mediachooser.c
===================================================================
--- parole/trunk/src/mediachooser.c	2009-06-06 13:18:48 UTC (rev 7472)
+++ parole/trunk/src/mediachooser.c	2009-06-06 13:41:52 UTC (rev 7473)
@@ -399,7 +399,7 @@
     
     if ( folder )
     {
-	write_string_entry ("media-chooser-folder", folder);
+	parole_rc_write_entry_string ("media-chooser-folder", folder);
 	g_free (folder);
     }
 }
@@ -424,7 +424,7 @@
     
     gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), filter);
 
-    folder = read_string_entry ("media-chooser-folder");
+    folder = parole_rc_read_entry_string ("media-chooser-folder", NULL);
     
     if ( folder )
 	gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (chooser), folder);

Modified: parole/trunk/src/medialist.c
===================================================================
--- parole/trunk/src/medialist.c	2009-06-06 13:18:48 UTC (rev 7472)
+++ parole/trunk/src/medialist.c	2009-06-06 13:41:52 UTC (rev 7473)
@@ -45,6 +45,9 @@
     GtkWidget 	  	*view;
     GtkWidget		*box;
     
+    GtkWidget		*hide_show;
+    gboolean		 hidden;
+    
     GtkListStore	*store;
     ParoleMediaChooser 	*chooser;
 };
@@ -52,6 +55,7 @@
 enum
 {
     MEDIA_ACTIVATED,
+    MEDIA_CURSOR_CHANGED,
     LAST_SIGNAL
 };
 
@@ -131,6 +135,18 @@
 	
     gtk_list_store_remove (list->priv->store,
 			   &iter);
+
+    /*
+     * Returns the number of children that iter has. 
+     * As a special case, if iter is NULL, 
+     * then the number of toplevel nodes is returned. Gtk API doc.
+     */
+    if ( gtk_tree_model_iter_n_children (GTK_TREE_MODEL (list->priv->store), NULL) == 0 )
+	/*
+	 * Will emit the signal media_cursor_changed with FALSE because there is no any 
+	 * row remaining so the player can disable click on the play button.
+	 */
+	g_signal_emit (G_OBJECT (list), signals [MEDIA_CURSOR_CHANGED], 0, FALSE);
 }
 
 static void
@@ -187,7 +203,7 @@
     if ( !gtk_tree_path_prev (path) )
     {
 	/* Passing NULL as the last argument will cause this call to move 
-	 * the iter to the end of the list, Gtk API*/
+	 * the iter to the end of the list, Gtk API doc*/
 	gtk_list_store_move_before (GTK_LIST_STORE (list->priv->store), &iter, NULL);
     }
     else
@@ -216,6 +232,67 @@
 }
 
 static void
+parole_media_list_cursor_changed_cb (GtkTreeView *view, ParoleMediaList *list)
+{
+    GtkTreeSelection *sel;
+    GtkTreeIter iter;
+    
+    sel = gtk_tree_view_get_selection (view);
+    
+    if ( !gtk_tree_selection_get_selected (sel, NULL, &iter ) )
+    {
+	g_signal_emit (G_OBJECT (list), signals [MEDIA_CURSOR_CHANGED], 0, FALSE);
+    }
+    else
+    {
+	g_signal_emit (G_OBJECT (list), signals [MEDIA_CURSOR_CHANGED], 0, TRUE);
+    }
+}
+
+static void
+parole_media_list_clear_list (ParoleMediaList *list)
+{
+    gtk_list_store_clear (GTK_LIST_STORE (list->priv->store));
+}
+
+static void
+parole_media_list_show_menu (ParoleMediaList *list, guint button, guint activate_time)
+{
+    GtkWidget *menu, *mi;
+    
+    menu = gtk_menu_new ();
+    
+    mi = gtk_image_menu_item_new_from_stock (GTK_STOCK_CLEAR, NULL);
+    gtk_widget_set_sensitive (mi, TRUE);
+    gtk_widget_show (mi);
+    g_signal_connect_swapped (mi, "activate",
+                              G_CALLBACK (parole_media_list_clear_list), list);
+			      
+    gtk_menu_shell_append (GTK_MENU_SHELL (menu), mi);
+    
+    g_signal_connect_swapped (menu, "selection-done",
+                              G_CALLBACK (gtk_widget_destroy), menu);
+    
+    gtk_menu_popup (GTK_MENU (menu), 
+                    NULL, NULL,
+                    NULL, NULL,
+                    button, activate_time);
+}
+
+static gboolean
+parole_media_list_button_release_event (GtkWidget *widget, GdkEventButton *ev, ParoleMediaList *list)
+{
+    
+    if ( ev->button == 3 )
+    {
+	parole_media_list_show_menu (list, ev->button, ev->time);
+	return TRUE;
+    }
+    
+    return FALSE;
+}
+
+static void
 parole_media_list_finalize (GObject *object)
 {
     ParoleMediaList *list;
@@ -243,6 +320,15 @@
                       g_cclosure_marshal_VOID__POINTER,
                       G_TYPE_NONE, 1, G_TYPE_POINTER);
 
+    signals[MEDIA_CURSOR_CHANGED] = 
+        g_signal_new ("media-cursor-changed",
+                      PAROLE_TYPE_MEDIA_LIST,
+                      G_SIGNAL_RUN_LAST,
+                      G_STRUCT_OFFSET (ParoleMediaListClass, media_cursor_changed),
+                      NULL, NULL,
+                      g_cclosure_marshal_VOID__BOOLEAN,
+                      G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
+
     g_type_class_add_private (klass, sizeof (ParoleMediaListPrivate));
 }
 
@@ -275,17 +361,58 @@
     
     g_signal_connect (G_OBJECT (list->priv->view), "row_activated",
 		      G_CALLBACK (parole_media_list_row_activated), list);
+
+    g_signal_connect (G_OBJECT (list->priv->view), "cursor_changed",
+		      G_CALLBACK (parole_media_list_cursor_changed_cb), list);
     
+    g_signal_connect (G_OBJECT (list->priv->view), "button_release_event",
+		      G_CALLBACK (parole_media_list_button_release_event), list);
+    
     list->priv->store = list_store;
 }
 
 static void
+parole_media_show_or_hide (ParoleMediaList *list)
+{
+    GtkWidget *img;
+    
+    g_object_get (G_OBJECT (list->priv->hide_show),
+		  "image", &img,
+		  NULL);
+		  
+    if ( list->priv->hidden )
+    {
+	g_object_set (G_OBJECT (img),
+		      "stock", GTK_STOCK_GO_FORWARD,
+		      NULL);
+		      
+	list->priv->hidden = FALSE;
+	gtk_widget_show_all (list->priv->box);
+	gtk_widget_set_tooltip_text (GTK_WIDGET (list->priv->hide_show), _("Hide playlist"));
+    }
+    else
+    {
+	g_object_set (G_OBJECT (img),
+		      "stock", GTK_STOCK_GO_BACK,
+		      NULL);
+		      
+	gtk_widget_hide_all (list->priv->box);
+	gtk_widget_set_tooltip_text (GTK_WIDGET (list->priv->hide_show), _("Show playlist"));
+	
+	list->priv->hidden = TRUE;
+    }
+    g_object_unref (img);
+}
+
+static void
 parole_media_list_init (ParoleMediaList *list)
 {
     GtkBuilder *builder;
     
     list->priv = PAROLE_MEDIA_LIST_GET_PRIVATE (list);
     
+    list->priv->hidden = TRUE;
+    
     builder = parole_builder_new ();
     
     list->priv->view = GTK_WIDGET (gtk_builder_get_object (builder, "media-list"));
@@ -305,6 +432,14 @@
     g_signal_connect_swapped (gtk_builder_get_object (builder, "media-up"), "clicked",
 			      G_CALLBACK (parole_media_list_media_up_clicked_cb), list);
     
+    list->priv->hide_show = GTK_WIDGET (gtk_builder_get_object (builder, "show-hide-list"));
+    
+    parole_media_show_or_hide (list);
+    
+    g_signal_connect_swapped (G_OBJECT (list->priv->hide_show), "clicked",
+			      G_CALLBACK (parole_media_show_or_hide), list);
+		    
+
     list->priv->chooser = parole_media_chooser_new ();
     
     g_signal_connect (G_OBJECT (list->priv->chooser), "media_file_opened",
@@ -389,10 +524,18 @@
     }
 }
 
+/*
+ * Called by ParolePlay when going to full screen mode
+ */
 void parole_media_list_set_visible (ParoleMediaList *list, gboolean visible)
 {
     if ( visible )
-	gtk_widget_show_all (GTK_WIDGET (list->priv->box));
+    {
+	if ( !list->priv->hidden )
+	    gtk_widget_show_all (GTK_WIDGET (list->priv->box));
+    }
     else
+    {
 	gtk_widget_hide_all (GTK_WIDGET (list->priv->box));
+    }
 }

Modified: parole/trunk/src/medialist.h
===================================================================
--- parole/trunk/src/medialist.h	2009-06-06 13:18:48 UTC (rev 7472)
+++ parole/trunk/src/medialist.h	2009-06-06 13:41:52 UTC (rev 7473)
@@ -51,25 +51,28 @@
 {
     GObjectClass  		 parent_class;
     
-    void			(*media_activated)		 (ParoleMediaList *list,
-								  GtkTreeRowReference *row);
+    void			(*media_activated)		    (ParoleMediaList *list,
+								     GtkTreeRowReference *row);
+								  
+    void			(*media_cursor_changed)		    (ParoleMediaList *list,
+								     gboolean media_selected);
     
 } ParoleMediaListClass;
 
-GType        			 parole_media_list_get_type        (void) G_GNUC_CONST;
-ParoleMediaList       		*parole_media_list_new             (void);
+GType        			 parole_media_list_get_type         (void) G_GNUC_CONST;
+ParoleMediaList       		*parole_media_list_new              (void);
 
-GtkTreeRowReference		*parole_media_list_get_selected_row(ParoleMediaList *list);
+GtkTreeRowReference		*parole_media_list_get_selected_row (ParoleMediaList *list);
 
-GtkTreeRowReference             *parole_media_list_get_next_row    (ParoleMediaList *list,
-								  GtkTreeRowReference *row);
+GtkTreeRowReference             *parole_media_list_get_next_row     (ParoleMediaList *list,
+								     GtkTreeRowReference *row);
 
-void				 parole_media_list_set_row_pixbuf  (ParoleMediaList *list,
-								  GtkTreeRowReference *row,
-								  GdkPixbuf *pix);
+void				 parole_media_list_set_row_pixbuf   (ParoleMediaList *list,
+								     GtkTreeRowReference *row,
+								     GdkPixbuf *pix);
 								  
-void				 parole_media_list_set_visible 	 (ParoleMediaList *list,
-								  gboolean visible);
+void				 parole_media_list_set_visible 	    (ParoleMediaList *list,
+								     gboolean visible);
 
 G_END_DECLS
 

Modified: parole/trunk/src/player.c
===================================================================
--- parole/trunk/src/player.c	2009-06-06 13:18:48 UTC (rev 7472)
+++ parole/trunk/src/player.c	2009-06-06 13:41:52 UTC (rev 7473)
@@ -39,6 +39,7 @@
 #include "mediachooser.h"
 #include "sidebar.h"
 #include "statusbar.h"
+#include "rc-utils.h"
 #include "enum-glib.h"
 #include "enum-gtypes.h"
 #include "debug.h"
@@ -55,11 +56,14 @@
     GtkWidget		*stop;
     GtkWidget		*range;
     
+    GtkWidget		*volume;
+    GtkWidget		*volume_image;
+    
     gboolean             exit;
     
     gboolean		 full_screen;
     
-    gboolean             playing;
+    ParoleMediaState     state;
     gboolean		 user_seeking;
     gboolean             internal_range_change;
     gboolean		 buffering;
@@ -67,19 +71,29 @@
     GtkTreeRowReference *row;
     
     ParoleMediaList	*list;
-    //ParoleSidebar         *sidebar;
-    ParoleStatusbar       *status;
+    ParoleSidebar       *sidebar;
+    ParoleStatusbar     *status;
 };
 
 G_DEFINE_TYPE (ParolePlayer, parole_player, G_TYPE_OBJECT)
 
 static void
+parole_player_change_range_value (ParolePlayer *player, gdouble value)
+{
+    player->priv->internal_range_change = TRUE;
+    gtk_range_set_value (GTK_RANGE (player->priv->range), value);
+    player->priv->internal_range_change = FALSE;
+}
+
+static void
 parole_player_media_activated_cb (ParoleMediaList *list, GtkTreeRowReference *row, ParolePlayer *player)
 {
     ParoleMediaFile *file;
     GtkTreeIter iter;
     GtkTreeModel *model;
 
+    parole_player_change_range_value (player, 0);
+
     if ( player->priv->row )
     {
 	parole_media_list_set_row_pixbuf (player->priv->list, player->priv->row, NULL);
@@ -105,15 +119,23 @@
 }
 
 static void
+parole_player_media_cursor_changed_cb (ParoleMediaList *list, gboolean media_selected, ParolePlayer *player)
+{
+    if (!player->priv->state != PAROLE_MEDIA_STATE_PLAYING)
+	gtk_widget_set_sensitive (player->priv->play_pause, media_selected);
+	
+}
+
+static void
 parole_player_media_progressed_cb (ParoleGst *gst, const ParoleStream *stream, gdouble value, ParolePlayer *player)
 {
     if ( !player->priv->user_seeking && value > 0)
     {
-	player->priv->internal_range_change = TRUE;
-	gtk_range_set_value (GTK_RANGE (player->priv->range), value);
-	player->priv->internal_range_change = FALSE;
+	parole_player_change_range_value (player, value);
     }
-    parole_statusbar_set_position (player->priv->status, player->priv->playing, value);
+    parole_statusbar_set_position (player->priv->status, 
+				   player->priv->state == PAROLE_MEDIA_STATE_PLAYING,
+				   value);
 }
 
 static void
@@ -137,7 +159,7 @@
     gdouble duration;
     gboolean seekable;
     
-    player->priv->playing = TRUE;
+    player->priv->state = PAROLE_MEDIA_STATE_PLAYING;
     pix = xfce_themed_icon_load ("gtk-media-play-ltr", 16);
     
     parole_media_list_set_row_pixbuf (player->priv->list, player->priv->row, pix);
@@ -163,6 +185,7 @@
     {
 	parole_statusbar_set_text (player->priv->status, _("Playing"));
 	gtk_widget_set_tooltip_text (GTK_WIDGET (player->priv->range), _("Media stream is not seekable"));
+	parole_player_change_range_value (player, 0);
     }
 
     if ( pix )
@@ -174,7 +197,8 @@
 {
     GdkPixbuf *pix = NULL;
     
-    player->priv->playing = FALSE;
+    player->priv->state = PAROLE_MEDIA_STATE_PAUSED;
+    
     if ( !player->priv->buffering )
 	parole_statusbar_set_text (player->priv->status, _("Paused"));
 	
@@ -205,16 +229,15 @@
 {
     TRACE ("Player stopped");
     
-    player->priv->playing = FALSE;
+    player->priv->state = PAROLE_MEDIA_STATE_STOPPED;
     
     parole_statusbar_set_text (player->priv->status, _("Stopped"));
     
     gtk_widget_set_sensitive (player->priv->play_pause, FALSE);
     gtk_widget_set_sensitive (player->priv->stop, FALSE);
-    player->priv->internal_range_change = TRUE;
+
     gtk_widget_set_sensitive (player->priv->range, FALSE);
-    gtk_range_set_value (GTK_RANGE (player->priv->range), 0);
-    player->priv->internal_range_change = FALSE;
+    parole_player_change_range_value (player, 0);
 
     parole_player_set_playpause_widget_image (player->priv->play_pause, GTK_STOCK_MEDIA_PLAY);
     
@@ -227,6 +250,19 @@
 }
 
 static void
+parole_player_play_selected_row (ParolePlayer *player)
+{
+    GtkTreeRowReference *row;
+    
+    row = parole_media_list_get_selected_row (player->priv->list);
+    
+    if ( row )
+    {
+	parole_player_media_activated_cb (player->priv->list, row, player);
+    }
+}
+
+static void
 parole_player_play_next (ParolePlayer *player)
 {
     GtkTreeRowReference *row;
@@ -280,10 +316,12 @@
 static void
 parole_player_play_pause_clicked (ParolePlayer *player)
 {
-    if ( player->priv->playing )
+    if ( player->priv->state == PAROLE_MEDIA_STATE_PLAYING )
 	parole_gst_pause (PAROLE_GST (player->priv->gst));
+    else if ( player->priv->state == PAROLE_MEDIA_STATE_PAUSED )
+	parole_gst_resume (PAROLE_GST (player->priv->gst));
     else
-	parole_gst_resume (PAROLE_GST (player->priv->gst));
+	parole_player_play_selected_row (player);
 }
 
 static void
@@ -347,7 +385,7 @@
     {
 	player->priv->buffering = TRUE;
 	parole_statusbar_set_buffering (player->priv->status, percentage);
-	if ( player->priv->playing )
+	if ( player->priv->state == PAROLE_MEDIA_STATE_PLAYING )
 	    parole_gst_pause (PAROLE_GST (player->priv->gst));
     }
 }
@@ -389,14 +427,14 @@
     if ( player->priv->full_screen )
     {
 	parole_media_list_set_visible (player->priv->list, TRUE);
-	//parole_sidebar_set_visible (player->priv->sidebar, TRUE);
+	parole_sidebar_set_visible (player->priv->sidebar, TRUE);
 	player->priv->full_screen = FALSE;
 	gtk_window_unfullscreen (GTK_WINDOW (player->priv->window));
     }
     else
     {
 	parole_media_list_set_visible (player->priv->list, FALSE);
-	//parole_sidebar_set_visible (player->priv->sidebar, FALSE);
+	parole_sidebar_set_visible (player->priv->sidebar, FALSE);
 	player->priv->full_screen = TRUE;
 	gtk_window_fullscreen (GTK_WINDOW (player->priv->window));
     }
@@ -412,8 +450,9 @@
     
     /*Play menu item
      */
-    mi = gtk_image_menu_item_new_from_stock (player->priv->playing ? GTK_STOCK_MEDIA_PAUSE:
-					     GTK_STOCK_MEDIA_PLAY, NULL);
+    mi = gtk_image_menu_item_new_from_stock (player->priv->state == PAROLE_MEDIA_STATE_PLAYING 
+					     ? GTK_STOCK_MEDIA_PAUSE : GTK_STOCK_MEDIA_PLAY, 
+					     NULL);
 					     
     g_object_get (G_OBJECT (player->priv->play_pause),
 		  "sensitive", &sensitive,
@@ -429,7 +468,7 @@
      */
     mi = gtk_image_menu_item_new_from_stock (GTK_STOCK_MEDIA_STOP, NULL);
 					     
-    gtk_widget_set_sensitive (mi, player->priv->playing);
+    gtk_widget_set_sensitive (mi, player->priv->state == PAROLE_MEDIA_STATE_PLAYING);
     gtk_widget_show (mi);
     g_signal_connect_swapped (mi, "activate",
 			      G_CALLBACK (parole_player_stop_menu_item_activate), player);
@@ -439,7 +478,7 @@
      */
     mi = gtk_image_menu_item_new_from_stock (GTK_STOCK_MEDIA_NEXT, NULL);
 					     
-    gtk_widget_set_sensitive (mi, player->priv->playing);
+    gtk_widget_set_sensitive (mi, player->priv->state == PAROLE_MEDIA_STATE_PLAYING);
     gtk_widget_show (mi);
     g_signal_connect_swapped (mi, "activate",
 			      G_CALLBACK (parole_player_next_menu_item_activate), player);
@@ -449,16 +488,12 @@
      */
     mi = gtk_image_menu_item_new_from_stock (GTK_STOCK_MEDIA_PREVIOUS, NULL);
 					     
-    gtk_widget_set_sensitive (mi, player->priv->playing);
+    gtk_widget_set_sensitive (mi, player->priv->state == PAROLE_MEDIA_STATE_PLAYING);
     gtk_widget_show (mi);
     g_signal_connect_swapped (mi, "activate",
 			      G_CALLBACK (parole_player_previous_menu_item_activate), player);
     gtk_menu_shell_append (GTK_MENU_SHELL (menu), mi);
     
-
-    g_signal_connect_swapped (menu, "selection-done",
-			      G_CALLBACK (gtk_widget_destroy), menu);
-    
     mi = gtk_separator_menu_item_new ();
     gtk_widget_show (mi);
     gtk_menu_shell_append (GTK_MENU_SHELL (menu), mi);
@@ -477,7 +512,6 @@
     g_signal_connect_swapped (menu, "selection-done",
 			      G_CALLBACK (gtk_widget_destroy), menu);
     
-    
     gtk_menu_popup (GTK_MENU (menu), 
 		    NULL, NULL,
 		    NULL, NULL,
@@ -540,7 +574,48 @@
     parole_player_destroy_cb (NULL, player);
 }
 
+static const gchar *
+parole_player_get_volume_icon_name (gdouble value)
+{
+    if ( value == 1. )
+	return "audio-volume-high";
+    else if ( value > 0.5 )
+	return "audio-volume-medium";
+    else if ( value > 0 )
+	return "audio-volume-low";
+    
+    return "audio-volume-muted";
+}
+
 static void
+parole_player_change_volume (ParolePlayer *player, gdouble value)
+{
+    GdkPixbuf *icon;
+
+    parole_gst_set_volume (PAROLE_GST (player->priv->gst), value);
+    
+    icon = xfce_themed_icon_load (parole_player_get_volume_icon_name (value), 
+				  player->priv->volume_image->allocation.width);
+    
+    if ( icon )
+    {
+	g_object_set (G_OBJECT (player->priv->volume_image),
+		      "pixbuf", icon,
+		      NULL);
+	gdk_pixbuf_unref (icon);
+    }
+}
+
+static void
+parole_player_volume_value_changed_cb (ParolePlayer *player)
+{
+    gdouble value;
+    value = gtk_range_get_value (GTK_RANGE (player->priv->volume));
+    parole_player_change_volume (player, value);
+    parole_rc_write_entry_int ("volume", (gint)(value * 100));
+}
+
+static void
 parole_player_finalize (GObject *object)
 {
     ParolePlayer *player;
@@ -551,7 +626,7 @@
 
     g_object_unref (player->priv->list);
     g_object_unref (player->priv->gst);
-    //g_object_unref (player->priv->sidebar);
+    g_object_unref (player->priv->sidebar);
     g_object_unref (player->priv->status);
 
     G_OBJECT_CLASS (parole_player_parent_class)->finalize (object);
@@ -584,10 +659,10 @@
      */
     g_object_ref (player->priv->gst);
     
-    //player->priv->sidebar = parole_sidebar_new ();
+    player->priv->sidebar = parole_sidebar_new ();
     player->priv->status = parole_statusbar_new ();
     
-    player->priv->playing = FALSE;
+    player->priv->state = PAROLE_MEDIA_STATE_STOPPED;
     player->priv->user_seeking = FALSE;
     player->priv->internal_range_change = FALSE;
     player->priv->exit = FALSE;
@@ -642,6 +717,20 @@
 			      G_CALLBACK (parole_player_play_pause_clicked), player);
 			      
     /*
+     * Volume range and volume image
+     */
+    
+    player->priv->volume = GTK_WIDGET (gtk_builder_get_object (builder, "volume"));
+    player->priv->volume_image = GTK_WIDGET (gtk_builder_get_object (builder, "volume-image"));
+    gtk_range_set_range (GTK_RANGE (player->priv->volume), 0, 1.0);
+    
+    g_signal_connect_swapped (G_OBJECT (player->priv->volume), "value_changed",
+			      G_CALLBACK (parole_player_volume_value_changed_cb), player);
+    gtk_range_set_value (GTK_RANGE (player->priv->volume), (gdouble) (parole_rc_read_entry_int ("volume", 100)/100.));
+    parole_player_change_volume (player, (gdouble) (parole_rc_read_entry_int ("volume", 100)/100.));
+    
+
+    /*
      * Connect to the menu items from the menu bar
      */
     g_signal_connect_swapped (gtk_builder_get_object (builder, "menu-open"), "activate",
@@ -661,8 +750,12 @@
     g_object_unref (builder);
     
     player->priv->list = parole_media_list_new ();
+
     g_signal_connect (player->priv->list, "media_activated",
 		      G_CALLBACK (parole_player_media_activated_cb), player);
+		      
+    g_signal_connect (player->priv->list, "media_cursor_changed",
+		      G_CALLBACK (parole_player_media_cursor_changed_cb), player);
 }
 
 ParolePlayer *

Modified: parole/trunk/src/rc-utils.c
===================================================================
--- parole/trunk/src/rc-utils.c	2009-06-06 13:18:48 UTC (rev 7472)
+++ parole/trunk/src/rc-utils.c	2009-06-06 13:41:52 UTC (rev 7473)
@@ -46,24 +46,56 @@
     return rc;
 }
 
-gboolean read_bool_entry (const gchar *property)
+void parole_rc_write_entry_bool (const gchar *property, gboolean value)
 {
-    XfceRc *rc = open_resource_file (TRUE);
+    XfceRc *rc = open_resource_file (FALSE);
     
-    return xfce_rc_read_bool_entry (rc, property, TRUE);
+    xfce_rc_write_bool_entry (rc, property, value);
+    xfce_rc_close (rc);
 }
 
-const gchar *read_string_entry (const gchar *property)
+void parole_rc_write_entry_int (const gchar *property, gint value)
 {
-    XfceRc *rc = open_resource_file (TRUE);
+    XfceRc *rc = open_resource_file (FALSE);
     
-    return xfce_rc_read_entry (rc, property, NULL);
+    xfce_rc_write_int_entry (rc, property, value);
+    xfce_rc_close (rc);
 }
 
-void write_string_entry	(const gchar *property, const gchar *value)
+void parole_rc_write_entry_string	(const gchar *property, const gchar *value)
 {
     XfceRc *rc = open_resource_file (FALSE);
     
     xfce_rc_write_entry (rc, property, value);
     xfce_rc_close (rc);
 }
+
+gboolean parole_rc_read_entry_bool (const gchar *property, gboolean fallback)
+{
+    XfceRc *rc = open_resource_file (TRUE);
+    
+    if ( rc )
+	return xfce_rc_read_bool_entry (rc, property, TRUE);
+	
+    return fallback;
+}
+
+gint parole_rc_read_entry_int (const gchar *property, gint fallback)
+{
+    XfceRc *rc = open_resource_file (TRUE);
+    
+    if ( rc )
+	return xfce_rc_read_int_entry (rc, property, fallback);
+	
+    return fallback;
+}
+
+const gchar *parole_rc_read_entry_string (const gchar *property, const gchar *fallback)
+{
+    XfceRc *rc = open_resource_file (TRUE);
+    
+    if ( rc )
+        return xfce_rc_read_entry (rc, property, NULL);
+	
+    return fallback;
+}

Modified: parole/trunk/src/rc-utils.h
===================================================================
--- parole/trunk/src/rc-utils.h	2009-06-06 13:18:48 UTC (rev 7472)
+++ parole/trunk/src/rc-utils.h	2009-06-06 13:41:52 UTC (rev 7473)
@@ -21,11 +21,23 @@
 #ifndef __RC_UTILS_
 #define __RC_UTILS_
 
-gboolean 		read_bool_entry 		(const gchar *property);
+void			parole_rc_write_entry_bool	(const gchar *property,
+							 gboolean value);
 
-const gchar	       *read_string_entry 		(const gchar *property);
-
-void 			write_string_entry		(const gchar *property, 
+void			parole_rc_write_entry_int	(const gchar *property,
+							 gint value);
+							 
+void 			parole_rc_write_entry_string	(const gchar *property, 
 							 const gchar *value);
+							 
+gboolean 		parole_rc_read_entry_bool	(const gchar *property,
+							 gboolean fallback);
 
+gint			parole_rc_read_entry_int	(const gchar *property,
+							 gint fallback);
+
+const gchar	       *parole_rc_read_entry_string	(const gchar *property,
+							 const gchar *fallback);
+
+
 #endif /* __RC_UTILS_ */

Modified: parole/trunk/src/sidebar.c
===================================================================
--- parole/trunk/src/sidebar.c	2009-06-06 13:18:48 UTC (rev 7472)
+++ parole/trunk/src/sidebar.c	2009-06-06 13:41:52 UTC (rev 7473)
@@ -140,27 +140,6 @@
 	g_object_unref (pix);
 	
     /*
-     * Recoreder tab
-     */
-    pix = xfce_themed_icon_load ("gnome-sound-recorder", 24);
-    gtk_list_store_append (list_store, &iter);
-    gtk_list_store_set (list_store, &iter, PIXBUF_COL, pix, NAME_COL, _("<b>Audio \nrecorder\n</b>"), NOTEBOOK_NUMBER, i, -1);
-    i++;
-    if ( pix )
-	g_object_unref (pix);
-	
-	
-    /*
-     * Converter tab
-     */
-    pix = xfce_themed_icon_load ("soundconverter", 24);
-    gtk_list_store_append (list_store, &iter);
-    gtk_list_store_set (list_store, &iter, PIXBUF_COL, pix, NAME_COL, _("<b>Audio \nconverter\n</b>"), NOTEBOOK_NUMBER, i, -1);
-    i++;
-    if ( pix )
-	g_object_unref (pix);
-	
-    /*
      * Album
      */
     pix = xfce_themed_icon_load ("", 24);
@@ -173,7 +152,6 @@
     g_signal_connect_swapped (G_OBJECT (sidebar->priv->treeview), "cursor_changed",
 			      G_CALLBACK (parole_sidebar_cursor_changed_cb), sidebar);
     
-    
     sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (sidebar->priv->treeview));
     path = gtk_tree_path_new_first ();
     gtk_tree_selection_select_path (sel, path);

Modified: parole/trunk/src/statusbar.c
===================================================================
--- parole/trunk/src/statusbar.c	2009-06-06 13:18:48 UTC (rev 7472)
+++ parole/trunk/src/statusbar.c	2009-06-06 13:41:52 UTC (rev 7473)
@@ -136,3 +136,8 @@
     gtk_widget_show (bar->priv->progress);
     g_free (buff);
 }
+
+void parole_statusbar_set_full_screen (ParoleStatusbar *bar, gboolean full_screen)
+{
+    
+}

Modified: parole/trunk/src/statusbar.h
===================================================================
--- parole/trunk/src/statusbar.h	2009-06-06 13:18:48 UTC (rev 7472)
+++ parole/trunk/src/statusbar.h	2009-06-06 13:41:52 UTC (rev 7473)
@@ -34,7 +34,7 @@
 typedef struct
 {
     GObject         		parent;
-    ParoleStatusbarPrivate       *priv;
+    ParoleStatusbarPrivate     *priv;
     
 } ParoleStatusbar;
 
@@ -60,6 +60,9 @@
 void				parole_statusbar_set_buffering   (ParoleStatusbar *bar,
 								  gint percentage);
 
+void				parole_statusbar_set_full_screen (ParoleStatusbar *bar,
+								  gboolean full_screen);
+
 G_END_DECLS
 
 #endif /* __PAROLE_STATUSBAR_H */




More information about the Goodies-commits mailing list