@@ -153,22 +153,29 @@ def create_action_buttons(self):
153
153
def create_page_font_tab (self ):
154
154
"""Return frame of widgets for Font/Tabs tab.
155
155
156
+ Enable users to provisionally change font face, size, or
157
+ boldness and to see the consequence of proposed choices. Each
158
+ action set 3 options in changes structuree and changes the
159
+ corresponding aspect of the font sample on this page and
160
+ highlight sample on highlight page.
161
+
162
+ Enable users to change spaces entered for indent tabs.
163
+
156
164
Tk Variables:
165
+ font_name: Font face.
157
166
font_size: Font size.
158
167
font_bold: Select font bold or not.
159
- font_name: Font face.
160
168
Note: these 3 share var_changed_font callback.
161
169
space_num: Indentation width.
162
170
163
171
Data Attribute:
164
- edit_font: Font widget with default font name, size, and weight.
172
+ edit_font: Font with default font name, size, and weight.
165
173
166
174
Methods:
167
175
load_font_cfg: Set vars and fontlist.
168
176
on_fontlist_select: Bound to fontlist button release
169
177
or key release.
170
- set_font_sample: Command for opt_menu_font_size and
171
- check_font_bold.
178
+ set_samples: Notify both samples of any font change.
172
179
load_tab_cfg: Get current.
173
180
174
181
Widget Structure: (*) widgets bound to self
@@ -181,7 +188,7 @@ def create_page_font_tab(self):
181
188
frame_font_param: Frame
182
189
font_size_title: Label
183
190
(*)opt_menu_font_size: DynOptionMenu - font_size
184
- check_font_bold : Checkbutton - font_bold
191
+ (*)bold_toggle : Checkbutton - font_bold
185
192
frame_font_sample: Frame
186
193
(*)font_sample: Label
187
194
frame_indent: LabelFrame
@@ -190,9 +197,9 @@ def create_page_font_tab(self):
190
197
(*)scale_indent_size: Scale - space_num
191
198
"""
192
199
parent = self .parent
200
+ self .font_name = StringVar (parent )
193
201
self .font_size = StringVar (parent )
194
202
self .font_bold = BooleanVar (parent )
195
- self .font_name = StringVar (parent )
196
203
self .space_num = IntVar (parent )
197
204
self .edit_font = tkFont .Font (parent , ('courier' , 10 , 'normal' ))
198
205
@@ -218,10 +225,10 @@ def create_page_font_tab(self):
218
225
self .fontlist .config (yscrollcommand = scroll_font .set )
219
226
font_size_title = Label (frame_font_param , text = 'Size :' )
220
227
self .opt_menu_font_size = DynOptionMenu (
221
- frame_font_param , self .font_size , None , command = self .set_font_sample )
222
- check_font_bold = Checkbutton (
228
+ frame_font_param , self .font_size , None , command = self .set_samples )
229
+ self . bold_toggle = Checkbutton (
223
230
frame_font_param , variable = self .font_bold , onvalue = 1 ,
224
- offvalue = 0 , text = 'Bold' , command = self .set_font_sample )
231
+ offvalue = 0 , text = 'Bold' , command = self .set_samples )
225
232
frame_font_sample = Frame (frame_font , relief = SOLID , borderwidth = 1 )
226
233
self .font_sample = Label (
227
234
frame_font_sample , justify = LEFT , font = self .edit_font ,
@@ -247,7 +254,7 @@ def create_page_font_tab(self):
247
254
scroll_font .pack (side = LEFT , fill = Y )
248
255
font_size_title .pack (side = LEFT , anchor = W )
249
256
self .opt_menu_font_size .pack (side = LEFT , anchor = W )
250
- check_font_bold .pack (side = LEFT , anchor = W , padx = 20 )
257
+ self . bold_toggle .pack (side = LEFT , anchor = W , padx = 20 )
251
258
frame_font_sample .pack (side = TOP , padx = 5 , pady = 5 , expand = TRUE , fill = BOTH )
252
259
self .font_sample .pack (expand = TRUE , fill = BOTH )
253
260
# frame_indent
@@ -292,7 +299,7 @@ def create_page_highlight(self):
292
299
Widget Structure: (*) widgets bound to self
293
300
frame
294
301
frame_custom: LabelFrame
295
- (*)text_highlight_sample : Text
302
+ (*)highlight_sample : Text
296
303
(*)frame_color_set: Frame
297
304
button_set_color: Button
298
305
(*)opt_menu_highlight_target: DynOptionMenu - highlight_target
@@ -342,11 +349,11 @@ def create_page_highlight(self):
342
349
frame_theme = LabelFrame (frame , borderwidth = 2 , relief = GROOVE ,
343
350
text = ' Highlighting Theme ' )
344
351
#frame_custom
345
- self .text_highlight_sample = Text (
352
+ self .highlight_sample = Text (
346
353
frame_custom , relief = SOLID , borderwidth = 1 ,
347
354
font = ('courier' , 12 , '' ), cursor = 'hand2' , width = 21 , height = 11 ,
348
355
takefocus = FALSE , highlightthickness = 0 , wrap = NONE )
349
- text = self .text_highlight_sample
356
+ text = self .highlight_sample
350
357
text .bind ('<Double-Button-1>' , lambda e : 'break' )
351
358
text .bind ('<B1-Motion>' , lambda e : 'break' )
352
359
text_and_tags = (
@@ -416,7 +423,7 @@ def tem(event, elem=element):
416
423
#frame_custom
417
424
self .frame_color_set .pack (side = TOP , padx = 5 , pady = 5 , expand = TRUE , fill = X )
418
425
frame_fg_bg_toggle .pack (side = TOP , padx = 5 , pady = 0 )
419
- self .text_highlight_sample .pack (
426
+ self .highlight_sample .pack (
420
427
side = TOP , padx = 5 , pady = 5 , expand = TRUE , fill = BOTH )
421
428
button_set_color .pack (side = TOP , expand = TRUE , fill = X , padx = 8 , pady = 4 )
422
429
self .opt_menu_highlight_target .pack (
@@ -1142,7 +1149,7 @@ def on_new_color_set(self):
1142
1149
self .frame_color_set .config (bg = new_color ) # Set sample.
1143
1150
plane = 'foreground' if self .fg_bg_toggle .get () else 'background'
1144
1151
sample_element = self .theme_elements [self .highlight_target .get ()][0 ]
1145
- self .text_highlight_sample .tag_config (sample_element , ** {plane :new_color })
1152
+ self .highlight_sample .tag_config (sample_element , ** {plane :new_color })
1146
1153
theme = self .custom_theme .get ()
1147
1154
theme_element = sample_element + '-' + plane
1148
1155
changes .add_option ('highlight' , theme , theme_element , new_color )
@@ -1210,41 +1217,25 @@ def on_fontlist_select(self, event):
1210
1217
"""Handle selecting a font from the list.
1211
1218
1212
1219
Event can result from either mouse click or Up or Down key.
1213
- Set font_name and example display to selection.
1214
-
1215
- Attributes updated:
1216
- font_name: Set to name selected from fontlist.
1217
-
1218
- Methods:
1219
- set_font_sample
1220
+ Set font_name and example displays to selection.
1220
1221
"""
1221
1222
font = self .fontlist .get (
1222
1223
ACTIVE if event .type .name == 'KeyRelease' else ANCHOR )
1223
1224
self .font_name .set (font .lower ())
1224
- self .set_font_sample ()
1225
-
1226
- def set_font_sample (self , event = None ):
1227
- """Update the screen samples with the font settings from the dialog.
1228
-
1229
- Attributes accessed:
1230
- font_name
1231
- font_bold
1232
- font_size
1225
+ self .set_samples ()
1233
1226
1234
- Attributes updated:
1235
- font_sample: Set to selected font name, size, and weight.
1236
- text_highlight_sample: Set to selected font name, size, and weight.
1227
+ def set_samples (self , event = None ):
1228
+ """Update update both screen samples with the font settings.
1237
1229
1238
- Called from:
1239
- handler for opt_menu_font_size and check_font_bold
1240
- on_fontlist_select
1241
- load_font_cfg
1230
+ Called on font initialization and change events.
1231
+ Accesses font_name, font_size, and font_bold Variables.
1232
+ Updates font_sample and hightlight page highlight_sample.
1242
1233
"""
1243
1234
font_name = self .font_name .get ()
1244
1235
font_weight = tkFont .BOLD if self .font_bold .get () else tkFont .NORMAL
1245
1236
new_font = (font_name , self .font_size .get (), font_weight )
1246
- self .font_sample . config ( font = new_font )
1247
- self .text_highlight_sample . configure ( font = new_font )
1237
+ self .font_sample [ ' font' ] = new_font
1238
+ self .highlight_sample [ ' font' ] = new_font
1248
1239
1249
1240
def set_highlight_target (self ):
1250
1241
"""Set fg/bg toggle and color based on highlight tag target.
@@ -1289,15 +1280,15 @@ def set_color_sample(self):
1289
1280
theme_elements
1290
1281
highlight_target
1291
1282
fg_bg_toggle
1292
- text_highlight_sample
1283
+ highlight_sample
1293
1284
1294
1285
Attributes updated:
1295
1286
frame_color_set
1296
1287
"""
1297
1288
# Set the color sample area.
1298
1289
tag = self .theme_elements [self .highlight_target .get ()][0 ]
1299
1290
plane = 'foreground' if self .fg_bg_toggle .get () else 'background'
1300
- color = self .text_highlight_sample .tag_cget (tag , plane )
1291
+ color = self .highlight_sample .tag_cget (tag , plane )
1301
1292
self .frame_color_set .config (bg = color )
1302
1293
1303
1294
def paint_theme_sample (self ):
@@ -1310,7 +1301,7 @@ def paint_theme_sample(self):
1310
1301
custom_theme
1311
1302
1312
1303
Attributes updated:
1313
- text_highlight_sample : Set the tag elements to the theme.
1304
+ highlight_sample : Set the tag elements to the theme.
1314
1305
1315
1306
Methods:
1316
1307
set_color_sample
@@ -1337,7 +1328,7 @@ def paint_theme_sample(self):
1337
1328
colors ['foreground' ] = theme_dict [element + '-foreground' ]
1338
1329
if element + '-background' in theme_dict :
1339
1330
colors ['background' ] = theme_dict [element + '-background' ]
1340
- self .text_highlight_sample .tag_config (element , ** colors )
1331
+ self .highlight_sample .tag_config (element , ** colors )
1341
1332
self .set_color_sample ()
1342
1333
1343
1334
def help_source_selected (self , event ):
@@ -1424,7 +1415,7 @@ def load_font_cfg(self):
1424
1415
font_bold: Set to current font weight.
1425
1416
1426
1417
Methods:
1427
- set_font_sample
1418
+ set_samples
1428
1419
"""
1429
1420
# Set base editor font selection list.
1430
1421
fonts = list (tkFont .families (self ))
@@ -1452,7 +1443,7 @@ def load_font_cfg(self):
1452
1443
# Set font weight.
1453
1444
self .font_bold .set (font_bold )
1454
1445
# Set font sample.
1455
- self .set_font_sample ()
1446
+ self .set_samples ()
1456
1447
1457
1448
def load_tab_cfg (self ):
1458
1449
"""Load current configuration settings for the tab options.
0 commit comments