diff options
-rw-r--r-- | Lib/idlelib/aboutDialog.py | 174 | ||||
-rw-r--r-- | Lib/idlelib/textView.py | 47 |
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) |