Added an icon and about dialog to player app
[getaclue.git] / player_mainwindow.py
index 8234893..24fabf6 100644 (file)
@@ -4,6 +4,8 @@
 
 # Main window class for GetAClue player
 
+import sys
+import os.path
 import cPickle
 import pygtk
 pygtk.require20 ()
@@ -16,6 +18,19 @@ class MainWindow:
        # typing mode constants
        ACROSS = 1
        DOWN = 2
+       # license text to be displayed in the about dialog
+       LICENSE_TEXT = """GetAClue is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+GetAClue is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GetAClue.  If not, see <http://www.gnu.org/licenses/>."""
 
        # quit verification
        def verify_quit (self):
@@ -161,6 +176,10 @@ class MainWindow:
                                        puzgrid.queue_draw ()
                                dlg.destroy ()
 
+       # callback for menu help about activated event
+       def on_about_activate (self, menu_item):
+               # display the about dialog
+               self.about ()
 
        # function to set the selected row/col based on the number clicked
        # on the clues list and also set the typing mode
@@ -508,10 +527,28 @@ class MainWindow:
                        dlg.run ()
                        dlg.destroy ()
 
+       # about dialog
+       def about (self):
+               dlg = gtk.AboutDialog ()
+               dlg.set_name ("GetAClue Player")
+               dlg.set_copyright ("Copyright 2010 V.Harishankar")
+               dlg.set_website ("http://harishankar.org/software")
+               dlg.set_authors (("Harishankar",))
+               dlg.set_logo (self.window.get_icon())
+               dlg.set_license (self.LICENSE_TEXT)
+               dlg.set_comments ("Create and play Crossword puzzles")
+               dlg.run ()
+               dlg.destroy ()
+
        def __init__ (self, file_to_play = None):
                # load the user interface
                self.ui = gtk.Builder ()
-               self.ui.add_from_file ("playerwindow.glade")
+
+               # Path for the interface file - change this if you are distributing
+               # the application and put the icon, interface file in a different
+               # location!!
+               gladepath = os.path.join (sys.path[0], "playerwindow.glade")
+               self.ui.add_from_file (gladepath)
 
                # window object
                self.window = self.ui.get_object ("mainwindow")