summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/idlelib/aboutDialog.py174
-rw-r--r--Lib/idlelib/textView.py47
2 files changed, 122 insertions, 99 deletions
diff --git a/Lib/idlelib/aboutDialog.py b/Lib/idlelib/aboutDialog.py
index 36c520f..94dd6cb 100644
--- a/Lib/idlelib/aboutDialog.py
+++ b/Lib/idlelib/aboutDialog.py
@@ -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()
diff --git a/Lib/idlelib/textView.py b/Lib/idlelib/textView.py
index 23e8bed..be3ade0 100644
--- a/Lib/idlelib/textView.py
+++ b/Lib/idlelib/textView.py
@@ -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)