Migrate from glade to GtkBuilder
authorRené Stadler <mail@renestadler.de>
Sat, 14 Mar 2009 17:38:36 +0000 (19:38 +0200)
committerStefan Sauer <ensonic@users.sf.net>
Thu, 11 Sep 2014 18:51:45 +0000 (20:51 +0200)
debug-viewer/GstDebugViewer/Common/GUI.py
debug-viewer/GstDebugViewer/GUI.py
debug-viewer/GstDebugViewer/__init__.py
debug-viewer/data/about-dialog.ui [moved from debug-viewer/data/gst-debug-viewer.glade with 72% similarity]
debug-viewer/data/main-window.ui [new file with mode: 0644]
debug-viewer/data/progress-dialog.ui [new file with mode: 0644]
debug-viewer/setup.py

index c9e6008..925f9d1 100644 (file)
@@ -19,6 +19,8 @@
 
 """GStreamer Development Utilities Common GUI module."""
 
+import os
+
 import logging
 
 import pygtk
@@ -28,6 +30,7 @@ del pygtk
 import gobject
 import gtk
 
+import GstDebugViewer
 from GstDebugViewer.Common import utils
 
 def widget_add_popup_menu (widget, menu, button = 3):
@@ -72,9 +75,10 @@ class Actions (dict):
 
 class Widgets (dict):
 
-    def __init__ (self, glade_tree):
+    def __init__ (self, builder):
 
-        widgets = glade_tree.get_widget_prefix ("")
+        widgets = (obj for obj in builder.get_objects ()
+                   if hasattr (obj, "name"))
         dict.__init__ (self, ((w.name, w,) for w in widgets))
 
     def __getattr__ (self, name):
@@ -92,24 +96,34 @@ class Widgets (dict):
 
 class WidgetFactory (object):
 
-    def __init__ (self, glade_filename):
+    def __init__ (self, directory):
+
+        self.directory = directory
+
+    def get_builder (self, filename):
+
+        builder_filename = os.path.join (self.directory, filename)
+
+        builder = gtk.Builder ()
+        builder.set_translation_domain (GstDebugViewer.GETTEXT_DOMAIN)
+        builder.add_from_file (builder_filename)
 
-        self.filename = glade_filename
+        return builder
 
-    def make (self, widget_name, autoconnect = None):
+    def make (self, filename, widget_name, autoconnect = None):
 
-        glade_tree = gtk.glade.XML (self.filename, widget_name)
+        builder = self.get_builder (filename)
 
         if autoconnect is not None:
-            glade_tree.signal_autoconnect (autoconnect)
+            builder.connect_signals (autoconnect)
 
-        return Widgets (glade_tree)
+        return Widgets (builder)
 
-    def make_one (self, widget_name):
+    def make_one (self, filename, widget_name):
 
-        glade_tree = gtk.glade.XML (self.filename, widget_name)
+        builder = self.get_builder (filename)
 
-        return glade_tree.get_widget (widget_name)
+        return builder.get_object (widget_name)
 
 class UIFactory (object):
 
index b907f49..c066478 100644 (file)
@@ -38,7 +38,6 @@ pygtk.require ("2.0")
 
 import gobject
 import gtk
-import gtk.glade
 
 from GstDebugViewer import Common, Data, Main
 
@@ -1550,7 +1549,7 @@ class ProgressDialog (object):
 
     def __init__ (self, window, title = ""):
 
-        widgets = window.widget_factory.make ("progress_dialog")
+        widgets = window.widget_factory.make ("progress-dialog.ui", "progress_dialog")
         dialog = widgets.progress_dialog
         dialog.connect ("response", self.__handle_dialog_response)
 
@@ -1637,9 +1636,8 @@ class Window (object):
         self.log_file = None
         self.setup_model (LazyLogModel ())
 
-        glade_filename = os.path.join (Main.Paths.data_dir, "gst-debug-viewer.glade")
-        self.widget_factory = Common.GUI.WidgetFactory (glade_filename)
-        self.widgets = self.widget_factory.make ("main_window")
+        self.widget_factory = Common.GUI.WidgetFactory (Main.Paths.data_dir)
+        self.widgets = self.widget_factory.make ("main-window.ui", "main_window")
 
         ui_filename = os.path.join (Main.Paths.data_dir,
                                     "gst-debug-viewer.ui")
@@ -2057,7 +2055,7 @@ class Window (object):
 
         from GstDebugViewer import version
 
-        dialog = self.widget_factory.make_one ("about_dialog")
+        dialog = self.widget_factory.make_one ("about-dialog.ui", "about_dialog")
         dialog.props.version = version
         dialog.run ()
         dialog.destroy ()
index 2bf8812..b10cc0e 100644 (file)
@@ -23,4 +23,4 @@ version = "0.1"
 
 __version__ = version
 
-from GstDebugViewer.Main import Paths, main as run
+from GstDebugViewer.Main import Paths, GETTEXT_DOMAIN, main as run
similarity index 72%
rename from debug-viewer/data/gst-debug-viewer.glade
rename to debug-viewer/data/about-dialog.ui
index bcdf29e..9d3fe07 100644 (file)
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
-
-<glade-interface>
-<requires lib="gnome"/>
-
-<widget class="GtkWindow" id="main_window">
-  <property name="title" translatable="yes">GStreamer Debug Viewer</property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_NONE</property>
-  <property name="modal">False</property>
-  <property name="default_width">640</property>
-  <property name="default_height">480</property>
-  <property name="resizable">True</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="decorated">True</property>
-  <property name="skip_taskbar_hint">False</property>
-  <property name="skip_pager_hint">False</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
-  <property name="urgency_hint">False</property>
-  <signal name="destroy" handler="handle_main_window_destroy" last_modification_time="Thu, 05 Oct 2006 20:05:35 GMT"/>
-
-  <child>
-    <widget class="GtkVBox" id="vbox_main">
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">0</property>
-
-      <child>
-       <widget class="GtkVBox" id="vbox_view">
-         <property name="visible">True</property>
-         <property name="homogeneous">False</property>
-         <property name="spacing">0</property>
-
-         <child>
-           <widget class="GtkVPaned" id="vpaned_view">
-             <property name="visible">True</property>
-             <property name="can_focus">True</property>
-
-             <child>
-               <widget class="GtkHBox" id="hbox_view">
-                 <property name="visible">True</property>
-                 <property name="homogeneous">False</property>
-                 <property name="spacing">0</property>
-
-                 <child>
-                   <widget class="GtkScrolledWindow" id="log_view_scrolled_window">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-                     <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-                     <property name="shadow_type">GTK_SHADOW_IN</property>
-                     <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-                     <child>
-                       <widget class="GtkTreeView" id="log_view">
-                         <property name="visible">True</property>
-                         <property name="can_focus">True</property>
-                         <property name="headers_visible">True</property>
-                         <property name="rules_hint">True</property>
-                         <property name="reorderable">True</property>
-                         <property name="enable_search">False</property>
-                         <property name="fixed_height_mode">True</property>
-                         <property name="hover_selection">False</property>
-                         <property name="hover_expand">False</property>
-                       </widget>
-                     </child>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">True</property>
-                     <property name="fill">True</property>
-                     <property name="pack_type">GTK_PACK_END</property>
-                   </packing>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="shrink">True</property>
-                 <property name="resize">True</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkScrolledWindow" id="line_view_scrolled_window">
-                 <property name="visible">True</property>
-                 <property name="can_focus">True</property>
-                 <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
-                 <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-                 <property name="shadow_type">GTK_SHADOW_IN</property>
-                 <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-                 <child>
-                   <widget class="GtkTreeView" id="line_view">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="headers_visible">False</property>
-                     <property name="rules_hint">True</property>
-                     <property name="reorderable">False</property>
-                     <property name="enable_search">True</property>
-                     <property name="fixed_height_mode">False</property>
-                     <property name="hover_selection">False</property>
-                     <property name="hover_expand">False</property>
-                   </widget>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="shrink">True</property>
-                 <property name="resize">False</property>
-               </packing>
-             </child>
-           </widget>
-           <packing>
-             <property name="padding">0</property>
-             <property name="expand">True</property>
-             <property name="fill">True</property>
-           </packing>
-         </child>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">True</property>
-         <property name="fill">True</property>
-         <property name="pack_type">GTK_PACK_END</property>
-       </packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
-<widget class="GtkAboutDialog" id="about_dialog">
-  <property name="border_width">5</property>
-  <property name="visible">True</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="name" translatable="yes">GStreamer Debug Viewer</property>
-  <property name="copyright" translatable="yes">Copyright © 2007 René Stadler</property>
-  <property name="comments" translatable="yes">View and analyze GStreamer debug files</property>
-  <property name="license">                    GNU GENERAL PUBLIC LICENSE
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+  <object class="GtkAboutDialog" id="about_dialog">
+    <property name="border_width">5</property>
+    <property name="visible">True</property>
+    <property name="destroy_with_parent">False</property>
+    <property name="name" translatable="yes">GStreamer Debug Viewer</property>
+    <property name="copyright" translatable="yes">Copyright &#xA9; 2007 Ren&#xE9; Stadler</property>
+    <property name="comments" translatable="yes">View and analyze GStreamer debug files</property>
+    <property name="license">                    GNU GENERAL PUBLIC LICENSE
                        Version 3, 29 June 2007
 
  Copyright (C) 2007 Free Software Foundation, Inc. &lt;http://fsf.org/&gt;
@@ -210,35 +82,35 @@ modification follow.
 
   0. Definitions.
 
-  &quot;This License&quot; refers to version 3 of the GNU General Public License.
+  "This License" refers to version 3 of the GNU General Public License.
 
-  &quot;Copyright&quot; also means copyright-like laws that apply to other kinds of
+  "Copyright" also means copyright-like laws that apply to other kinds of
 works, such as semiconductor masks.
 
-  &quot;The Program&quot; refers to any copyrightable work licensed under this
-License.  Each licensee is addressed as &quot;you&quot;.  &quot;Licensees&quot; and
-&quot;recipients&quot; may be individuals or organizations.
+  "The Program" refers to any copyrightable work licensed under this
+License.  Each licensee is addressed as "you".  "Licensees" and
+"recipients" may be individuals or organizations.
 
-  To &quot;modify&quot; a work means to copy from or adapt all or part of the work
+  To "modify" a work means to copy from or adapt all or part of the work
 in a fashion requiring copyright permission, other than the making of an
-exact copy.  The resulting work is called a &quot;modified version&quot; of the
-earlier work or a work &quot;based on&quot; the earlier work.
+exact copy.  The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
 
-  A &quot;covered work&quot; means either the unmodified Program or a work based
+  A "covered work" means either the unmodified Program or a work based
 on the Program.
 
-  To &quot;propagate&quot; a work means to do anything with it that, without
+  To "propagate" a work means to do anything with it that, without
 permission, would make you directly or secondarily liable for
 infringement under applicable copyright law, except executing it on a
 computer or modifying a private copy.  Propagation includes copying,
 distribution (with or without modification), making available to the
 public, and in some countries other activities as well.
 
-  To &quot;convey&quot; a work means any kind of propagation that enables other
+  To "convey" a work means any kind of propagation that enables other
 parties to make or receive copies.  Mere interaction with a user through
 a computer network, with no transfer of a copy, is not conveying.
 
-  An interactive user interface displays &quot;Appropriate Legal Notices&quot;
+  An interactive user interface displays "Appropriate Legal Notices"
 to the extent that it includes a convenient and prominently visible
 feature that (1) displays an appropriate copyright notice, and (2)
 tells the user that there is no warranty for the work (except to the
@@ -249,27 +121,27 @@ menu, a prominent item in the list meets this criterion.
 
   1. Source Code.
 
-  The &quot;source code&quot; for a work means the preferred form of the work
-for making modifications to it.  &quot;Object code&quot; means any non-source
+  The "source code" for a work means the preferred form of the work
+for making modifications to it.  "Object code" means any non-source
 form of a work.
 
-  A &quot;Standard Interface&quot; means an interface that either is an official
+  A "Standard Interface" means an interface that either is an official
 standard defined by a recognized standards body, or, in the case of
 interfaces specified for a particular programming language, one that
 is widely used among developers working in that language.
 
-  The &quot;System Libraries&quot; of an executable work include anything, other
+  The "System Libraries" of an executable work include anything, other
 than the work as a whole, that (a) is included in the normal form of
 packaging a Major Component, but which is not part of that Major
 Component, and (b) serves only to enable use of the work with that
 Major Component, or to implement a Standard Interface for which an
 implementation is available to the public in source code form.  A
-&quot;Major Component&quot;, in this context, means a major essential component
+"Major Component", in this context, means a major essential component
 (kernel, window system, and so on) of the specific operating system
 (if any) on which the executable work runs, or a compiler used to
 produce the work, or an object code interpreter used to run it.
 
-  The &quot;Corresponding Source&quot; for a work in object code form means all
+  The "Corresponding Source" for a work in object code form means all
 the source code needed to generate, install, and (for an executable
 work) run the object code and to modify the work, including scripts to
 control those activities.  However, it does not include the work's
@@ -355,7 +227,7 @@ terms of section 4, provided that you also meet all of these conditions:
     b) The work must carry prominent notices stating that it is
     released under this License and any conditions added under section
     7.  This requirement modifies the requirement in section 4 to
-    &quot;keep intact all notices&quot;.
+    "keep intact all notices".
 
     c) You must license the entire work, as a whole, under this
     License to anyone who comes into possession of a copy.  This
@@ -374,7 +246,7 @@ terms of section 4, provided that you also meet all of these conditions:
 works, which are not by their nature extensions of the covered work,
 and which are not combined with it such as to form a larger program,
 in or on a volume of a storage or distribution medium, is called an
-&quot;aggregate&quot; if the compilation and its resulting copyright are not
+"aggregate" if the compilation and its resulting copyright are not
 used to limit the access or legal rights of the compilation's users
 beyond what the individual works permit.  Inclusion of a covered work
 in an aggregate does not cause this License to apply to the other
@@ -432,12 +304,12 @@ in one of these ways:
 from the Corresponding Source as a System Library, need not be
 included in conveying the object code work.
 
-  A &quot;User Product&quot; is either (1) a &quot;consumer product&quot;, which means any
+  A "User Product" is either (1) a "consumer product", which means any
 tangible personal property which is normally used for personal, family,
 or household purposes, or (2) anything designed or sold for incorporation
 into a dwelling.  In determining whether a product is a consumer product,
 doubtful cases shall be resolved in favor of coverage.  For a particular
-product received by a particular user, &quot;normally used&quot; refers to a
+product received by a particular user, "normally used" refers to a
 typical or common use of that class of product, regardless of the status
 of the particular user or of the way in which the particular user
 actually uses, or expects or is expected to use, the product.  A product
@@ -445,7 +317,7 @@ is a consumer product regardless of whether the product has substantial
 commercial, industrial or non-consumer uses, unless such uses represent
 the only significant mode of use of the product.
 
-  &quot;Installation Information&quot; for a User Product means any methods,
+  "Installation Information" for a User Product means any methods,
 procedures, authorization keys, or other information required to install
 and execute modified versions of a covered work in that User Product from
 a modified version of its Corresponding Source.  The information must
@@ -480,7 +352,7 @@ unpacking, reading or copying.
 
   7. Additional Terms.
 
-  &quot;Additional permissions&quot; are terms that supplement the terms of this
+  "Additional permissions" are terms that supplement the terms of this
 License by making exceptions from one or more of its conditions.
 Additional permissions that are applicable to the entire Program shall
 be treated as though they were included in this License, to the extent
@@ -523,8 +395,8 @@ that material) supplement the terms of this License with terms:
     any liability that these contractual assumptions directly impose on
     those licensors and authors.
 
-  All other non-permissive additional terms are considered &quot;further
-restrictions&quot; within the meaning of section 10.  If the Program as you
+  All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10.  If the Program as you
 received it, or any part of it, contains a notice stating that it is
 governed by this License along with a term that is a further
 restriction, you may remove that term.  If a license document contains
@@ -588,7 +460,7 @@ receives a license from the original licensors, to run, modify and
 propagate that work, subject to this License.  You are not responsible
 for enforcing compliance by third parties with this License.
 
-  An &quot;entity transaction&quot; is a transaction transferring control of an
+  An "entity transaction" is a transaction transferring control of an
 organization, or substantially all assets of one, or subdividing an
 organization, or merging organizations.  If propagation of a covered
 work results from an entity transaction, each party to that
@@ -608,17 +480,17 @@ sale, or importing the Program or any portion of it.
 
   11. Patents.
 
-  A &quot;contributor&quot; is a copyright holder who authorizes use under this
+  A "contributor" is a copyright holder who authorizes use under this
 License of the Program or a work on which the Program is based.  The
-work thus licensed is called the contributor's &quot;contributor version&quot;.
+work thus licensed is called the contributor's "contributor version".
 
-  A contributor's &quot;essential patent claims&quot; are all patent claims
+  A contributor's "essential patent claims" are all patent claims
 owned or controlled by the contributor, whether already acquired or
 hereafter acquired, that would be infringed by some manner, permitted
 by this License, of making, using, or selling its contributor version,
 but do not include claims that would be infringed only as a
 consequence of further modification of the contributor version.  For
-purposes of this definition, &quot;control&quot; includes the right to grant
+purposes of this definition, "control" includes the right to grant
 patent sublicenses in a manner consistent with the requirements of
 this License.
 
@@ -627,10 +499,10 @@ patent license under the contributor's essential patent claims, to
 make, use, sell, offer for sale, import and otherwise run, modify and
 propagate the contents of its contributor version.
 
-  In the following three paragraphs, a &quot;patent license&quot; is any express
+  In the following three paragraphs, a "patent license" is any express
 agreement or commitment, however denominated, not to enforce a patent
 (such as an express permission to practice a patent or covenant not to
-sue for patent infringement).  To &quot;grant&quot; such a patent license to a
+sue for patent infringement).  To "grant" such a patent license to a
 party means to make such an agreement or commitment not to enforce a
 patent against the party.
 
@@ -642,7 +514,7 @@ then you must either (1) cause the Corresponding Source to be so
 available, or (2) arrange to deprive yourself of the benefit of the
 patent license for this particular work, or (3) arrange, in a manner
 consistent with the requirements of this License, to extend the patent
-license to downstream recipients.  &quot;Knowingly relying&quot; means you have
+license to downstream recipients.  "Knowingly relying" means you have
 actual knowledge that, but for the patent license, your conveying the
 covered work in a country, or your recipient's use of the covered work
 in a country, would infringe one or more identifiable patents in that
@@ -656,7 +528,7 @@ or convey a specific copy of the covered work, then the patent license
 you grant is automatically extended to all recipients of the covered
 work and works based on it.
 
-  A patent license is &quot;discriminatory&quot; if it does not include within
+  A patent license is "discriminatory" if it does not include within
 the scope of its coverage, prohibits the exercise of, or is
 conditioned on the non-exercise of one or more of the rights that are
 specifically granted under this License.  You may not convey a covered
@@ -707,7 +579,7 @@ address new problems or concerns.
 
   Each version is given a distinguishing version number.  If the
 Program specifies that a certain numbered version of the GNU General
-Public License &quot;or any later version&quot; applies to it, you have the
+Public License "or any later version" applies to it, you have the
 option of following the terms and conditions either of that numbered
 version or of any later version published by the Free Software
 Foundation.  If the Program does not specify a version number of the
@@ -728,7 +600,7 @@ later version.
 
   THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
 APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM &quot;AS IS&quot; WITHOUT WARRANTY
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
 OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
 THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
@@ -767,7 +639,7 @@ free software which everyone can redistribute and change under these terms.
   To do so, attach the following notices to the program.  It is safest
 to attach them to the start of each source file to most effectively
 state the exclusion of warranty; and each file should have at least
-the &quot;copyright&quot; line and a pointer to where the full notice is found.
+the "copyright" line and a pointer to where the full notice is found.
 
     &lt;one line to give the program's name and a brief idea of what it does.&gt;
     Copyright (C) &lt;year&gt;  &lt;name of author&gt;
@@ -797,10 +669,10 @@ notice like this when it starts in an interactive mode:
 
 The hypothetical commands `show w' and `show c' should show the appropriate
 parts of the General Public License.  Of course, your program's commands
-might be different; for a GUI interface, you would use an &quot;about box&quot;.
+might be different; for a GUI interface, you would use an "about box".
 
   You should also get your employer (if you work as a programmer) or school,
-if any, to sign a &quot;copyright disclaimer&quot; for the program, if necessary.
+if any, to sign a "copyright disclaimer" for the program, if necessary.
 For more information on this, and how to apply and follow the GNU GPL, see
 &lt;http://www.gnu.org/licenses/&gt;.
 
@@ -810,93 +682,9 @@ may consider it more useful to permit linking proprietary applications with
 the library.  If this is what you want to do, use the GNU Lesser General
 Public License instead of this License.  But first, please read
 &lt;http://www.gnu.org/philosophy/why-not-lgpl.html&gt;.</property>
-  <property name="wrap_license">False</property>
-  <property name="authors">René Stadler &lt;mail@renestadler.de&gt;</property>
-  <property name="translator_credits" translatable="yes" comments="TRANSLATORS: Replace this string with your names, one name per line.">translator-credits</property>
-  <property name="logo">gst-debug-viewer.png</property>
-</widget>
-
-<widget class="GtkDialog" id="progress_dialog">
-  <property name="visible">True</property>
-  <property name="title" translatable="yes"></property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
-  <property name="modal">True</property>
-  <property name="resizable">False</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="decorated">True</property>
-  <property name="skip_taskbar_hint">False</property>
-  <property name="skip_pager_hint">False</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
-  <property name="urgency_hint">False</property>
-  <property name="has_separator">False</property>
-
-  <child internal-child="vbox">
-    <widget class="GtkVBox" id="dialog-vbox1">
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">0</property>
-
-      <child internal-child="action_area">
-       <widget class="GtkHButtonBox" id="dialog-action_area1">
-         <property name="visible">True</property>
-         <property name="layout_style">GTK_BUTTONBOX_END</property>
-
-         <child>
-           <widget class="GtkButton" id="cancel_button">
-             <property name="visible">True</property>
-             <property name="can_default">True</property>
-             <property name="can_focus">True</property>
-             <property name="label">gtk-cancel</property>
-             <property name="use_stock">True</property>
-             <property name="relief">GTK_RELIEF_NORMAL</property>
-             <property name="focus_on_click">True</property>
-             <property name="response_id">-6</property>
-           </widget>
-         </child>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">False</property>
-         <property name="fill">True</property>
-         <property name="pack_type">GTK_PACK_END</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkVBox" id="vbox3">
-         <property name="border_width">6</property>
-         <property name="visible">True</property>
-         <property name="homogeneous">False</property>
-         <property name="spacing">0</property>
-
-         <child>
-           <widget class="GtkProgressBar" id="progress_bar">
-             <property name="width_request">250</property>
-             <property name="visible">True</property>
-             <property name="orientation">GTK_PROGRESS_LEFT_TO_RIGHT</property>
-             <property name="fraction">0</property>
-             <property name="pulse_step">0.10000000149</property>
-             <property name="text" translatable="yes"></property>
-             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-           </widget>
-           <packing>
-             <property name="padding">12</property>
-             <property name="expand">False</property>
-             <property name="fill">False</property>
-           </packing>
-         </child>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">True</property>
-         <property name="fill">False</property>
-       </packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
-</glade-interface>
+    <property name="wrap_license">False</property>
+    <property name="authors">Ren&#xE9; Stadler &lt;mail@renestadler.de&gt;</property>
+    <property comments="TRANSLATORS: Replace this string with your names, one name per line." name="translator_credits" translatable="yes">translator-credits</property>
+    <property name="logo">gst-debug-viewer.png</property>
+  </object>
+</interface>
diff --git a/debug-viewer/data/main-window.ui b/debug-viewer/data/main-window.ui
new file mode 100644 (file)
index 0000000..ab22805
--- /dev/null
@@ -0,0 +1,120 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+  <object class="GtkWindow" id="main_window">
+    <property name="title" translatable="yes">GStreamer Debug Viewer</property>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_NONE</property>
+    <property name="modal">False</property>
+    <property name="default_width">640</property>
+    <property name="default_height">480</property>
+    <property name="resizable">True</property>
+    <property name="destroy_with_parent">False</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <signal handler="handle_main_window_destroy" last_modification_time="Thu, 05 Oct 2006 20:05:35 GMT" name="destroy"/>
+    <child>
+      <object class="GtkVBox" id="vbox_main">
+        <property name="visible">True</property>
+        <property name="homogeneous">False</property>
+        <property name="spacing">0</property>
+        <child>
+          <object class="GtkVBox" id="vbox_view">
+            <property name="visible">True</property>
+            <property name="homogeneous">False</property>
+            <property name="spacing">0</property>
+            <child>
+              <object class="GtkVPaned" id="vpaned_view">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <child>
+                  <object class="GtkHBox" id="hbox_view">
+                    <property name="visible">True</property>
+                    <property name="homogeneous">False</property>
+                    <property name="spacing">0</property>
+                    <child>
+                      <object class="GtkScrolledWindow" id="log_view_scrolled_window">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                        <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                        <property name="shadow_type">GTK_SHADOW_IN</property>
+                        <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+                        <child>
+                          <object class="GtkTreeView" id="log_view">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="headers_visible">True</property>
+                            <property name="rules_hint">True</property>
+                            <property name="reorderable">True</property>
+                            <property name="enable_search">False</property>
+                            <property name="fixed_height_mode">True</property>
+                            <property name="hover_selection">False</property>
+                            <property name="hover_expand">False</property>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="padding">0</property>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                        <property name="pack_type">GTK_PACK_END</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="shrink">True</property>
+                    <property name="resize">True</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkScrolledWindow" id="line_view_scrolled_window">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
+                    <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                    <property name="shadow_type">GTK_SHADOW_IN</property>
+                    <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+                    <child>
+                      <object class="GtkTreeView" id="line_view">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="headers_visible">False</property>
+                        <property name="rules_hint">True</property>
+                        <property name="reorderable">False</property>
+                        <property name="enable_search">True</property>
+                        <property name="fixed_height_mode">False</property>
+                        <property name="hover_selection">False</property>
+                        <property name="hover_expand">False</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="shrink">True</property>
+                    <property name="resize">False</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="padding">0</property>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+            <property name="pack_type">GTK_PACK_END</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/debug-viewer/data/progress-dialog.ui b/debug-viewer/data/progress-dialog.ui
new file mode 100644 (file)
index 0000000..2328563
--- /dev/null
@@ -0,0 +1,83 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+  <object class="GtkDialog" id="progress_dialog">
+    <property name="visible">True</property>
+    <property name="title" translatable="yes"/>
+    <property name="type">GTK_WINDOW_TOPLEVEL</property>
+    <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
+    <property name="modal">True</property>
+    <property name="resizable">False</property>
+    <property name="destroy_with_parent">False</property>
+    <property name="decorated">True</property>
+    <property name="skip_taskbar_hint">False</property>
+    <property name="skip_pager_hint">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+    <property name="focus_on_map">True</property>
+    <property name="urgency_hint">False</property>
+    <property name="has_separator">False</property>
+    <child internal-child="vbox">
+      <object class="GtkVBox" id="dialog-vbox1">
+        <property name="visible">True</property>
+        <property name="homogeneous">False</property>
+        <property name="spacing">0</property>
+        <child internal-child="action_area">
+          <object class="GtkHButtonBox" id="dialog-action_area1">
+            <property name="visible">True</property>
+            <property name="layout_style">GTK_BUTTONBOX_END</property>
+            <child>
+              <object class="GtkButton" id="cancel_button">
+                <property name="visible">True</property>
+                <property name="can_default">True</property>
+                <property name="can_focus">True</property>
+                <property name="label">gtk-cancel</property>
+                <property name="use_stock">True</property>
+                <property name="relief">GTK_RELIEF_NORMAL</property>
+                <property name="focus_on_click">True</property>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="pack_type">GTK_PACK_END</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkVBox" id="vbox3">
+            <property name="border_width">6</property>
+            <property name="visible">True</property>
+            <property name="homogeneous">False</property>
+            <property name="spacing">0</property>
+            <child>
+              <object class="GtkProgressBar" id="progress_bar">
+                <property name="width_request">250</property>
+                <property name="visible">True</property>
+                <property name="orientation">GTK_PROGRESS_LEFT_TO_RIGHT</property>
+                <property name="fraction">0</property>
+                <property name="pulse_step">0.10000000149</property>
+                <property name="text" translatable="yes"/>
+                <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+              </object>
+              <packing>
+                <property name="padding">12</property>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="padding">0</property>
+            <property name="expand">True</property>
+            <property name="fill">False</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <action-widgets>
+      <action-widget response="-6">cancel_button</action-widget>
+    </action-widgets>
+  </object>
+</interface>
index 869cb81..21a1a8e 100755 (executable)
@@ -328,8 +328,10 @@ setup (cmdclass = cmdclass,
                    "GstDebugViewer.Common",
                    "GstDebugViewer.Plugins"],
        scripts = ["gst-debug-viewer"],
-       data_files = [("share/gst-debug-viewer", ["data/gst-debug-viewer.glade",
-                                              "data/gst-debug-viewer.ui"],),
+       data_files = [("share/gst-debug-viewer", ["data/about-dialog.ui",
+                                                 "data/main-window.ui",
+                                                 "data/gst-debug-viewer.ui",
+                                                 "data/progress-dialog.ui"],),
                      ("share/icons/hicolor/48x48/apps", ["data/gst-debug-viewer.png"],),
                      ("share/icons/hicolor/scalable/apps", ["data/gst-debug-viewer.svg"],)],