[gupnp-tools] av-cp: Don't use deprecated GTK features



commit 0b1a884a5fd20fbbfdf92354d55cbde0f1af193f
Author: Jussi Kukkonen <jku goto fi>
Date:   Thu Jul 31 15:30:29 2014 +0300

    av-cp: Don't use deprecated GTK features
    
    Use Grid instead of VBox or HBox, use Scale instead of HScale or
    Vscale.
    
    Don't use GtkMisc properties or stock items.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=734162

 data/gupnp-av-cp.ui.in        |  865 +++++++++++++++++++----------------------
 src/av-cp/renderer-combo.c    |    6 +-
 src/av-cp/renderer-controls.c |   76 ++--
 src/av-cp/renderer-controls.h |    6 +-
 4 files changed, 451 insertions(+), 502 deletions(-)
---
diff --git a/data/gupnp-av-cp.ui.in b/data/gupnp-av-cp.ui.in
index 80e99ca..aadf78c 100644
--- a/data/gupnp-av-cp.ui.in
+++ b/data/gupnp-av-cp.ui.in
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.18.1 -->
 <interface>
-  <!-- interface-requires gtk+ 3.0 -->
+  <requires lib="gtk+" version="3.0"/>
   <object class="GtkAboutDialog" id="about-dialog">
     <property name="can_focus">False</property>
     <property name="border_width">12</property>
@@ -14,9 +15,9 @@ Inspired by Intel Tools for UPnP.</property>
     <property name="translator_credits" translatable="yes" comments="TRANSLATORS: Replace this string with 
your names, one name per line.">translator-credits</property>
     <property name="artists">Lapo Calamandrei &lt;calamandrei gmail com&gt;
 Vinicius Depizzol &lt;vdepizzol gmail com&gt;</property>
+    <property name="logo_icon_name">image-missing</property>
     <property name="license_type">gpl-2-0</property>
-    <signal name="delete-event" handler="gtk_widget_hide" object="about-dialog" swapped="yes"/>
-    <signal name="response" handler="gtk_widget_hide" object="about-dialog" swapped="yes"/>
+    <signal name="delete-event" handler="gtk_widget_hide_on_delete" swapped="no"/>
     <child internal-child="vbox">
       <object class="GtkBox" id="dialog-vbox1">
         <property name="can_focus">False</property>
@@ -38,84 +39,19 @@ Vinicius Depizzol &lt;vdepizzol gmail com&gt;</property>
   <object class="GtkAdjustment" id="adjustment1">
     <property name="upper">100</property>
     <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
   </object>
   <object class="GtkAdjustment" id="adjustment2">
     <property name="upper">100</property>
     <property name="step_increment">1</property>
-  </object>
-  <object class="GtkDialog" id="didl-dialog">
-    <property name="width_request">640</property>
-    <property name="height_request">480</property>
-    <property name="can_focus">False</property>
-    <property name="border_width">5</property>
-    <property name="title" translatable="yes">GUPnP AV CP - Metadata View</property>
-    <property name="type_hint">normal</property>
-    <signal name="close" handler="gtk_widget_hide" swapped="no"/>
-    <child internal-child="vbox">
-      <object class="GtkBox" id="dialog-vbox3">
-        <property name="visible">True</property>
-        <property name="can_focus">False</property>
-        <property name="orientation">vertical</property>
-        <property name="spacing">2</property>
-        <child internal-child="action_area">
-          <object class="GtkButtonBox" id="didl-action-area">
-            <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <property name="layout_style">end</property>
-            <child>
-              <object class="GtkButton" id="didl-close-button">
-                <property name="label">gtk-close</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-                <property name="use_stock">True</property>
-                <signal name="clicked" handler="gtk_widget_hide" object="didl-dialog" swapped="yes"/>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">0</property>
-              </packing>
-            </child>
-          </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">True</property>
-            <property name="pack_type">end</property>
-            <property name="position">0</property>
-          </packing>
-        </child>
-        <child>
-          <object class="GtkScrolledWindow" id="didl-scrolledwindow">
-            <property name="visible">True</property>
-            <property name="can_focus">True</property>
-            <child>
-              <object class="@TEXT_VIEW@" id="didl-textview">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="editable">False</property>
-                <property name="wrap_mode">char</property>
-              </object>
-            </child>
-          </object>
-          <packing>
-            <property name="expand">True</property>
-            <property name="fill">True</property>
-            <property name="position">1</property>
-          </packing>
-        </child>
-      </object>
-    </child>
-    <action-widgets>
-      <action-widget response="0">didl-close-button</action-widget>
-    </action-widgets>
+    <property name="page_increment">10</property>
   </object>
   <object class="GtkWindow" id="main-window">
     <property name="can_focus">False</property>
     <property name="title" translatable="yes">GUPnP AV Control Point</property>
     <signal name="delete-event" handler="on_delete_event" swapped="no"/>
     <child>
-      <object class="GtkVBox" id="vbox3">
+      <object class="GtkGrid" id="grid1">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
         <child>
@@ -132,12 +68,11 @@ Vinicius Depizzol &lt;vdepizzol gmail com&gt;</property>
                   <object class="GtkMenu" id="file-menuitem_menu">
                     <property name="can_focus">False</property>
                     <child>
-                      <object class="GtkImageMenuItem" id="quit">
-                        <property name="label">gtk-quit</property>
+                      <object class="GtkMenuItem" id="close_menuitem">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="label" translatable="yes">Close</property>
                         <property name="use_underline">True</property>
-                        <property name="use_stock">True</property>
                         <signal name="activate" handler="application_exit" swapped="no"/>
                       </object>
                     </child>
@@ -177,12 +112,11 @@ Vinicius Depizzol &lt;vdepizzol gmail com&gt;</property>
                   <object class="GtkMenu" id="help_menuitem_menu">
                     <property name="can_focus">False</property>
                     <child>
-                      <object class="GtkImageMenuItem" id="about">
-                        <property name="label">gtk-about</property>
+                      <object class="GtkMenuItem" id="about_menuitem">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="label" translatable="yes">About</property>
                         <property name="use_underline">True</property>
-                        <property name="use_stock">True</property>
                         <signal name="activate" handler="gtk_widget_show" object="about-dialog" 
swapped="yes"/>
                       </object>
                     </child>
@@ -192,535 +126,475 @@ Vinicius Depizzol &lt;vdepizzol gmail com&gt;</property>
             </child>
           </object>
           <packing>
-            <property name="expand">False</property>
-            <property name="fill">False</property>
-            <property name="position">0</property>
+            <property name="left_attach">0</property>
+            <property name="top_attach">0</property>
           </packing>
         </child>
         <child>
-          <object class="GtkVBox" id="vbox2">
+          <object class="GtkGrid" id="grid2">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
-            <property name="border_width">12</property>
-            <property name="spacing">18</property>
+            <property name="margin_start">12</property>
+            <property name="margin_end">12</property>
+            <property name="hexpand">True</property>
+            <property name="vexpand">True</property>
+            <property name="row_spacing">16</property>
             <child>
-              <object class="GtkAlignment" id="alignment3">
+              <object class="GtkGrid" id="grid3">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
+                <property name="column_spacing">4</property>
+                <property name="column_homogeneous">True</property>
                 <child>
-                  <object class="GtkHBox" id="hbox2">
+                  <object class="GtkButton" id="play-button">
                     <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="spacing">8</property>
-                    <child>
-                      <object class="GtkScrolledWindow" id="scrolledwindow1">
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="shadow_type">in</property>
-                        <child>
-                          <object class="GtkTreeView" id="playlist-treeview">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="headers_visible">False</property>
-                            <signal name="row-collapsed" handler="on_playlist_row_collapsed" swapped="no"/>
-                            <signal name="row-expanded" handler="on_playlist_row_expanded" swapped="no"/>
-                            <signal name="row-activated" handler="on_play_button_clicked" swapped="no"/>
-                            <signal name="button-release-event" 
handler="on_playlist_treeview_button_release" swapped="no"/>
-                            <child internal-child="selection">
-                              <object class="GtkTreeSelection" id="treeview-selection1"/>
-                            </child>
-                          </object>
-                        </child>
-                      </object>
-                      <packing>
-                        <property name="expand">True</property>
-                        <property name="fill">True</property>
-                        <property name="position">0</property>
-                      </packing>
-                    </child>
+                    <property name="can_focus">True</property>
+                    <property name="can_default">True</property>
+                    <property name="receives_default">False</property>
+                    <property name="halign">center</property>
+                    <property name="hexpand">True</property>
+                    <signal name="clicked" handler="on_play_button_clicked" swapped="no"/>
                     <child>
-                      <object class="GtkVBox" id="vbox1">
+                      <object class="GtkGrid" id="grid11">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="spacing">6</property>
+                        <property name="halign">center</property>
+                        <property name="hexpand">True</property>
+                        <property name="column_spacing">2</property>
                         <child>
-                          <object class="GtkImage" id="volume-max-image">
+                          <object class="GtkLabel" id="label8">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="stock">gtk-missing-image</property>
+                            <property name="valign">baseline</property>
+                            <property name="label" translatable="yes">_Play</property>
+                            <property name="use_underline">True</property>
                           </object>
                           <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">True</property>
-                            <property name="position">0</property>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">0</property>
                           </packing>
                         </child>
                         <child>
-                          <object class="GtkVScale" id="volume-vscale">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="adjustment">adjustment1</property>
-                            <property name="inverted">True</property>
-                            <property name="digits">0</property>
-                            <property name="draw_value">False</property>
-                            <signal name="value-changed" handler="on_volume_vscale_value_changed" 
swapped="no"/>
-                          </object>
-                          <packing>
-                            <property name="expand">True</property>
-                            <property name="fill">True</property>
-                            <property name="position">1</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkImage" id="volume-min-image">
+                          <object class="GtkImage" id="image16">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="stock">gtk-missing-image</property>
+                            <property name="valign">baseline</property>
+                            <property name="icon_name">media-playback-start</property>
                           </object>
                           <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">True</property>
-                            <property name="position">2</property>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">0</property>
                           </packing>
                         </child>
                       </object>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">True</property>
-                        <property name="padding">4</property>
-                        <property name="position">1</property>
-                      </packing>
                     </child>
                   </object>
-                </child>
-              </object>
-              <packing>
-                <property name="expand">True</property>
-                <property name="fill">True</property>
-                <property name="position">0</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkVBox" id="vbox4">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="spacing">6</property>
-                <child>
-                  <object class="GtkHScale" id="position-hscale">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="adjustment">adjustment2</property>
-                    <property name="digits">0</property>
-                    <property name="draw_value">False</property>
-                    <signal name="value-changed" handler="on_position_hscale_value_changed" swapped="no"/>
-                  </object>
                   <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">True</property>
-                    <property name="position">0</property>
+                    <property name="left_attach">0</property>
+                    <property name="top_attach">0</property>
                   </packing>
                 </child>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">1</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkHBox" id="hbox9">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="spacing">12</property>
                 <child>
-                  <object class="GtkLabel" id="label7">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes">_Renderer: </property>
-                    <property name="use_underline">True</property>
-                    <property name="mnemonic_widget">renderer-combobox</property>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">True</property>
-                    <property name="position">0</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkComboBox" id="renderer-combobox">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                  </object>
-                  <packing>
-                    <property name="expand">True</property>
-                    <property name="fill">True</property>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="clear_state_button">
+                  <object class="GtkButton" id="pause-button">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="can_default">True</property>
                     <property name="receives_default">False</property>
-                    <property name="tooltip_text" translatable="yes">Clears the CP's idea of the state of 
the currently selected AV Renderer. Useful for dealing with AV Renderers that don't report state 
changes.</property>
-                    <signal name="clicked" handler="on_clear_state_button_clicked" swapped="no"/>
+                    <property name="halign">center</property>
+                    <property name="hexpand">True</property>
+                    <signal name="clicked" handler="on_pause_button_clicked" swapped="no"/>
                     <child>
-                      <object class="GtkAlignment" id="alignment14">
+                      <object class="GtkGrid" id="grid10">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="xscale">0</property>
-                        <property name="yscale">0</property>
+                        <property name="halign">center</property>
+                        <property name="hexpand">True</property>
+                        <property name="column_spacing">2</property>
                         <child>
-                          <object class="GtkHBox" id="hbox16">
+                          <object class="GtkLabel" id="label9">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="spacing">2</property>
-                            <child>
-                              <object class="GtkImage" id="image21">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="stock">gtk-clear</property>
-                              </object>
-                              <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">False</property>
-                                <property name="position">0</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkLabel" id="label13">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">_Clear state</property>
-                                <property name="use_underline">True</property>
-                              </object>
-                              <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">False</property>
-                                <property name="position">1</property>
-                              </packing>
-                            </child>
+                            <property name="valign">baseline</property>
+                            <property name="label" translatable="yes">P_ause</property>
+                            <property name="use_underline">True</property>
+                            <property name="ellipsize">end</property>
                           </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkImage" id="image17">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="valign">baseline</property>
+                            <property name="icon_name">media-playback-pause</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">0</property>
+                          </packing>
                         </child>
                       </object>
                     </child>
                   </object>
                   <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
-                    <property name="position">2</property>
+                    <property name="left_attach">1</property>
+                    <property name="top_attach">0</property>
                   </packing>
                 </child>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">2</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkHButtonBox" id="hbuttonbox1">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="spacing">6</property>
                 <child>
-                  <object class="GtkButton" id="play-button">
+                  <object class="GtkButton" id="stop-button">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="can_default">True</property>
                     <property name="receives_default">False</property>
-                    <signal name="clicked" handler="on_play_button_clicked" swapped="no"/>
+                    <property name="halign">center</property>
+                    <property name="hexpand">True</property>
+                    <signal name="clicked" handler="on_stop_button_clicked" swapped="no"/>
                     <child>
-                      <object class="GtkAlignment" id="alignment9">
+                      <object class="GtkGrid" id="grid9">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="xscale">0</property>
-                        <property name="yscale">0</property>
+                        <property name="halign">center</property>
+                        <property name="hexpand">True</property>
+                        <child>
+                          <object class="GtkLabel" id="label10">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="valign">baseline</property>
+                            <property name="label" translatable="yes">_Stop</property>
+                            <property name="use_underline">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">0</property>
+                          </packing>
+                        </child>
                         <child>
-                          <object class="GtkHBox" id="hbox11">
+                          <object class="GtkImage" id="image18">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="spacing">2</property>
-                            <child>
-                              <object class="GtkImage" id="image16">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="stock">gtk-media-play</property>
-                              </object>
-                              <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">False</property>
-                                <property name="position">0</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkLabel" id="label8">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">_Play</property>
-                                <property name="use_underline">True</property>
-                              </object>
-                              <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">False</property>
-                                <property name="position">1</property>
-                              </packing>
-                            </child>
+                            <property name="valign">baseline</property>
+                            <property name="icon_name">media-playback-stop</property>
                           </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">0</property>
+                          </packing>
                         </child>
                       </object>
                     </child>
                   </object>
                   <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
-                    <property name="position">0</property>
+                    <property name="left_attach">2</property>
+                    <property name="top_attach">0</property>
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkButton" id="pause-button">
+                  <object class="GtkButton" id="previous-button">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="can_default">True</property>
                     <property name="receives_default">False</property>
-                    <signal name="clicked" handler="on_pause_button_clicked" swapped="no"/>
+                    <property name="halign">center</property>
+                    <property name="hexpand">True</property>
+                    <signal name="clicked" handler="on_previous_button_clicked" swapped="no"/>
                     <child>
-                      <object class="GtkAlignment" id="alignment10">
+                      <object class="GtkGrid" id="grid8">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="xscale">0</property>
-                        <property name="yscale">0</property>
+                        <property name="halign">center</property>
+                        <property name="hexpand">True</property>
+                        <property name="column_spacing">2</property>
+                        <child>
+                          <object class="GtkLabel" id="label11">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="valign">baseline</property>
+                            <property name="label" translatable="yes">Pre_vious</property>
+                            <property name="use_underline">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">0</property>
+                          </packing>
+                        </child>
                         <child>
-                          <object class="GtkHBox" id="hbox12">
+                          <object class="GtkImage" id="image19">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="spacing">2</property>
-                            <child>
-                              <object class="GtkImage" id="image17">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="stock">gtk-media-pause</property>
-                              </object>
-                              <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">False</property>
-                                <property name="position">0</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkLabel" id="label9">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">P_ause</property>
-                                <property name="use_underline">True</property>
-                              </object>
-                              <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">False</property>
-                                <property name="position">1</property>
-                              </packing>
-                            </child>
+                            <property name="valign">baseline</property>
+                            <property name="icon_name">media-skip-backward</property>
                           </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">0</property>
+                          </packing>
                         </child>
                       </object>
                     </child>
                   </object>
                   <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
-                    <property name="position">1</property>
+                    <property name="left_attach">3</property>
+                    <property name="top_attach">0</property>
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkButton" id="stop-button">
+                  <object class="GtkButton" id="next-button">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="can_default">True</property>
                     <property name="receives_default">False</property>
-                    <signal name="clicked" handler="on_stop_button_clicked" swapped="no"/>
+                    <property name="halign">center</property>
+                    <property name="hexpand">True</property>
+                    <signal name="clicked" handler="on_next_button_clicked" swapped="no"/>
                     <child>
-                      <object class="GtkAlignment" id="alignment11">
+                      <object class="GtkGrid" id="grid7">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="xscale">0</property>
-                        <property name="yscale">0</property>
+                        <property name="halign">center</property>
+                        <property name="valign">center</property>
+                        <property name="hexpand">True</property>
+                        <property name="column_spacing">2</property>
+                        <child>
+                          <object class="GtkImage" id="image20">
+                            <property name="height_request">-1</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="valign">baseline</property>
+                            <property name="icon_name">media-skip-backward</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">0</property>
+                          </packing>
+                        </child>
                         <child>
-                          <object class="GtkHBox" id="hbox13">
+                          <object class="GtkLabel" id="label12">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="spacing">2</property>
-                            <child>
-                              <object class="GtkImage" id="image18">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="stock">gtk-media-stop</property>
-                              </object>
-                              <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">False</property>
-                                <property name="position">0</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkLabel" id="label10">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">_Stop</property>
-                                <property name="use_underline">True</property>
-                              </object>
-                              <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">False</property>
-                                <property name="position">1</property>
-                              </packing>
-                            </child>
+                            <property name="valign">baseline</property>
+                            <property name="label" translatable="yes">_Next</property>
+                            <property name="use_underline">True</property>
                           </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">0</property>
+                          </packing>
                         </child>
                       </object>
                     </child>
                   </object>
                   <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
-                    <property name="position">2</property>
+                    <property name="left_attach">4</property>
+                    <property name="top_attach">0</property>
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkButton" id="previous-button">
+                  <object class="GtkButton" id="rescan-button">
+                    <property name="label" translatable="yes">Rescan</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="can_default">True</property>
                     <property name="receives_default">False</property>
-                    <signal name="clicked" handler="on_previous_button_clicked" swapped="no"/>
-                    <child>
-                      <object class="GtkAlignment" id="alignment12">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="xscale">0</property>
-                        <property name="yscale">0</property>
-                        <child>
-                          <object class="GtkHBox" id="hbox14">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="spacing">2</property>
-                            <child>
-                              <object class="GtkImage" id="image19">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="stock">gtk-media-previous</property>
-                              </object>
-                              <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">False</property>
-                                <property name="position">0</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkLabel" id="label11">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">Pre_vious</property>
-                                <property name="use_underline">True</property>
-                              </object>
-                              <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">False</property>
-                                <property name="position">1</property>
-                              </packing>
-                            </child>
-                          </object>
-                        </child>
-                      </object>
-                    </child>
+                    <property name="halign">center</property>
+                    <property name="hexpand">True</property>
                   </object>
                   <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
-                    <property name="position">3</property>
+                    <property name="left_attach">5</property>
+                    <property name="top_attach">0</property>
                   </packing>
                 </child>
+              </object>
+              <packing>
+                <property name="left_attach">0</property>
+                <property name="top_attach">3</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkScale" id="position-scale">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="adjustment">adjustment1</property>
+                <property name="round_digits">1</property>
+                <property name="draw_value">False</property>
+                <signal name="value-changed" handler="on_position_scale_value_changed" swapped="no"/>
+              </object>
+              <packing>
+                <property name="left_attach">0</property>
+                <property name="top_attach">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkGrid" id="grid5">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="column_spacing">4</property>
                 <child>
-                  <object class="GtkButton" id="next-button">
+                  <object class="GtkButton" id="clear_state_button">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="can_default">True</property>
                     <property name="receives_default">False</property>
-                    <signal name="clicked" handler="on_next_button_clicked" swapped="no"/>
+                    <property name="tooltip_text" translatable="yes">Clears the CP's idea of the state of 
the currently selected AV Renderer. Useful for dealing with AV Renderers that don't report state 
changes.</property>
+                    <signal name="clicked" handler="on_clear_state_button_clicked" swapped="no"/>
                     <child>
-                      <object class="GtkAlignment" id="alignment13">
+                      <object class="GtkGrid" id="grid6">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="xscale">0</property>
-                        <property name="yscale">0</property>
+                        <property name="column_spacing">2</property>
                         <child>
-                          <object class="GtkHBox" id="hbox15">
+                          <object class="GtkLabel" id="label13">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="spacing">2</property>
-                            <child>
-                              <object class="GtkImage" id="image20">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="stock">gtk-media-next</property>
-                              </object>
-                              <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">False</property>
-                                <property name="position">0</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkLabel" id="label12">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">_Next</property>
-                                <property name="use_underline">True</property>
-                              </object>
-                              <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">False</property>
-                                <property name="position">1</property>
-                              </packing>
-                            </child>
+                            <property name="label" translatable="yes">_Clear state</property>
+                            <property name="use_underline">True</property>
                           </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkImage" id="image21">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="icon_name">edit-clear</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">0</property>
+                          </packing>
                         </child>
                       </object>
                     </child>
                   </object>
                   <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
-                    <property name="position">4</property>
+                    <property name="left_attach">2</property>
+                    <property name="top_attach">0</property>
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkButton" id="rescan-button">
-                    <property name="label" translatable="yes">Rescan</property>
+                  <object class="GtkComboBox" id="renderer-combobox">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="hexpand">True</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">1</property>
+                    <property name="top_attach">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="label7">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="halign">start</property>
+                    <property name="label" translatable="yes">_Renderer: </property>
+                    <property name="use_underline">True</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">0</property>
+                    <property name="top_attach">0</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="left_attach">0</property>
+                <property name="top_attach">2</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkGrid" id="grid4">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="hexpand">True</property>
+                <property name="vexpand">True</property>
+                <property name="column_spacing">12</property>
+                <child>
+                  <object class="GtkImage" id="volume-max-image">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="halign">center</property>
+                    <property name="valign">center</property>
+                    <property name="icon_name">audio-volume-high</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">1</property>
+                    <property name="top_attach">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkScale" id="volume-scale">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="can_default">True</property>
-                    <property name="receives_default">False</property>
+                    <property name="halign">center</property>
+                    <property name="vexpand">True</property>
+                    <property name="orientation">vertical</property>
+                    <property name="adjustment">adjustment2</property>
+                    <property name="inverted">True</property>
+                    <property name="round_digits">1</property>
+                    <property name="draw_value">False</property>
+                    <signal name="value-changed" handler="on_volume_scale_value_changed" swapped="no"/>
+                  </object>
+                  <packing>
+                    <property name="left_attach">1</property>
+                    <property name="top_attach">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkImage" id="volume-min-image">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="halign">center</property>
+                    <property name="valign">center</property>
+                    <property name="icon_name">audio-volume-low</property>
                   </object>
                   <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
-                    <property name="position">5</property>
+                    <property name="left_attach">1</property>
+                    <property name="top_attach">2</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkScrolledWindow" id="scrolledwindow1">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="hexpand">True</property>
+                    <property name="vexpand">True</property>
+                    <property name="shadow_type">in</property>
+                    <child>
+                      <object class="GtkTreeView" id="playlist-treeview">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="headers_visible">False</property>
+                        <signal name="button-release-event" handler="on_playlist_treeview_button_release" 
swapped="no"/>
+                        <signal name="row-activated" handler="on_play_button_clicked" swapped="no"/>
+                        <signal name="row-collapsed" handler="on_playlist_row_collapsed" swapped="no"/>
+                        <signal name="row-expanded" handler="on_playlist_row_expanded" swapped="no"/>
+                        <child internal-child="selection">
+                          <object class="GtkTreeSelection" id="treeview-selection1"/>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left_attach">0</property>
+                    <property name="top_attach">0</property>
+                    <property name="height">3</property>
                   </packing>
                 </child>
               </object>
               <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">3</property>
+                <property name="left_attach">0</property>
+                <property name="top_attach">0</property>
               </packing>
             </child>
           </object>
           <packing>
-            <property name="expand">True</property>
-            <property name="fill">True</property>
-            <property name="position">1</property>
+            <property name="left_attach">0</property>
+            <property name="top_attach">1</property>
           </packing>
         </child>
         <child>
@@ -729,13 +603,88 @@ Vinicius Depizzol &lt;vdepizzol gmail com&gt;</property>
             <property name="can_focus">False</property>
           </object>
           <packing>
+            <property name="left_attach">0</property>
+            <property name="top_attach">2</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+  <object class="GtkSizeGroup" id="playback-button-sizegroup">
+    <widgets>
+      <widget name="play-button"/>
+      <widget name="pause-button"/>
+      <widget name="stop-button"/>
+      <widget name="previous-button"/>
+      <widget name="next-button"/>
+      <widget name="rescan-button"/>
+    </widgets>
+  </object>
+  <object class="GtkDialog" id="didl-dialog">
+    <property name="width_request">640</property>
+    <property name="height_request">480</property>
+    <property name="can_focus">False</property>
+    <property name="border_width">5</property>
+    <property name="title" translatable="yes">GUPnP AV CP - Metadata View</property>
+    <property name="type_hint">normal</property>
+    <signal name="delete-event" handler="gtk_widget_hide_on_delete" swapped="no"/>
+    <child internal-child="vbox">
+      <object class="GtkBox" id="dialog-vbox3">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="orientation">vertical</property>
+        <property name="spacing">2</property>
+        <child internal-child="action_area">
+          <object class="GtkButtonBox" id="didl-action-area">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="layout_style">end</property>
+            <child>
+              <object class="GtkButton" id="didl-close-button">
+                <property name="label">Close</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <signal name="clicked" handler="gtk_widget_hide" object="didl-dialog" swapped="yes"/>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
             <property name="expand">False</property>
-            <property name="fill">False</property>
-            <property name="position">2</property>
+            <property name="fill">True</property>
+            <property name="pack_type">end</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkScrolledWindow" id="didl-scrolledwindow">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <child>
+              <object class="@TEXT_VIEW@" id="didl-textview">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="editable">False</property>
+                <property name="wrap_mode">char</property>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+            <property name="position">1</property>
           </packing>
         </child>
       </object>
     </child>
+    <action-widgets>
+      <action-widget response="0">didl-close-button</action-widget>
+    </action-widgets>
   </object>
   <object class="GtkMenu" id="playlist-popup">
     <property name="visible">True</property>
diff --git a/src/av-cp/renderer-combo.c b/src/av-cp/renderer-combo.c
index a8b8d12..ba41aa0 100644
--- a/src/av-cp/renderer-combo.c
+++ b/src/av-cp/renderer-combo.c
@@ -309,7 +309,7 @@ set_volume (const gchar *udn,
                                     -1);
 
                 if (is_iter_active (GTK_COMBO_BOX (renderer_combo), &iter)) {
-                        set_volume_hscale (volume);
+                        set_volume_scale (volume);
                 }
         }
 }
@@ -332,7 +332,7 @@ set_duration (const gchar *udn,
                                     -1);
 
                 if (is_iter_active (GTK_COMBO_BOX (renderer_combo), &iter)) {
-                        set_position_hscale_duration (duration);
+                        set_position_scale_duration (duration);
                 }
         }
 }
@@ -873,7 +873,7 @@ on_renderer_combo_changed (GtkComboBox *widget,
                             6, &state,
                             7, &volume,
                             -1);
-        set_volume_hscale (volume);
+        set_volume_scale (volume);
         prepare_controls_for_state (state);
 }
 
diff --git a/src/av-cp/renderer-controls.c b/src/av-cp/renderer-controls.c
index f65e861..b051afd 100644
--- a/src/av-cp/renderer-controls.c
+++ b/src/av-cp/renderer-controls.c
@@ -31,8 +31,8 @@
 #define SEC_PER_MIN 60
 #define SEC_PER_HOUR 3600
 
-GtkWidget *volume_vscale;
-GtkWidget *position_hscale;
+GtkWidget *volume_scale;
+GtkWidget *position_scale;
 GtkWidget *play_button;
 GtkWidget *pause_button;
 GtkWidget *stop_button;
@@ -197,7 +197,7 @@ set_av_transport_uri_cb (GUPnPServiceProxy       *av_transport,
                 duration = gupnp_didl_lite_resource_get_duration
                                                         (data->resource);
                 if (duration > 0) {
-                        gtk_range_set_range (GTK_RANGE (position_hscale),
+                        gtk_range_set_range (GTK_RANGE (position_scale),
                                              0.0,
                                              duration);
                 }
@@ -221,20 +221,20 @@ set_av_transport_uri_cb (GUPnPServiceProxy       *av_transport,
 
 G_MODULE_EXPORT
 gboolean
-on_volume_vscale_value_changed (GtkRange *range,
-                                gpointer  user_data);
+on_volume_scale_value_changed (GtkRange *range,
+                               gpointer  user_data);
 
 void
-set_volume_hscale (guint volume)
+set_volume_scale (guint volume)
 {
-        g_signal_handlers_block_by_func (volume_vscale,
-                                         on_volume_vscale_value_changed,
+        g_signal_handlers_block_by_func (volume_scale,
+                                         on_volume_scale_value_changed,
                                          NULL);
 
-        gtk_range_set_value (GTK_RANGE (volume_vscale), volume);
+        gtk_range_set_value (GTK_RANGE (volume_scale), volume);
 
-        g_signal_handlers_unblock_by_func (volume_vscale,
-                                           on_volume_vscale_value_changed,
+        g_signal_handlers_unblock_by_func (volume_scale,
+                                           on_volume_scale_value_changed,
                                            NULL);
 }
 
@@ -399,8 +399,8 @@ on_clear_state_button_clicked (GtkButton *button,
 
 G_MODULE_EXPORT
 gboolean
-on_position_hscale_value_changed (GtkRange *range,
-                                  gpointer  user_data)
+on_position_scale_value_changed (GtkRange *range,
+                                 gpointer  user_data)
 {
         char *args[] = { "Unit", "ABS_TIME", "Target", NULL, NULL };
         guint total_secs;
@@ -454,35 +454,35 @@ return_point:
 }
 
 void
-set_position_hscale_duration (const char *duration_str)
+set_position_scale_duration (const char *duration_str)
 {
         gdouble duration;
 
         duration = seconds_from_time (duration_str);
         if (duration > 0.0) {
-                gtk_range_set_range (GTK_RANGE (position_hscale),
+                gtk_range_set_range (GTK_RANGE (position_scale),
                                      0.0,
                                      duration);
         }
 }
 
 void
-set_position_hscale_position (const char *position_str)
+set_position_scale_position (const char *position_str)
 {
         gdouble position;
 
         position = seconds_from_time (position_str);
         if (position >= 0.0) {
                 g_signal_handlers_block_by_func
-                                        (position_hscale,
-                                         on_position_hscale_value_changed,
+                                        (position_scale,
+                                         on_position_scale_value_changed,
                                          NULL);
 
-                gtk_range_set_value (GTK_RANGE (position_hscale), position);
+                gtk_range_set_value (GTK_RANGE (position_scale), position);
 
                 g_signal_handlers_unblock_by_func
-                                        (position_hscale,
-                                         on_position_hscale_value_changed,
+                                        (position_scale,
+                                         on_position_scale_value_changed,
                                          NULL);
         }
 }
@@ -515,7 +515,7 @@ get_position_info_cb (GUPnPServiceProxy       *av_transport,
                 goto return_point;
         }
 
-        set_position_hscale_position (position);
+        set_position_scale_position (position);
 
 return_point:
         g_object_unref (av_transport);
@@ -617,18 +617,18 @@ prepare_controls_for_state (PlaybackState state)
         }
 
         /* Disable the seekbar when the state is stopped */
-        gtk_widget_set_sensitive (position_hscale, stop_possible);
+        gtk_widget_set_sensitive (position_scale, stop_possible);
         if (!stop_possible) {
                 g_signal_handlers_block_by_func
-                                        (position_hscale,
-                                         on_position_hscale_value_changed,
+                                        (position_scale,
+                                         on_position_scale_value_changed,
                                          NULL);
 
-                gtk_range_set_value (GTK_RANGE (position_hscale), 0.0);
+                gtk_range_set_value (GTK_RANGE (position_scale), 0.0);
 
                 g_signal_handlers_unblock_by_func
-                                        (position_hscale,
-                                         on_position_hscale_value_changed,
+                                        (position_scale,
+                                         on_position_scale_value_changed,
                                          NULL);
         }
 
@@ -661,7 +661,7 @@ set_volume_cb (GUPnPServiceProxy       *rendering_control,
                 g_error_free (error);
 
                 /* Update the range according to the current volume */
-                set_volume_hscale (get_selected_renderer_volume ());
+                set_volume_scale (get_selected_renderer_volume ());
         }
 
         g_object_unref (rendering_control);
@@ -669,8 +669,8 @@ set_volume_cb (GUPnPServiceProxy       *rendering_control,
 
 G_MODULE_EXPORT
 gboolean
-on_volume_vscale_value_changed (GtkRange *range,
-                                gpointer  user_data)
+on_volume_scale_value_changed (GtkRange *range,
+                               gpointer  user_data)
 {
         GUPnPServiceProxy *rendering_control;
         guint              desired_volume;
@@ -704,14 +704,14 @@ on_volume_vscale_value_changed (GtkRange *range,
 void
 setup_renderer_controls (GtkBuilder *builder)
 {
-        volume_vscale = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                            "volume-vscale"));
-        g_assert (volume_vscale != NULL);
+        volume_scale = GTK_WIDGET (gtk_builder_get_object (builder,
+                                                           "volume-scale"));
+        g_assert (volume_scale != NULL);
 
-        position_hscale = GTK_WIDGET (gtk_builder_get_object (
+        position_scale = GTK_WIDGET (gtk_builder_get_object (
                                                 builder,
-                                                "position-hscale"));
-        g_assert (position_hscale != NULL);
+                                                "position-scale"));
+        g_assert (position_scale != NULL);
 
         play_button = GTK_WIDGET (gtk_builder_get_object (builder,
                                                           "play-button"));
@@ -740,7 +740,7 @@ setup_renderer_controls (GtkBuilder *builder)
 
         timeout_id = 0;
 
-        g_object_weak_ref (G_OBJECT (position_hscale),
+        g_object_weak_ref (G_OBJECT (position_scale),
                            (GWeakNotify) remove_timeout,
                            NULL);
 }
diff --git a/src/av-cp/renderer-controls.h b/src/av-cp/renderer-controls.h
index d3e4573..35ed2f0 100644
--- a/src/av-cp/renderer-controls.h
+++ b/src/av-cp/renderer-controls.h
@@ -33,13 +33,13 @@ set_av_transport_uri            (const char *metadata,
                                  GCallback   callback);
 
 void
-set_volume_hscale               (guint volume);
+set_volume_scale                (guint volume);
 
 void
-set_position_hscale_duration    (const char *duration_str);
+set_position_scale_duration     (const char *duration_str);
 
 void
-set_position_hscale_position    (const char *position_str);
+set_position_scale_position     (const char *position_str);
 
 void
 prepare_controls_for_state      (PlaybackState state);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]