summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRené Stadler <mail@renestadler.de>2009-03-14 19:38:36 +0200
committerRené Stadler <mail@renestadler.de>2009-03-14 20:07:11 +0200
commit53063926cbf9badb3afcb0f7d1cbfa78cfb7bd70 (patch)
tree6bf6eea8ea7da73ce967e135affeadca1938b18d
parent81725d74bdcefd382c63f534d0d20b83811d0f2a (diff)
Migrate from glade to GtkBuilder
-rw-r--r--GstDebugViewer/Common/GUI.py36
-rw-r--r--GstDebugViewer/GUI.py10
-rw-r--r--GstDebugViewer/__init__.py2
-rw-r--r--data/about-dialog.ui (renamed from data/gst-debug-viewer.glade)326
-rw-r--r--data/main-window.ui120
-rw-r--r--data/progress-dialog.ui83
-rwxr-xr-xsetup.py6
7 files changed, 294 insertions, 289 deletions
diff --git a/GstDebugViewer/Common/GUI.py b/GstDebugViewer/Common/GUI.py
index c9e6008..925f9d1 100644
--- a/GstDebugViewer/Common/GUI.py
+++ b/GstDebugViewer/Common/GUI.py
@@ -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):
diff --git a/GstDebugViewer/GUI.py b/GstDebugViewer/GUI.py
index b907f49..c066478 100644
--- a/GstDebugViewer/GUI.py
+++ b/GstDebugViewer/GUI.py
@@ -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 ()
diff --git a/GstDebugViewer/__init__.py b/GstDebugViewer/__init__.py
index 2bf8812..b10cc0e 100644
--- a/GstDebugViewer/__init__.py
+++ b/GstDebugViewer/__init__.py
@@ -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
diff --git a/data/gst-debug-viewer.glade b/data/about-dialog.ui
index bcdf29e..9d3fe07 100644
--- a/data/gst-debug-viewer.glade
+++ b/data/about-dialog.ui
@@ -1,142 +1,14 @@
-<?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/data/main-window.ui b/data/main-window.ui
new file mode 100644
index 0000000..ab22805
--- /dev/null
+++ b/data/main-window.ui
@@ -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/data/progress-dialog.ui b/data/progress-dialog.ui
new file mode 100644
index 0000000..2328563
--- /dev/null
+++ b/data/progress-dialog.ui
@@ -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>
diff --git a/setup.py b/setup.py
index 869cb81..21a1a8e 100755
--- a/setup.py
+++ b/setup.py
@@ -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"],)],