]> granicus.if.org Git - python/commitdiff
aboutDialog.py:
authorKurt B. Kaiser <kbk@shore.net>
Thu, 12 Jun 2003 04:20:56 +0000 (04:20 +0000)
committerKurt B. Kaiser <kbk@shore.net>
Thu, 12 Jun 2003 04:20:56 +0000 (04:20 +0000)
1. Add additional buttons for Python Copyright and Credits
2. Use the Python LICENSE file instead of the old IDLE LICENSE.txt
3. Add additional buttons for IDLE's README and NEWS
4. Implement a method to read text from a _Printer object
5. Rename the Ok button to Close
6. Clean up to conform to Python code formatting standards

textView.py:
1. Change background to white on all platforms
2. Increase height of frame
3. Add an optional parameter to textViewer to allow inserting text into
   the viewer instead of reading a file.
4. Rename the Ok button to Close
 Modified Files:
  aboutDialog.py textView.py

Lib/idlelib/aboutDialog.py
Lib/idlelib/textView.py

index 36c520fb3dd12c7a23fa753e87ac5689df3e2ae3..94dd6cbf0a5252fef331dfe9cb1b95874bf5f2e8 100644 (file)
@@ -1,5 +1,5 @@
-"""
-about box for idle
+"""About Dialog for IDLE
+
 """
 
 from Tkinter import *
@@ -8,107 +8,129 @@ import textView
 import idlever
 
 class AboutDialog(Toplevel):
-    """
-    modal about dialog for idle
+    """Modal about dialog for idle
+
     """
     def __init__(self,parent,title):
         Toplevel.__init__(self, parent)
         self.configure(borderwidth=5)
         self.geometry("+%d+%d" % (parent.winfo_rootx()+30,
-                parent.winfo_rooty()+30))
-        self.bg="#707070"
-        self.fg="#ffffff"
-
+                                  parent.winfo_rooty()+30))
+        self.bg = "#707070"
+        self.fg = "#ffffff"
         self.CreateWidgets()
-        self.resizable(height=FALSE,width=FALSE)
+        self.resizable(height=FALSE, width=FALSE)
         self.title(title)
         self.transient(parent)
         self.grab_set()
         self.protocol("WM_DELETE_WINDOW", self.Ok)
         self.parent = parent
         self.buttonOk.focus_set()
-        #key bindings for this dialog
-        self.bind('<Alt-c>',self.CreditsButtonBinding) #credits button
-        self.bind('<Alt-l>',self.LicenseButtonBinding) #license button
         self.bind('<Return>',self.Ok) #dismiss dialog
         self.bind('<Escape>',self.Ok) #dismiss dialog
         self.wait_window()
 
     def CreateWidgets(self):
-        frameMain = Frame(self,borderwidth=2,relief=SUNKEN)
+        frameMain = Frame(self, borderwidth=2, relief=SUNKEN)
         frameButtons = Frame(self)
-        frameButtons.pack(side=BOTTOM,fill=X)
-        frameMain.pack(side=TOP,expand=TRUE,fill=BOTH)
-        self.buttonOk = Button(frameButtons,text='Ok',
-                command=self.Ok)#,default=ACTIVE
-        self.buttonOk.pack(padx=5,pady=5)
-        #self.picture = Image('photo',data=self.pictureData)
-        frameBg = Frame(frameMain,bg=self.bg)
-        frameBg.pack(expand=TRUE,fill=BOTH)
-        labelTitle = Label(frameBg,text='IDLEfork',fg=self.fg,bg=self.bg,
-                font=('courier', 24, 'bold'))
-        labelTitle.grid(row=0,column=0,sticky=W,padx=10,pady=10)
-        #labelPicture = Label(frameBg,text='[picture]')
-        #image=self.picture,bg=self.bg)
-        #labelPicture.grid(row=0,column=1,sticky=W,rowspan=2,padx=0,pady=3)
-        labelVersion = Label(frameBg,text='version  '+idlever.IDLE_VERSION,
-                fg=self.fg,bg=self.bg)
-        labelVersion.grid(row=1,column=0,sticky=W,padx=10,pady=5)
-        labelDesc = Label(frameBg,
-                text="A development version of Python's lightweight\n"+
-                'Integrated DeveLopment Environment, IDLE.',
-                justify=LEFT,fg=self.fg,bg=self.bg)
-        labelDesc.grid(row=2,column=0,sticky=W,columnspan=3,padx=10,pady=5)
-        labelCopyright = Label(frameBg,
-                text="Copyright (c) 2001 - 2003 Python Software Foundation\nAll Rights Reserved",
-                justify=LEFT,fg=self.fg,bg=self.bg)
-        labelCopyright.grid(row=3,column=0,sticky=W,columnspan=3,padx=10,pady=5)
-        labelLicense = Label(frameBg,
-                text='Released under the Python 2.3 PSF License',
-                justify=LEFT,fg=self.fg,bg=self.bg)
-        labelLicense.grid(row=4,column=0,sticky=W,columnspan=3,padx=10,pady=5)
-        Frame(frameBg,height=5,bg=self.bg).grid(row=5,column=0)
-        labelEmail = Label(frameBg,text='email:  idle-dev@python.org',
-                justify=LEFT,fg=self.fg,bg=self.bg)
+        frameButtons.pack(side=BOTTOM, fill=X)
+        frameMain.pack(side=TOP, expand=TRUE, fill=BOTH)
+        self.buttonOk = Button(frameButtons, text='Close',
+                               command=self.Ok)
+        self.buttonOk.pack(padx=5, pady=5)
+        #self.picture = Image('photo', data=self.pictureData)
+        frameBg = Frame(frameMain, bg=self.bg)
+        frameBg.pack(expand=TRUE, fill=BOTH)
+        labelTitle = Label(frameBg, text='IDLE', fg=self.fg, bg=self.bg,
+                           font=('courier', 24, 'bold'))
+        labelTitle.grid(row=0, column=0, sticky=W, padx=10, pady=10)
+        #labelPicture = Label(frameBg, text='[picture]')
+        #image=self.picture, bg=self.bg)
+        #labelPicture.grid(row=1, column=1, sticky=W, rowspan=2,
+        #                  padx=0, pady=3)
+        byline = "Python's Integrated DeveLopment Environment" + 5*'\n'
+        labelDesc = Label(frameBg, text=byline, justify=LEFT,
+                          fg=self.fg, bg=self.bg)
+        labelDesc.grid(row=2, column=0, sticky=W, columnspan=3, padx=10, pady=5)
+        labelEmail = Label(frameBg, text='email:  idle-dev@python.org',
+                           justify=LEFT, fg=self.fg, bg=self.bg)
         labelEmail.grid(row=6,column=0,columnspan=2,sticky=W,padx=10,pady=0)
-        labelWWW = Label(frameBg,text='www:  http://idlefork.sourceforge.net',
-                justify=LEFT,fg=self.fg,bg=self.bg)
-        labelWWW.grid(row=7,column=0,columnspan=2,sticky=W,padx=10,pady=0)
-        Frame(frameBg,borderwidth=1,relief=SUNKEN,
-                height=2,bg=self.bg).grid(row=8,column=0,sticky=EW,
-                                          columnspan=3, padx=5, pady=5)
-        labelPythonVer = Label(frameBg,text='Python version:  '+
-                sys.version.split()[0],fg=self.fg,bg=self.bg)
-        labelPythonVer.grid(row=9,column=0,sticky=W,padx=10,pady=0)
-        #handle weird tk version num in windoze python >= 1.6 (?!?)
+        labelWWW = Label(frameBg, text='www:  http://www.python.org/idle/',
+                         justify=LEFT, fg=self.fg, bg=self.bg)
+        labelWWW.grid(row=7, column=0, columnspan=2, sticky=W, padx=10, pady=0)
+        Frame(frameBg, borderwidth=1, relief=SUNKEN,
+              height=2, bg=self.bg).grid(row=8, column=0, sticky=EW,
+                                         columnspan=3, padx=5, pady=5)
+        labelPythonVer = Label(frameBg, text='Python version:  ' + \
+                               sys.version.split()[0], fg=self.fg, bg=self.bg)
+        labelPythonVer.grid(row=9, column=0, sticky=W, padx=10, pady=0)
+        # handle weird tk version num in windoze python >= 1.6 (?!?)
         tkVer = `TkVersion`.split('.')
         tkVer[len(tkVer)-1] = str('%.3g' % (float('.'+tkVer[len(tkVer)-1])))[2:]
         if tkVer[len(tkVer)-1] == '':
             tkVer[len(tkVer)-1] = '0'
         tkVer = string.join(tkVer,'.')
-        labelTkVer = Label(frameBg,text='Tk version:  '+
-                tkVer,fg=self.fg,bg=self.bg)
-        labelTkVer.grid(row=9,column=1,sticky=W,padx=2,pady=0)
-
-        self.buttonLicense = Button(frameBg,text='View License',underline=5,
-                width=14,highlightbackground=self.bg,command=self.ShowLicense)#takefocus=FALSE
-        self.buttonLicense.grid(row=10,column=0,sticky=W,padx=10,pady=10)
-        self.buttonCredits = Button(frameBg,text='View Credits',underline=5,
-                width=14,highlightbackground=self.bg,command=self.ShowCredits)#takefocus=FALSE
-        self.buttonCredits.grid(row=10,column=1,columnspan=2,sticky=E,padx=10,pady=10)
+        labelTkVer = Label(frameBg, text='Tk version:  '+
+                           tkVer, fg=self.fg, bg=self.bg)
+        labelTkVer.grid(row=9, column=1, sticky=W, padx=2, pady=0)
+        py_button_f = Frame(frameBg, bg=self.bg)
+        py_button_f.grid(row=10, column=0, columnspan=2, sticky=NSEW)
+        buttonLicense = Button(py_button_f, text='License', width=8,
+                               highlightbackground=self.bg,
+                               command=self.ShowLicense)
+        buttonLicense.pack(side=LEFT, padx=10, pady=10)
+        buttonCopyright = Button(py_button_f, text='Copyright', width=8,
+                                 highlightbackground=self.bg,
+                                 command=self.ShowCopyright)
+        buttonCopyright.pack(side=LEFT, padx=10, pady=10)
+        buttonCredits = Button(py_button_f, text='Credits', width=8,
+                               highlightbackground=self.bg,
+                               command=self.ShowPythonCredits)
+        buttonCredits.pack(side=LEFT, padx=10, pady=10)
+        Frame(frameBg, borderwidth=1, relief=SUNKEN,
+              height=2, bg=self.bg).grid(row=11, column=0, sticky=EW,
+                                         columnspan=3, padx=5, pady=5)
+        idle_v = Label(frameBg, text='IDLE version  ' + idlever.IDLE_VERSION,
+                       fg=self.fg, bg=self.bg)
+        idle_v.grid(row=12, column=0, sticky=W, padx=10, pady=0)
+        idle_button_f = Frame(frameBg, bg=self.bg)
+        idle_button_f.grid(row=13, column=0, columnspan=3, sticky=NSEW)
+        idle_about_b = Button(idle_button_f, text='README', width=8,
+                                highlightbackground=self.bg,
+                                command=self.ShowIDLEAbout)
+        idle_about_b.pack(side=LEFT, padx=10, pady=10)
+        idle_news_b = Button(idle_button_f, text='NEWS', width=8,
+                                highlightbackground=self.bg,
+                                command=self.ShowIDLENEWS)
+        idle_news_b.pack(side=LEFT, padx=10, pady=10)
+        idle_credits_b = Button(idle_button_f, text='Credits', width=8,
+                                highlightbackground=self.bg,
+                                command=self.ShowIDLECredits)
+        idle_credits_b.pack(side=LEFT, padx=10, pady=10)
 
-    def CreditsButtonBinding(self,event):
-        self.buttonCredits.invoke()
+    def ShowLicense(self):
+        self.display_printer_text(license, 'About - License')
 
-    def LicenseButtonBinding(self,event):
-        self.buttonLicense.invoke()
+    def ShowCopyright(self):
+        self.display_printer_text(copyright, 'About - Copyright')
 
-    def ShowLicense(self):
-        self.ViewFile('About - License','LICENSE.txt')
+    def ShowPythonCredits(self):
+        self.display_printer_text(credits, 'About - Python Credits')
 
-    def ShowCredits(self):
+    def ShowIDLECredits(self):
         self.ViewFile('About - Credits','CREDITS.txt')
 
+    def ShowIDLEAbout(self):
+        self.ViewFile('About - Readme', 'README.txt')
+
+    def ShowIDLENEWS(self):
+        self.ViewFile('About - NEWS', 'NEWS.txt')
+
+    def display_printer_text(self, printer, title):
+        printer._Printer__setup()
+        data = '\n'.join(printer._Printer__lines)
+        textView.TextViewer(self, title, None, data)
+
     def ViewFile(self,viewTitle,viewFile):
         fn=os.path.join(os.path.abspath(os.path.dirname(__file__)),viewFile)
         textView.TextViewer(self,viewTitle,fn)
@@ -117,10 +139,10 @@ class AboutDialog(Toplevel):
         self.destroy()
 
 if __name__ == '__main__':
-    #test the dialog
-    root=Tk()
+    # test the dialog
+    root = Tk()
     def run():
         import aboutDialog
         aboutDialog.AboutDialog(root,'About')
-    Button(root,text='Dialog',command=run).pack()
+    Button(root, text='Dialog', command=run).pack()
     root.mainloop()
index 23e8beda41288b220877d9aa130bda8b7c5c749a..be3ade02a09976f81b2fa254eb276ed0319d0ad8 100644 (file)
@@ -1,12 +1,7 @@
-##---------------------------------------------------------------------------##
-##
-## idle - simple text view dialog
-## elguavas
-##
-##---------------------------------------------------------------------------##
-"""
-simple text browser for idle
+"""Simple text browser for IDLE
+
 """
+
 from Tkinter import *
 import tkMessageBox
 
@@ -14,17 +9,19 @@ class TextViewer(Toplevel):
     """
     simple text viewer dialog for idle
     """
-    def __init__(self,parent,title,fileName):
-        """
-        fileName - string,should be an absoulute filename
+    def __init__(self, parent, title, fileName, data=None):
+        """If data exists, load it into viewer, otherwise try to load file.
+
+        fileName - string, should be an absoulute filename
         """
         Toplevel.__init__(self, parent)
         self.configure(borderwidth=5)
-        self.geometry("+%d+%d" % (parent.winfo_rootx()+10,
-                parent.winfo_rooty()+10))
+        self.geometry("=%dx%d+%d+%d" % (625, 500,
+                                        parent.winfo_rootx() + 10,
+                                        parent.winfo_rooty() + 10))
         #elguavas - config placeholders til config stuff completed
-        self.bg=None
-        self.fg=None
+        self.bg = '#ffffff'
+        self.fg = '#000000'
 
         self.CreateWidgets()
         self.title(title)
@@ -36,7 +33,10 @@ class TextViewer(Toplevel):
         #key bindings for this dialog
         self.bind('<Return>',self.Ok) #dismiss dialog
         self.bind('<Escape>',self.Ok) #dismiss dialog
-        self.LoadTextFile(fileName)
+        if data:
+            self.textView.insert(0.0, data)
+        else:
+            self.LoadTextFile(fileName)
         self.textView.config(state=DISABLED)
         self.wait_window()
 
@@ -51,16 +51,17 @@ class TextViewer(Toplevel):
             self.textView.insert(0.0,textFile.read())
 
     def CreateWidgets(self):
-        frameText = Frame(self)
+        frameText = Frame(self, relief=SUNKEN, height=700)
         frameButtons = Frame(self)
-        self.buttonOk = Button(frameButtons,text='Ok',
-                command=self.Ok,takefocus=FALSE,default=ACTIVE)
-        self.scrollbarView = Scrollbar(frameText,orient=VERTICAL,
-                takefocus=FALSE,highlightthickness=0)
-        self.textView = Text(frameText,wrap=WORD,highlightthickness=0)
+        self.buttonOk = Button(frameButtons, text='Close',
+                               command=self.Ok, takefocus=FALSE)
+        self.scrollbarView = Scrollbar(frameText, orient=VERTICAL,
+                                       takefocus=FALSE, highlightthickness=0)
+        self.textView = Text(frameText, wrap=WORD, highlightthickness=0,
+                             fg=self.fg, bg=self.bg)
         self.scrollbarView.config(command=self.textView.yview)
         self.textView.config(yscrollcommand=self.scrollbarView.set)
-        self.buttonOk.pack(padx=5,pady=5)
+        self.buttonOk.pack()
         self.scrollbarView.pack(side=RIGHT,fill=Y)
         self.textView.pack(side=LEFT,expand=TRUE,fill=BOTH)
         frameButtons.pack(side=BOTTOM,fill=X)