Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 2d4e03b

Browse files
author
Steven M. Gava
committed
changes to use new tabpages classes
1 parent 34b8851 commit 2d4e03b

1 file changed

Lines changed: 14 additions & 67 deletions

File tree

Lib/idlelib/configDialog.py

Lines changed: 14 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,3 @@
1-
##---------------------------------------------------------------------------##
2-
##
3-
## idle - configuration dialog
4-
## elguavas
5-
##
6-
##---------------------------------------------------------------------------##
71
"""
82
configuration dialog
93
"""
@@ -12,6 +6,7 @@
126

137
from configHandler import idleConf
148
from dynOptionMenuWidget import DynOptionMenu
9+
from tabpage import TabPageSet
1510

1611
class ConfigDialog(Toplevel):
1712
"""
@@ -41,20 +36,15 @@ def __init__(self,parent,title):
4136
'Shell Stderr Foreground':('stderr','11','fg')}
4237
self.CreateWidgets()
4338
self.resizable(height=FALSE,width=FALSE)
44-
self.ChangePage()
4539
self.transient(parent)
4640
self.grab_set()
4741
self.protocol("WM_DELETE_WINDOW", self.Cancel)
4842
self.parent = parent
49-
self.framePages.focus_set()
43+
self.tabPages.focus_set()
5044
#key bindings for this dialog
5145
self.bind('<Escape>',self.CancelBinding) #dismiss dialog, no save
5246
self.bind('<Alt-a>',self.ApplyBinding) #apply changes, save
5347
self.bind('<F1>',self.HelpBinding) #context help
54-
self.bind('<Alt-f>',self.ChangePageBinding)
55-
self.bind('<Alt-h>',self.ChangePageBinding)
56-
self.bind('<Alt-k>',self.ChangePageBinding)
57-
self.bind('<Alt-g>',self.ChangePageBinding)
5848
self.LoadConfigs()
5949
self.wait_window()
6050

@@ -82,25 +72,6 @@ def ApplyBinding(self,event):
8272
def HelpBinding(self,event):
8373
self.Help()
8474

85-
def ChangePage(self):
86-
#pop up the active 'tab' only
87-
for button in self.pageButtons: button.master.config(relief=RIDGE)
88-
self.pageButtons[self.pageNum.get()].master.config(relief=RAISED)
89-
#switch page
90-
self.pages[self.pageNum.get()].lift()
91-
self.title('Settings - '+
92-
self.pageButtons[self.pageNum.get()].cget('text'))
93-
94-
def ChangePageBinding(self,event):
95-
pageKeys=('f','h','k','g')
96-
pos=0
97-
for key in pageKeys:
98-
if event.char == key:
99-
self.pageNum.set(pos)
100-
self.ChangePage()
101-
return
102-
pos=pos+1
103-
10475
def SetThemeType(self):
10576
if self.themeIsBuiltin.get():
10677
self.optMenuThemeBuiltin.config(state=NORMAL)
@@ -171,9 +142,9 @@ def SetColourSample(self):
171142
self.frameColourSet.config(bg=colour)
172143

173144
def CreateWidgets(self):
174-
self.framePages = Frame(self)
145+
self.tabPages = TabPageSet(self,
146+
pageNames=['Fonts/Tabs','Highlighting','Keys','General'])
175147
frameActionButtons = Frame(self)
176-
framePageButtons = Frame(self.framePages)
177148
#action buttons
178149
self.buttonHelp = Button(frameActionButtons,text='Help',
179150
command=self.Help,takefocus=FALSE)
@@ -183,40 +154,17 @@ def CreateWidgets(self):
183154
command=self.Apply,underline=0,takefocus=FALSE)
184155
self.buttonCancel = Button(frameActionButtons,text='Cancel',
185156
command=self.Cancel,takefocus=FALSE)
186-
#page buttons
187-
self.pageNum=IntVar(self)
188-
self.pageNum.set(0)
189-
pageButtonNames=('Fonts/Tabs','Highlighting','Keys','General')
190-
self.pageButtons=[]
191-
buttonValue=0
192-
buttonSelColour=framePageButtons.cget('bg')
193-
for name in pageButtonNames:
194-
buttonFrame=Frame(framePageButtons,borderwidth=2,relief=RIDGE)
195-
buttonFrame.pack(side=LEFT)
196-
button = Radiobutton(buttonFrame,command=self.ChangePage,
197-
value=buttonValue,padx=5,pady=5,takefocus=FALSE,underline=0,
198-
indicatoron=FALSE,highlightthickness=0,variable=self.pageNum,
199-
selectcolor=buttonSelColour,borderwidth=0,text=name)
200-
button.pack()
201-
button.lift()
202-
self.pageButtons.append(button)
203-
buttonValue=buttonValue+1
204-
#pages
205-
self.pages=(self.CreatePageFontTab(),
206-
self.CreatePageHighlight(),
207-
self.CreatePageKeys(),
208-
self.CreatePageGeneral())
209-
210-
#grid in framePages so we can overlap pages
211-
framePageButtons.grid(row=0,column=0,sticky=NSEW)
212-
for page in self.pages: page.grid(row=1,column=0,sticky=(N,S,E,W))
213-
157+
self.CreatePageFontTab()
158+
self.CreatePageHighlight()
159+
self.CreatePageKeys()
160+
self.CreatePageGeneral()
214161
self.buttonHelp.pack(side=RIGHT,padx=5,pady=5)
215162
self.buttonOk.pack(side=LEFT,padx=5,pady=5)
216163
self.buttonApply.pack(side=LEFT,padx=5,pady=5)
217164
self.buttonCancel.pack(side=LEFT,padx=5,pady=5)
218165
frameActionButtons.pack(side=BOTTOM)
219-
self.framePages.pack(side=TOP,expand=TRUE,fill=BOTH)
166+
self.tabPages.pack(side=TOP,expand=TRUE,fill=BOTH)
167+
220168

221169
def CreatePageFontTab(self):
222170
#tkVars
@@ -228,7 +176,7 @@ def CreatePageFontTab(self):
228176
self.editFont=tkFont.Font(self,('courier',12,'normal'))
229177
##widget creation
230178
#body frame
231-
frame=Frame(self.framePages,borderwidth=2,relief=RAISED)
179+
frame=self.tabPages.pages['Fonts/Tabs']['page']
232180
#body section frames
233181
frameFont=Frame(frame,borderwidth=2,relief=GROOVE)
234182
frameIndent=Frame(frame,borderwidth=2,relief=GROOVE)
@@ -314,7 +262,7 @@ def CreatePageHighlight(self):
314262
self.highlightTarget.trace_variable('w',self.SetHighlightTargetBinding)
315263
##widget creation
316264
#body frame
317-
frame=Frame(self.framePages,borderwidth=2,relief=RAISED)
265+
frame=self.tabPages.pages['Highlighting']['page']
318266
#body section frames
319267
frameCustom=Frame(frame,borderwidth=2,relief=GROOVE)
320268
frameTheme=Frame(frame,borderwidth=2,relief=GROOVE)
@@ -404,7 +352,7 @@ def CreatePageKeys(self):
404352
self.keysAreDefault=IntVar(self)
405353
##widget creation
406354
#body frame
407-
frame=Frame(self.framePages,borderwidth=2,relief=RAISED)
355+
frame=self.tabPages.pages['Keys']['page']
408356
#body section frames
409357
frameCustom=Frame(frame,borderwidth=2,relief=GROOVE)
410358
frameKeySets=Frame(frame,borderwidth=2,relief=GROOVE)
@@ -437,7 +385,6 @@ def CreatePageKeys(self):
437385
self.optMenuKeysCustom=DynOptionMenu(frameKeySets,
438386
self.customKeys,None,command=None)
439387
self.buttonDeleteCustomKeys=Button(frameKeySets,text='Delete Custom Key Set')
440-
# self.SetKeysType()
441388
##widget packing
442389
#body
443390
frameCustom.pack(side=LEFT,padx=5,pady=5,expand=TRUE,fill=BOTH)
@@ -475,7 +422,7 @@ def CreatePageGeneral(self):
475422
self.extState=IntVar(self)
476423
#widget creation
477424
#body
478-
frame=Frame(self.framePages,borderwidth=2,relief=RAISED)
425+
frame=self.tabPages.pages['General']['page']
479426
#body section frames
480427
frameRun=Frame(frame,borderwidth=2,relief=GROOVE)
481428
frameWinSize=Frame(frame,borderwidth=2,relief=GROOVE)

0 commit comments

Comments
 (0)