diff options
author | Mike Fulbright <msf@redhat.com> | 2003-03-18 22:46:29 +0000 |
---|---|---|
committer | Mike Fulbright <msf@redhat.com> | 2003-03-18 22:46:29 +0000 |
commit | aaf93139005c97ab7002451ed6f28e2d37c8b216 (patch) | |
tree | 40b34c46cebf619c0c27ad41e87822120ca2cda6 /iw | |
parent | 5a5920ac6e5ea289cf23959736027ecf41d63a7f (diff) | |
download | anaconda-aaf93139005c97ab7002451ed6f28e2d37c8b216.tar.gz anaconda-aaf93139005c97ab7002451ed6f28e2d37c8b216.tar.xz anaconda-aaf93139005c97ab7002451ed6f28e2d37c8b216.zip |
made release notes viewer a separate application
Diffstat (limited to 'iw')
-rwxr-xr-x | iw/release_notes_viewer_gui.py | 162 |
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() + |