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
b77d343b
Commit
b77d343b
authored
Mar 02, 2002
by
Steven M. Gava
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
First work on making config changes dynamic,
dynamic theme changes
parent
03b18834
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
56 additions
and
36 deletions
+56
-36
Lib/idlelib/ColorDelegator.py
Lib/idlelib/ColorDelegator.py
+15
-14
Lib/idlelib/EditorWindow.py
Lib/idlelib/EditorWindow.py
+10
-0
Lib/idlelib/PyShell.py
Lib/idlelib/PyShell.py
+16
-12
Lib/idlelib/configDialog.py
Lib/idlelib/configDialog.py
+7
-8
Lib/idlelib/configHandler.py
Lib/idlelib/configHandler.py
+8
-2
No files found.
Lib/idlelib/ColorDelegator.py
View file @
b77d343b
...
@@ -37,6 +37,7 @@ class ColorDelegator(Delegator):
...
@@ -37,6 +37,7 @@ class ColorDelegator(Delegator):
self
.
prog
=
prog
self
.
prog
=
prog
self
.
idprog
=
idprog
self
.
idprog
=
idprog
self
.
asprog
=
asprog
self
.
asprog
=
asprog
self
.
LoadTagDefs
()
def
setdelegate
(
self
,
delegate
):
def
setdelegate
(
self
,
delegate
):
if
self
.
delegate
is
not
None
:
if
self
.
delegate
is
not
None
:
...
@@ -52,21 +53,21 @@ class ColorDelegator(Delegator):
...
@@ -52,21 +53,21 @@ class ColorDelegator(Delegator):
if
cnf
:
if
cnf
:
apply
(
self
.
tag_configure
,
(
tag
,),
cnf
)
apply
(
self
.
tag_configure
,
(
tag
,),
cnf
)
self
.
tag_raise
(
'sel'
)
self
.
tag_raise
(
'sel'
)
theme
=
idleConf
.
GetOption
(
'main'
,
'Theme'
,
'name'
)
tagdefs
=
{
"COMMENT"
:
idleConf
.
GetHighlight
(
theme
,
"comment"
),
"KEYWORD"
:
idleConf
.
GetHighlight
(
theme
,
"keyword"
),
"STRING"
:
idleConf
.
GetHighlight
(
theme
,
"string"
),
"DEFINITION"
:
idleConf
.
GetHighlight
(
theme
,
"definition"
),
"SYNC"
:
{
'background'
:
None
,
'foreground'
:
None
},
"TODO"
:
{
'background'
:
None
,
'foreground'
:
None
},
"BREAK"
:
idleConf
.
GetHighlight
(
theme
,
"break"
),
# The following is used by ReplaceDialog:
"hit"
:
idleConf
.
GetHighlight
(
theme
,
"hit"
),
}
def
LoadTagDefs
(
self
):
theme
=
idleConf
.
GetOption
(
'main'
,
'Theme'
,
'name'
)
self
.
tagdefs
=
{
"COMMENT"
:
idleConf
.
GetHighlight
(
theme
,
"comment"
),
"KEYWORD"
:
idleConf
.
GetHighlight
(
theme
,
"keyword"
),
"STRING"
:
idleConf
.
GetHighlight
(
theme
,
"string"
),
"DEFINITION"
:
idleConf
.
GetHighlight
(
theme
,
"definition"
),
"SYNC"
:
{
'background'
:
None
,
'foreground'
:
None
},
"TODO"
:
{
'background'
:
None
,
'foreground'
:
None
},
"BREAK"
:
idleConf
.
GetHighlight
(
theme
,
"break"
),
# The following is used by ReplaceDialog:
"hit"
:
idleConf
.
GetHighlight
(
theme
,
"hit"
),
}
if
DEBUG
:
print
'tagdefs'
,
tagdefs
if
DEBUG
:
print
'tagdefs'
,
tagdefs
def
insert
(
self
,
index
,
chars
,
tags
=
None
):
def
insert
(
self
,
index
,
chars
,
tags
=
None
):
...
...
Lib/idlelib/EditorWindow.py
View file @
b77d343b
...
@@ -102,6 +102,9 @@ class EditorWindow:
...
@@ -102,6 +102,9 @@ class EditorWindow:
self
.
vars
=
flist
.
vars
self
.
vars
=
flist
.
vars
self
.
menubar
=
Menu
(
root
)
self
.
menubar
=
Menu
(
root
)
self
.
top
=
top
=
self
.
Toplevel
(
root
,
menu
=
self
.
menubar
)
self
.
top
=
top
=
self
.
Toplevel
(
root
,
menu
=
self
.
menubar
)
#self.top.instanceDict makes flist.inversedict avalable to
#configDialog.py so it can access all EditorWindow instaces
self
.
top
.
instanceDict
=
flist
.
inversedict
self
.
vbar
=
vbar
=
Scrollbar
(
top
,
name
=
'vbar'
)
self
.
vbar
=
vbar
=
Scrollbar
(
top
,
name
=
'vbar'
)
self
.
text_frame
=
text_frame
=
Frame
(
top
)
self
.
text_frame
=
text_frame
=
Frame
(
top
)
self
.
text
=
text
=
Text
(
text_frame
,
name
=
'text'
,
padx
=
5
,
wrap
=
None
,
self
.
text
=
text
=
Text
(
text_frame
,
name
=
'text'
,
padx
=
5
,
wrap
=
None
,
...
@@ -467,6 +470,13 @@ class EditorWindow:
...
@@ -467,6 +470,13 @@ class EditorWindow:
self
.
per
.
removefilter
(
self
.
color
)
self
.
per
.
removefilter
(
self
.
color
)
self
.
color
=
None
self
.
color
=
None
self
.
per
.
insertfilter
(
self
.
undo
)
self
.
per
.
insertfilter
(
self
.
undo
)
def
ResetColorizer
(
self
):
#this function is called from configDialog.py
#to update the colour theme if it is changed
if
self
.
color
:
self
.
color
=
self
.
ColorDelegator
()
self
.
per
.
insertfilter
(
self
.
color
)
def
saved_change_hook
(
self
):
def
saved_change_hook
(
self
):
short
=
self
.
short_title
()
short
=
self
.
short_title
()
...
...
Lib/idlelib/PyShell.py
View file @
b77d343b
...
@@ -134,23 +134,27 @@ class PyShellFileList(FileList):
...
@@ -134,23 +134,27 @@ class PyShellFileList(FileList):
class
ModifiedColorDelegator
(
ColorDelegator
):
class
ModifiedColorDelegator
(
ColorDelegator
):
# Colorizer for the shell window itself
# Colorizer for the shell window itself
def
__init__
(
self
):
ColorDelegator
.
__init__
(
self
)
self
.
LoadTagDefs
()
def
recolorize_main
(
self
):
def
recolorize_main
(
self
):
self
.
tag_remove
(
"TODO"
,
"1.0"
,
"iomark"
)
self
.
tag_remove
(
"TODO"
,
"1.0"
,
"iomark"
)
self
.
tag_add
(
"SYNC"
,
"1.0"
,
"iomark"
)
self
.
tag_add
(
"SYNC"
,
"1.0"
,
"iomark"
)
ColorDelegator
.
recolorize_main
(
self
)
ColorDelegator
.
recolorize_main
(
self
)
tagdefs
=
ColorDelegator
.
tagdefs
.
copy
()
def
LoadTagDefs
(
self
):
theme
=
idleConf
.
GetOption
(
'main'
,
'Theme'
,
'name'
)
ColorDelegator
.
LoadTagDefs
(
self
)
theme
=
idleConf
.
GetOption
(
'main'
,
'Theme'
,
'name'
)
tagdefs
.
update
({
self
.
tagdefs
.
update
({
"stdin"
:
{
'background'
:
None
,
'foreground'
:
None
},
"stdin"
:
{
'background'
:
None
,
'foreground'
:
None
},
"stdout"
:
idleConf
.
GetHighlight
(
theme
,
"stdout"
),
"stdout"
:
idleConf
.
GetHighlight
(
theme
,
"stdout"
),
"stderr"
:
idleConf
.
GetHighlight
(
theme
,
"stderr"
),
"stderr"
:
idleConf
.
GetHighlight
(
theme
,
"stderr"
),
"console"
:
idleConf
.
GetHighlight
(
theme
,
"console"
),
"console"
:
idleConf
.
GetHighlight
(
theme
,
"console"
),
"ERROR"
:
idleConf
.
GetHighlight
(
theme
,
"error"
),
"ERROR"
:
idleConf
.
GetHighlight
(
theme
,
"error"
),
None
:
idleConf
.
GetHighlight
(
theme
,
"normal"
),
None
:
idleConf
.
GetHighlight
(
theme
,
"normal"
),
})
})
class
ModifiedUndoDelegator
(
UndoDelegator
):
class
ModifiedUndoDelegator
(
UndoDelegator
):
...
...
Lib/idlelib/configDialog.py
View file @
b77d343b
...
@@ -23,8 +23,6 @@ class ConfigDialog(Toplevel):
...
@@ -23,8 +23,6 @@ class ConfigDialog(Toplevel):
#Theme Elements. Each theme element key is it's display name.
#Theme Elements. Each theme element key is it's display name.
#The first value of the tuple is the sample area tag name.
#The first value of the tuple is the sample area tag name.
#The second value is the display name list sort index.
#The second value is the display name list sort index.
#The third value indicates whether the element can have a foreground
#or background colour or both.
self
.
themeElements
=
{
'Normal Text'
:(
'normal'
,
'00'
),
self
.
themeElements
=
{
'Normal Text'
:(
'normal'
,
'00'
),
'Python Keywords'
:(
'keyword'
,
'01'
),
'Python Keywords'
:(
'keyword'
,
'01'
),
'Python Definitions'
:(
'definition'
,
'02'
),
'Python Definitions'
:(
'definition'
,
'02'
),
...
@@ -180,8 +178,8 @@ class ConfigDialog(Toplevel):
...
@@ -180,8 +178,8 @@ class ConfigDialog(Toplevel):
frameTheme
=
Frame
(
frame
,
borderwidth
=
2
,
relief
=
GROOVE
)
frameTheme
=
Frame
(
frame
,
borderwidth
=
2
,
relief
=
GROOVE
)
#frameCustom
#frameCustom
self
.
textHighlightSample
=
Text
(
frameCustom
,
relief
=
SOLID
,
borderwidth
=
1
,
self
.
textHighlightSample
=
Text
(
frameCustom
,
relief
=
SOLID
,
borderwidth
=
1
,
font
=
(
'courier'
,
12
,
''
),
cursor
=
'hand2'
,
width
=
10
,
height
=
10
,
font
=
(
'courier'
,
12
,
''
),
cursor
=
'hand2'
,
width
=
21
,
height
=
10
,
takefocus
=
FALSE
,
highlightthickness
=
0
)
takefocus
=
FALSE
,
highlightthickness
=
0
,
wrap
=
NONE
)
text
=
self
.
textHighlightSample
text
=
self
.
textHighlightSample
text
.
bind
(
'<Double-Button-1>'
,
lambda
e
:
'break'
)
text
.
bind
(
'<Double-Button-1>'
,
lambda
e
:
'break'
)
text
.
bind
(
'<B1-Motion>'
,
lambda
e
:
'break'
)
text
.
bind
(
'<B1-Motion>'
,
lambda
e
:
'break'
)
...
@@ -514,7 +512,7 @@ class ConfigDialog(Toplevel):
...
@@ -514,7 +512,7 @@ class ConfigDialog(Toplevel):
self
.
AddChangedItem
(
'main'
,
'General'
,
'editor-on-startup'
,
value
)
self
.
AddChangedItem
(
'main'
,
'General'
,
'editor-on-startup'
,
value
)
def
ResetChangedItems
(
self
):
def
ResetChangedItems
(
self
):
#
changedItems.
When any config item is changed in this dialog, an entry
#When any config item is changed in this dialog, an entry
#should be made in the relevant section (config type) of this
#should be made in the relevant section (config type) of this
#dictionary. The key should be the config file section name and the
#dictionary. The key should be the config file section name and the
#value a dictionary, whose key:value pairs are item=value pairs for
#value a dictionary, whose key:value pairs are item=value pairs for
...
@@ -1086,14 +1084,15 @@ class ConfigDialog(Toplevel):
...
@@ -1086,14 +1084,15 @@ class ConfigDialog(Toplevel):
def
ActivateConfigChanges
(
self
):
def
ActivateConfigChanges
(
self
):
#things that need to be done to make
#things that need to be done to make
#applied config changes dynamic:
#applied config changes dynamic:
#
#update editor/shell font and repaint
#update editor/shell font and repaint
#dynamically update indentation setttings
#dynamically update indentation setttings
#update theme and repaint
#update theme and repaint
#update keybindings and re-bind
#update keybindings and re-bind
#update user help sources menu
#update user help sources menu
pass
winInstances
=
self
.
parent
.
instanceDict
.
keys
()
for
instance
in
winInstances
:
instance
.
ResetColorizer
()
def
Cancel
(
self
):
def
Cancel
(
self
):
self
.
destroy
()
self
.
destroy
()
...
...
Lib/idlelib/configHandler.py
View file @
b77d343b
...
@@ -110,6 +110,13 @@ class IdleUserConfParser(IdleConfParser):
...
@@ -110,6 +110,13 @@ class IdleUserConfParser(IdleConfParser):
self
.
set
(
section
,
option
,
value
)
self
.
set
(
section
,
option
,
value
)
return
1
return
1
def
RemoveFile
(
self
):
"""
Removes the user config file from disk if it exists.
"""
if
os
.
path
.
exists
(
self
.
file
):
os
.
remove
(
self
.
file
)
def
Save
(
self
):
def
Save
(
self
):
"""
"""
If config isn't empty, write file to disk. If config is empty,
If config isn't empty, write file to disk. If config is empty,
...
@@ -119,8 +126,7 @@ class IdleUserConfParser(IdleConfParser):
...
@@ -119,8 +126,7 @@ class IdleUserConfParser(IdleConfParser):
cfgFile
=
open
(
self
.
file
,
'w'
)
cfgFile
=
open
(
self
.
file
,
'w'
)
self
.
write
(
cfgFile
)
self
.
write
(
cfgFile
)
else
:
else
:
if
os
.
path
.
exists
(
self
.
file
):
self
.
RemoveFile
()
os
.
remove
(
self
.
file
)
class
IdleConf
:
class
IdleConf
:
"""
"""
...
...
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