summaryrefslogtreecommitdiffstats
path: root/iw
diff options
context:
space:
mode:
authorMike Fulbright <msf@redhat.com>2003-03-18 22:46:29 +0000
committerMike Fulbright <msf@redhat.com>2003-03-18 22:46:29 +0000
commitaaf93139005c97ab7002451ed6f28e2d37c8b216 (patch)
tree40b34c46cebf619c0c27ad41e87822120ca2cda6 /iw
parent5a5920ac6e5ea289cf23959736027ecf41d63a7f (diff)
downloadanaconda-aaf93139005c97ab7002451ed6f28e2d37c8b216.tar.gz
anaconda-aaf93139005c97ab7002451ed6f28e2d37c8b216.tar.xz
anaconda-aaf93139005c97ab7002451ed6f28e2d37c8b216.zip
made release notes viewer a separate application
Diffstat (limited to 'iw')
-rwxr-xr-xiw/release_notes_viewer_gui.py162
1 files changed, 162 insertions, 0 deletions
diff --git a/iw/release_notes_viewer_gui.py b/iw/release_notes_viewer_gui.py
new file mode 100755
index 000000000..77c3a84f2
--- /dev/null
+++ b/iw/release_notes_viewer_gui.py
@@ -0,0 +1,162 @@
+#!/usr/bin/python
+#
+# release_notes_viewer_iw.py - viewer for release notes
+#
+# Michael Fulbright <msf@redhat.com>
+#
+# Copyright 2003 Red Hat, Inc.
+#
+# This software may be freely redistributed under the terms of the GNU
+# library public license.
+#
+# You should have received a copy of the GNU Library Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+
+import sys
+import os
+import gtk
+
+from rhpl.translate import _, N_
+
+sys.path.append('/usr/lib/anaconda')
+
+from gui import TextViewBrowser, addFrame
+import htmlbuffer
+
+screenshot = None
+
+def loadReleaseNotes(fn):
+ if os.access(fn, os.R_OK):
+ file = open(fn, "r")
+ if fn.endswith('.html'):
+ buffer = htmlbuffer.HTMLBuffer()
+ buffer.feed(file.read())
+ return buffer.get_buffer()
+ else:
+ buffer = gtk.TextBuffer(None)
+ buffer.set_text(file.read())
+ file.close()
+ return buffer
+
+ buffer = gtk.TextBuffer(None)
+ buffer.set_text(_("Release notes are missing.\n"))
+
+ return buffer
+
+def relnotes_closed(widget, data):
+ sys.exit(0)
+
+
+def exposeCB(widget, event, data):
+ global screenshot
+
+ width = gtk.gdk.screen_width()
+ height = gtk.gdk.screen_height()
+ gc = gtk.gdk.gc_new(widget.window)
+ screenshot.render_to_drawable(widget.window,
+ gc,
+ 0, 0,
+ 0, 0,
+ width, height,
+ gtk.gdk.RGB_DITHER_NONE,
+ 0, 0)
+
+#
+# MAIN
+#
+if __name__ == "__main__":
+
+ take_screenshot = 0
+
+ #
+ # cover up background with screenshot so they cant do anything to it
+ #
+
+ if take_screenshot:
+ width = gtk.gdk.screen_width()
+ height = gtk.gdk.screen_height()
+ screenshot = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, gtk.FALSE, 8,
+ width, height)
+
+ screenshot.get_from_drawable(gtk.gdk.get_default_root_window(),
+ gtk.gdk.colormap_get_system(),
+ 0, 0, 0, 0,
+ width, height)
+
+ screenshot.save ("testimage", "png")
+
+ win = gtk.Window(gtk.WINDOW_TOPLEVEL)
+
+ area = gtk.DrawingArea()
+ area.set_size_request(width, height)
+ area.connect("expose-event", exposeCB, None)
+
+ win.add(area)
+ win.show_all()
+
+ #
+ # now do release notes dialog
+ #
+
+ textWin = gtk.Dialog(flags=gtk.DIALOG_MODAL)
+
+ table = gtk.Table(3, 3, gtk.FALSE)
+ textWin.vbox.pack_start(table)
+ textWin.add_button('gtk-close', gtk.RESPONSE_NONE)
+ textWin.connect("response", relnotes_closed)
+ vbox1 = gtk.VBox ()
+ vbox1.set_border_width (10)
+ frame = gtk.Frame (_("Release Notes"))
+ frame.add(vbox1)
+ frame.set_label_align (0.5, 0.5)
+ frame.set_shadow_type (gtk.SHADOW_NONE)
+
+ textWin.set_position (gtk.WIN_POS_CENTER)
+
+ relnotes = loadReleaseNotes(sys.argv[1])
+
+ if relnotes is not None:
+ text = TextViewBrowser()
+ text.set_buffer(relnotes)
+
+ sw = gtk.ScrolledWindow()
+ sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_ALWAYS)
+ sw.set_shadow_type(gtk.SHADOW_IN)
+ sw.add(text)
+ vbox1.pack_start(sw)
+
+ a = gtk.Alignment (0, 0, 1.0, 1.0)
+ a.add (frame)
+
+ textWin.set_default_size (635, 393)
+ textWin.set_size_request (635, 393)
+ textWin.set_position (gtk.WIN_POS_CENTER)
+
+ table.attach (a, 1, 2, 1, 2,
+ gtk.FILL | gtk.EXPAND,
+ gtk.FILL | gtk.EXPAND, 5, 5)
+
+ textWin.set_border_width(0)
+ addFrame(textWin, _("Release Notes"))
+ textWin.show_all()
+ else:
+ textWin.set_position (gtk.WIN_POS_CENTER)
+ label = gtk.Label(_("Unable to load file!"))
+
+ table.attach (label, 1, 2, 1, 2,
+ gtk.FILL | gtk.EXPAND, gtk.FILL | gtk.EXPAND, 5, 5)
+
+ textWin.set_border_width(0)
+ addFrame(textWin)
+ textWin.show_all()
+
+ # set cursor to normal (assuming that anaconda set it to busy when
+ # it exec'd this viewer app to give progress indicator to user).
+ root = gtk.gdk.get_default_root_window()
+ cursor = gtk.gdk.Cursor(gtk.gdk.LEFT_PTR)
+ root.set_cursor(cursor)
+
+ gtk.main()
+