Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
60fc707b
Commit
60fc707b
authored
Aug 04, 2001
by
Steven M. Gava
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
further work on keybinding page
parent
c1731373
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
119 additions
and
29 deletions
+119
-29
Lib/idlelib/configDialog.py
Lib/idlelib/configDialog.py
+119
-29
No files found.
Lib/idlelib/configDialog.py
View file @
60fc707b
...
...
@@ -10,6 +10,8 @@ configuration dialog
from
Tkinter
import
*
import
tkMessageBox
import
IdleConf
class
ConfigDialog
(
Toplevel
):
"""
configuration dialog for idle
...
...
@@ -22,7 +24,7 @@ class ConfigDialog(Toplevel):
self
.
configure
(
borderwidth
=
5
)
self
.
geometry
(
"+%d+%d"
%
(
parent
.
winfo_rootx
()
+
20
,
parent
.
winfo_rooty
()
+
30
))
self
.
config
=
configDict
self
.
LoadConfig
()
#elguavas - config placeholders til config stuff completed
self
.
bg
=
self
.
cget
(
'bg'
)
self
.
fg
=
None
...
...
@@ -38,7 +40,6 @@ class ConfigDialog(Toplevel):
self
.
parent
=
parent
self
.
framePages
.
focus_set
()
#key bindings for this dialog
# self.bind('<Return>',self.Ok) #dismiss dialog
self
.
bind
(
'<Escape>'
,
self
.
CancelBinding
)
#dismiss dialog, no save
self
.
bind
(
'<Alt-s>'
,
self
.
SaveBinding
)
#dismiss dialog, save
self
.
bind
(
'<F1>'
,
self
.
HelpBinding
)
#context help
...
...
@@ -48,6 +49,17 @@ class ConfigDialog(Toplevel):
self
.
bind
(
'<Alt-g>'
,
self
.
ChangePageBinding
)
self
.
wait_window
()
def
LoadConfig
(
self
):
#self.configParser=IdleConf.idleconf
#self.loadedConfig={}
#self.workingConfig={}
#for key in .keys():
#print self.configParser.getsection('Colors').options()
self
.
workingTestColours
=
{
'Foo-Bg'
:
'#ffffff'
,
'Foo-Fg'
:
'#000000'
,
'Bar-Bg'
:
'#777777'
}
def
Cancel
(
self
):
self
.
destroy
()
...
...
@@ -68,7 +80,7 @@ class ConfigDialog(Toplevel):
def
ChangePage
(
self
):
self
.
pages
[
self
.
pageNum
.
get
()].
lift
()
self
.
title
(
'Settings -'
+
self
.
pageButtons
[
self
.
pageNum
.
get
()].
cget
(
'text'
))
self
.
title
(
'Settings -
'
+
self
.
pageButtons
[
self
.
pageNum
.
get
()].
cget
(
'text'
))
def
ChangePageBinding
(
self
,
event
):
pageKeys
=
(
'f'
,
'h'
,
'k'
,
'g'
)
...
...
@@ -84,11 +96,21 @@ class ConfigDialog(Toplevel):
if
self
.
themeType
.
get
()
==
0
:
self
.
optMenuThemeBuiltin
.
config
(
state
=
NORMAL
)
self
.
optMenuThemeCustom
.
config
(
state
=
DISABLED
)
self
.
buttonDeleteCustom
.
config
(
state
=
DISABLED
)
self
.
buttonDeleteCustom
Theme
.
config
(
state
=
DISABLED
)
elif
self
.
themeType
.
get
()
==
1
:
self
.
optMenuThemeBuiltin
.
config
(
state
=
DISABLED
)
self
.
optMenuThemeCustom
.
config
(
state
=
NORMAL
)
self
.
buttonDeleteCustom
.
config
(
state
=
NORMAL
)
self
.
buttonDeleteCustomTheme
.
config
(
state
=
NORMAL
)
def
SetKeysType
(
self
):
if
self
.
keysType
.
get
()
==
0
:
self
.
optMenuKeysBuiltin
.
config
(
state
=
NORMAL
)
self
.
optMenuKeysCustom
.
config
(
state
=
DISABLED
)
self
.
buttonDeleteCustomKeys
.
config
(
state
=
DISABLED
)
elif
self
.
keysType
.
get
()
==
1
:
self
.
optMenuKeysBuiltin
.
config
(
state
=
DISABLED
)
self
.
optMenuKeysCustom
.
config
(
state
=
NORMAL
)
self
.
buttonDeleteCustomKeys
.
config
(
state
=
NORMAL
)
def
CreateWidgets
(
self
):
self
.
framePages
=
Frame
(
self
)
...
...
@@ -104,7 +126,7 @@ class ConfigDialog(Toplevel):
#page buttons
self
.
pageNum
=
IntVar
()
self
.
pageNum
.
set
(
0
)
buttonPageFont
s
=
Radiobutton
(
framePageButtons
,
value
=
0
,
buttonPageFont
Tab
=
Radiobutton
(
framePageButtons
,
value
=
0
,
text
=
'Font/Tabs'
,
padx
=
5
,
pady
=
5
)
buttonPageHighlight
=
Radiobutton
(
framePageButtons
,
value
=
1
,
text
=
'Highlighting'
,
padx
=
5
,
pady
=
5
)
...
...
@@ -112,7 +134,7 @@ class ConfigDialog(Toplevel):
text
=
'Keys'
,
padx
=
5
,
pady
=
5
)
buttonPageGeneral
=
Radiobutton
(
framePageButtons
,
value
=
3
,
text
=
'General'
,
padx
=
5
,
pady
=
5
)
self
.
pageButtons
=
(
buttonPageFont
s
,
buttonPageHighlight
,
self
.
pageButtons
=
(
buttonPageFont
Tab
,
buttonPageHighlight
,
buttonPageKeys
,
buttonPageGeneral
)
for
button
in
self
.
pageButtons
:
button
.
config
(
command
=
self
.
ChangePage
,
underline
=
0
,
takefocus
=
FALSE
,
...
...
@@ -120,7 +142,7 @@ class ConfigDialog(Toplevel):
selectcolor
=
self
.
bg
,
borderwidth
=
1
)
button
.
pack
(
side
=
LEFT
)
#pages
self
.
pages
=
(
self
.
CreatePageFont
s
(),
self
.
pages
=
(
self
.
CreatePageFont
Tab
(),
self
.
CreatePageHighlight
(),
self
.
CreatePageKeys
(),
self
.
CreatePageGeneral
())
...
...
@@ -135,14 +157,14 @@ class ConfigDialog(Toplevel):
frameActionButtons
.
pack
(
side
=
BOTTOM
)
self
.
framePages
.
pack
(
side
=
TOP
,
expand
=
TRUE
,
fill
=
BOTH
)
def
CreatePageFont
s
(
self
):
def
CreatePageFont
Tab
(
self
):
frame
=
Frame
(
self
.
framePages
,
borderwidth
=
2
,
relief
=
SUNKEN
)
Button
(
frame
,
text
=
'font
s page test'
).
pack
(
padx
=
30
,
pady
=
3
0
)
Button
(
frame
,
text
=
'font
/tabs page test'
).
pack
(
padx
=
90
,
pady
=
9
0
)
return
frame
def
CreatePageHighlight
(
self
):
#tkVars
self
.
t
arget
=
StringVar
()
self
.
highlightT
arget
=
StringVar
()
self
.
builtinTheme
=
StringVar
()
self
.
customTheme
=
StringVar
()
self
.
colour
=
StringVar
()
...
...
@@ -157,19 +179,19 @@ class ConfigDialog(Toplevel):
#body section frames
frameCustom
=
Frame
(
frame
,
borderwidth
=
2
,
relief
=
GROOVE
)
frameTheme
=
Frame
(
frame
,
borderwidth
=
2
,
relief
=
GROOVE
)
#frameCustom
frameTarget
=
Frame
(
frameCustom
)
frameSample
=
Frame
(
frameCustom
,
relief
=
SOLID
,
borderwidth
=
1
)
frameSample
=
Frame
(
frameCustom
,
relief
=
SOLID
,
borderwidth
=
1
,
bg
=
self
.
workingTestColours
[
'Foo-Bg'
])
frameSet
=
Frame
(
frameCustom
)
frameColourSet
=
Frame
(
frameSet
,
relief
=
SOLID
,
borderwidth
=
1
)
frameColourSet
=
Frame
(
frameSet
,
relief
=
SOLID
,
borderwidth
=
1
,
bg
=
self
.
workingTestColours
[
'Foo-Bg'
])
frameFontSet
=
Frame
(
frameSet
)
labelCustomTitle
=
Label
(
frameCustom
,
text
=
'Set Custom Highlighting'
)
labelTargetTitle
=
Label
(
frameTarget
,
text
=
'for : '
)
optMenuTarget
=
OptionMenu
(
frameTarget
,
self
.
t
arget
,
'test target interface item'
,
'test target interface item 2'
)
self
.
t
arget
.
set
(
'test target interface item'
)
self
.
highlightT
arget
,
'test target interface item'
,
'test target interface item 2'
)
self
.
highlightT
arget
.
set
(
'test target interface item'
)
buttonSetColour
=
Button
(
frameColourSet
,
text
=
'Set Colour'
)
labelFontTitle
=
Label
(
frameFontSet
,
text
=
'Set Font Style'
)
checkFontBold
=
Checkbutton
(
frameFontSet
,
variable
=
self
.
fontBold
,
...
...
@@ -177,10 +199,10 @@ class ConfigDialog(Toplevel):
checkFontItalic
=
Checkbutton
(
frameFontSet
,
variable
=
self
.
fontItalic
,
onvalue
=
'Italic'
,
offvalue
=
''
,
text
=
'Italic'
)
labelTestSample
=
Label
(
frameSample
,
justify
=
LEFT
,
text
=
'def Ahem(foo,bar):
\
n
test=foo
\
n
text=bar
\
n
return'
)
buttonSaveCustom
=
Button
(
frameCustom
,
text
=
'def Ahem(foo,bar):
\
n
test=foo
\
n
text=bar
\
n
return'
,
bg
=
self
.
workingTestColours
[
'Foo-Bg'
])
buttonSaveCustomTheme
=
Button
(
frameCustom
,
text
=
'Save as a Custom Theme'
)
#frameTheme
#frameDivider=Frame(frameTheme,relief=SUNKEN,borderwidth=1,
# width=2,height=10)
...
...
@@ -197,13 +219,12 @@ class ConfigDialog(Toplevel):
self
.
customTheme
,
'test custom junk'
,
'test custom junk 2'
)
self
.
customTheme
.
set
(
'test custom junk'
)
self
.
themeType
.
set
(
0
)
self
.
buttonDeleteCustom
=
Button
(
frameTheme
,
text
=
'Delete Custom Theme'
)
self
.
buttonDeleteCustom
Theme
=
Button
(
frameTheme
,
text
=
'Delete Custom Theme'
)
self
.
SetThemeType
()
##widget packing
#body
frameCustom
.
pack
(
side
=
LEFT
,
padx
=
5
,
pady
=
10
,
fill
=
Y
)
frameTheme
.
pack
(
side
=
RIGH
T
,
padx
=
5
,
pady
=
10
,
fill
=
Y
)
frameCustom
.
pack
(
side
=
LEFT
,
padx
=
5
,
pady
=
10
,
expand
=
TRUE
,
fill
=
BOTH
)
frameTheme
.
pack
(
side
=
LEF
T
,
padx
=
5
,
pady
=
10
,
fill
=
Y
)
#frameCustom
labelCustomTitle
.
pack
(
side
=
TOP
,
anchor
=
W
,
padx
=
5
,
pady
=
5
)
frameTarget
.
pack
(
side
=
TOP
,
padx
=
5
,
pady
=
5
,
expand
=
TRUE
,
fill
=
X
)
...
...
@@ -218,8 +239,7 @@ class ConfigDialog(Toplevel):
checkFontBold
.
pack
(
side
=
LEFT
,
anchor
=
W
,
pady
=
2
)
checkFontItalic
.
pack
(
side
=
RIGHT
,
anchor
=
W
)
labelTestSample
.
pack
()
buttonSaveCustom
.
pack
(
side
=
BOTTOM
,
fill
=
X
,
padx
=
5
,
pady
=
5
)
buttonSaveCustomTheme
.
pack
(
side
=
BOTTOM
,
fill
=
X
,
padx
=
5
,
pady
=
5
)
#frameTheme
#frameDivider.pack(side=LEFT,fill=Y,padx=5,pady=5)
labelThemeTitle
.
pack
(
side
=
TOP
,
anchor
=
W
,
padx
=
5
,
pady
=
5
)
...
...
@@ -228,13 +248,83 @@ class ConfigDialog(Toplevel):
radioThemeCustom
.
pack
(
side
=
TOP
,
anchor
=
W
,
padx
=
5
,
pady
=
2
)
self
.
optMenuThemeBuiltin
.
pack
(
side
=
TOP
,
fill
=
X
,
padx
=
5
,
pady
=
5
)
self
.
optMenuThemeCustom
.
pack
(
side
=
TOP
,
fill
=
X
,
anchor
=
W
,
padx
=
5
,
pady
=
5
)
self
.
buttonDeleteCustom
.
pack
(
side
=
TOP
,
fill
=
X
,
padx
=
5
,
pady
=
5
)
self
.
buttonDeleteCustomTheme
.
pack
(
side
=
TOP
,
fill
=
X
,
padx
=
5
,
pady
=
5
)
return
frame
def
CreatePageKeys
(
self
):
#tkVars
self
.
bindingTarget
=
StringVar
()
self
.
builtinKeys
=
StringVar
()
self
.
customKeys
=
StringVar
()
self
.
keyChars
=
StringVar
()
self
.
keyCtrl
=
StringVar
()
self
.
keyAlt
=
StringVar
()
self
.
keyShift
=
StringVar
()
self
.
keysType
=
IntVar
()
##widget creation
#body frame
frame
=
Frame
(
self
.
framePages
,
borderwidth
=
2
,
relief
=
SUNKEN
)
Button
(
frame
,
text
=
'keys page test'
).
pack
(
padx
=
90
,
pady
=
90
)
#body section frames
frameCustom
=
Frame
(
frame
,
borderwidth
=
2
,
relief
=
GROOVE
)
frameKeySets
=
Frame
(
frame
,
borderwidth
=
2
,
relief
=
GROOVE
)
#frameCustom
frameTarget
=
Frame
(
frameCustom
)
frameSet
=
Frame
(
frameCustom
)
labelCustomTitle
=
Label
(
frameCustom
,
text
=
'Set Custom Key Bindings'
)
labelTargetTitle
=
Label
(
frameTarget
,
text
=
'Action'
)
scrollTarget
=
Scrollbar
(
frameTarget
)
listTarget
=
Listbox
(
frameTarget
)
labelKeyBindTitle
=
Label
(
frameSet
,
text
=
'Binding'
)
labelModifierTitle
=
Label
(
frameSet
,
text
=
'Modifier:'
)
checkCtrl
=
Checkbutton
(
frameSet
,
text
=
'Ctrl'
)
checkAlt
=
Checkbutton
(
frameSet
,
text
=
'Alt'
)
checkShift
=
Checkbutton
(
frameSet
,
text
=
'Shift'
)
labelKeyEntryTitle
=
Label
(
frameSet
,
text
=
'Key:'
)
entryKey
=
Entry
(
frameSet
,
width
=
4
)
buttonSaveCustomKeys
=
Button
(
frameCustom
,
text
=
'Save as a Custom Key Set'
)
#frameKeySets
labelKeysTitle
=
Label
(
frameKeySets
,
text
=
'Select a Key Binding Set'
)
labelTypeTitle
=
Label
(
frameKeySets
,
text
=
'Select : '
)
radioKeysBuiltin
=
Radiobutton
(
frameKeySets
,
variable
=
self
.
keysType
,
value
=
0
,
command
=
self
.
SetKeysType
,
text
=
'a Built-in Key Set'
)
radioKeysCustom
=
Radiobutton
(
frameKeySets
,
variable
=
self
.
keysType
,
value
=
1
,
command
=
self
.
SetKeysType
,
text
=
'a Custom Key Set'
)
self
.
optMenuKeysBuiltin
=
OptionMenu
(
frameKeySets
,
self
.
builtinKeys
,
'test builtin junk'
,
'test builtin junk 2'
)
self
.
builtinKeys
.
set
(
'test builtin junk'
)
self
.
optMenuKeysCustom
=
OptionMenu
(
frameKeySets
,
self
.
customKeys
,
'test custom junk'
,
'test custom junk 2'
)
self
.
customKeys
.
set
(
'test custom junk'
)
self
.
keysType
.
set
(
0
)
self
.
buttonDeleteCustomKeys
=
Button
(
frameKeySets
,
text
=
'Delete Custom Key Set'
)
self
.
SetKeysType
()
##widget packing
#body
frameCustom
.
pack
(
side
=
LEFT
,
padx
=
5
,
pady
=
5
,
expand
=
TRUE
,
fill
=
BOTH
)
frameKeySets
.
pack
(
side
=
LEFT
,
padx
=
5
,
pady
=
5
,
fill
=
Y
)
#frameCustom
labelCustomTitle
.
pack
(
side
=
TOP
,
anchor
=
W
,
padx
=
5
,
pady
=
5
)
buttonSaveCustomKeys
.
pack
(
side
=
BOTTOM
,
fill
=
X
,
padx
=
5
,
pady
=
5
)
frameTarget
.
pack
(
side
=
LEFT
,
padx
=
5
,
pady
=
5
,
fill
=
Y
)
frameSet
.
pack
(
side
=
LEFT
,
padx
=
5
,
pady
=
5
,
fill
=
Y
)
labelTargetTitle
.
pack
(
side
=
TOP
,
anchor
=
W
)
scrollTarget
.
pack
(
side
=
RIGHT
,
anchor
=
W
,
fill
=
Y
)
listTarget
.
pack
(
side
=
TOP
,
anchor
=
W
,
expand
=
TRUE
,
fill
=
BOTH
)
labelKeyBindTitle
.
pack
(
side
=
TOP
,
anchor
=
W
)
labelModifierTitle
.
pack
(
side
=
TOP
,
anchor
=
W
,
pady
=
5
)
checkCtrl
.
pack
(
side
=
TOP
,
anchor
=
W
)
checkAlt
.
pack
(
side
=
TOP
,
anchor
=
W
,
pady
=
2
)
checkShift
.
pack
(
side
=
TOP
,
anchor
=
W
)
labelKeyEntryTitle
.
pack
(
side
=
TOP
,
anchor
=
W
,
pady
=
5
)
entryKey
.
pack
(
side
=
TOP
,
anchor
=
W
)
#frameKeySets
labelKeysTitle
.
pack
(
side
=
TOP
,
anchor
=
W
,
padx
=
5
,
pady
=
5
)
labelTypeTitle
.
pack
(
side
=
TOP
,
anchor
=
W
,
padx
=
5
,
pady
=
5
)
radioKeysBuiltin
.
pack
(
side
=
TOP
,
anchor
=
W
,
padx
=
5
)
radioKeysCustom
.
pack
(
side
=
TOP
,
anchor
=
W
,
padx
=
5
,
pady
=
2
)
self
.
optMenuKeysBuiltin
.
pack
(
side
=
TOP
,
fill
=
X
,
padx
=
5
,
pady
=
5
)
self
.
optMenuKeysCustom
.
pack
(
side
=
TOP
,
fill
=
X
,
anchor
=
W
,
padx
=
5
,
pady
=
5
)
self
.
buttonDeleteCustomKeys
.
pack
(
side
=
TOP
,
fill
=
X
,
padx
=
5
,
pady
=
5
)
return
frame
def
CreatePageGeneral
(
self
):
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment