[ontv] Move program window gui to .ui file
- From: Olof Kindgren <olki src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [ontv] Move program window gui to .ui file
- Date: Sun, 16 Jan 2011 16:38:43 +0000 (UTC)
commit 45a7fac56206bdffb739509ee3ff736270e9a6c8
Author: Olof Kindgren <olki src gnome org>
Date: Sun Jan 16 17:36:43 2011 +0100
Move program window gui to .ui file
Most parts of program window is now moved to a .ui file. Still need
to manually do set_keep_above, as I haven't found how to do that in
glade 3
data/Makefile.am | 1 +
data/program_window.ui | 42 +++++++++++++++++++++++++++++++++++
ontv/gui.py | 1 +
ontv/window.py | 57 ++++++++++++++++++-----------------------------
4 files changed, 66 insertions(+), 35 deletions(-)
---
diff --git a/data/Makefile.am b/data/Makefile.am
index e0613b4..8d77ec4 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -37,6 +37,7 @@ glade_DATA = \
program_dialog.ui \
search_dialog.ui \
preferences_dialog.ui \
+ program_window.ui \
status_icon.ui
if GNOME_APPLET
diff --git a/data/program_window.ui b/data/program_window.ui
new file mode 100644
index 0000000..31d0068
--- /dev/null
+++ b/data/program_window.ui
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <requires lib="gtk+" version="2.16"/>
+ <!-- interface-naming-policy project-wide -->
+ <object class="GtkWindow" id="program_window">
+ <property name="resizable">False</property>
+ <property name="skip_taskbar_hint">True</property>
+ <property name="skip_pager_hint">True</property>
+ <property name="decorated">False</property>
+ <signal name="key_press_event" handler="on_program_window_key_press_event"/>
+ <child>
+ <object class="GtkFrame" id="top_frame">
+ <property name="visible">True</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">in</property>
+ <child>
+ <object class="GtkVBox" id="top_vbox">
+ <property name="visible">True</property>
+ <property name="border_width">6</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkHBox" id="top_hbox">
+ <property name="visible">True</property>
+ <property name="border_width">6</property>
+ <property name="spacing">6</property>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <child type="label_item">
+ <placeholder/>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/ontv/gui.py b/ontv/gui.py
index 7170571..00802d2 100644
--- a/ontv/gui.py
+++ b/ontv/gui.py
@@ -33,6 +33,7 @@ channel_dialog_ui_file = os.path.join(DATA_DIR, "channel_dialog.ui")
program_dialog_ui_file = os.path.join(DATA_DIR, "program_dialog.ui")
search_dialog_ui_file = os.path.join(DATA_DIR, "search_dialog.ui")
preferences_dialog_ui_file = os.path.join(DATA_DIR, "preferences_dialog.ui")
+program_window_ui_file = os.path.join(DATA_DIR, "program_window.ui")
icon_theme = gtk.icon_theme_get_default()
def get_icon_list(sizes):
diff --git a/ontv/window.py b/ontv/window.py
index df2abc0..08a6d95 100644
--- a/ontv/window.py
+++ b/ontv/window.py
@@ -27,9 +27,10 @@ import gobject
import pango
from config import Configuration
-from gui import ProgramContextMenu
+from gui import ProgramContextMenu, program_window_ui_file
from reminders import Reminders, Reminder
from notify import Notification
+from ontv import NAME
TIMEOUT = 60000
@@ -272,44 +273,30 @@ class ProgramTimeLeftBar(ProgramBar, gtk.Label):
Notification(self.program, self.get_readable_time)
return True
-class ProgramWindow(gtk.Window):
+class ProgramWindow:
def __init__(self, xmltvfile):
- gtk.Window.__init__(self, gtk.WINDOW_TOPLEVEL)
+ builder = gtk.Builder()
+ builder.set_translation_domain(NAME.lower())
+ builder.add_from_file(program_window_ui_file)
+ builder.connect_signals(self)
+ self.win = builder.get_object("program_window")
xmltvfile.connect("loading-done", self.__xmltvfile_loading_done)
self.cpt = CurrentProgramTable(xmltvfile.listings)
self.upt = UpcomingProgramTable(xmltvfile.listings)
- self.connect("key-press-event", self.__key_press_event)
+ self.win.set_keep_above(True)
- self.set_decorated(False)
- self.set_resizable(False)
- self.set_keep_above(True)
- self.set_skip_pager_hint(True)
- self.set_skip_taskbar_hint(True)
-
- self.vbox = gtk.VBox(False, 6)
- self.vbox.set_border_width(6)
-
- self.hbox = gtk.HBox(False, 6)
- self.hbox.set_border_width(6)
-
- self.vbox.pack_start(self.hbox)
+ self.vbox = builder.get_object("top_vbox")
+ self.hbox = builder.get_object("top_hbox")
self.hbox.pack_start(self.cpt)
self.position_upcoming_programs(xmltvfile.config.upcoming_programs_below)
-
- frame = gtk.Frame()
- frame.add(self.vbox)
- frame.set_shadow_type(gtk.SHADOW_IN)
-
- self.add(frame)
-
self.config = Configuration()
def is_visible(self):
- return self.props.visible
+ return self.win.props.visible
def __xmltvfile_loading_done(self, xmltvfile, listings):
if listings:
@@ -317,25 +304,25 @@ class ProgramWindow(gtk.Window):
self.upt.listings = listings
self.update()
- def __key_press_event(self, window, event):
+ def on_program_window_key_press_event(self, window, event):
if event.keyval == gtk.keysyms.Escape:
window.hide()
def get_window_size(self):
- self.realize()
+ self.win.realize()
gtk.gdk.flush()
- (w, h) = self.get_size()
- (w, h) = self.size_request()
+ (w, h) = self.win.get_size()
+ (w, h) = self.win.size_request()
return (w, h)
def hide_window(self):
- self.hide()
+ self.win.hide()
def show_window(self, window_position):
self.position_window(window_position)
- self.stick()
- self.show_all()
- self.grab_focus()
+ self.win.stick()
+ self.win.show_all()
+ self.win.grab_focus()
if not self.config.display_current_programs:
self.cpt.hide()
if not self.config.display_upcoming_programs:
@@ -345,8 +332,8 @@ class ProgramWindow(gtk.Window):
(x, y, gravity) = window_position
- self.move(x, y)
- self.set_gravity(gravity)
+ self.win.move(x, y)
+ self.win.set_gravity(gravity)
def position_upcoming_programs(self, below):
if below:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]