Fill in dropdown menus used by this window. Items whose name begins with '!' become checkbuttons. Other names indicate commands. None becomes a separator.
(self, menudefs=None, keydefs=None)
| 1176 | text.event_add(event, *keylist) |
| 1177 | |
| 1178 | def fill_menus(self, menudefs=None, keydefs=None): |
| 1179 | """Fill in dropdown menus used by this window. |
| 1180 | |
| 1181 | Items whose name begins with '!' become checkbuttons. |
| 1182 | Other names indicate commands. None becomes a separator. |
| 1183 | """ |
| 1184 | if menudefs is None: |
| 1185 | menudefs = self.mainmenu.menudefs |
| 1186 | if keydefs is None: |
| 1187 | keydefs = self.mainmenu.default_keydefs |
| 1188 | menudict = self.menudict |
| 1189 | text = self.text |
| 1190 | for mname, entrylist in menudefs: |
| 1191 | menu = menudict.get(mname) |
| 1192 | if not menu: |
| 1193 | continue |
| 1194 | for entry in entrylist: |
| 1195 | if entry is None: |
| 1196 | menu.add_separator() |
| 1197 | else: |
| 1198 | label, eventname = entry |
| 1199 | checkbutton = (label[:1] == '!') |
| 1200 | if checkbutton: |
| 1201 | label = label[1:] |
| 1202 | underline, label = prepstr(label) |
| 1203 | accelerator = get_accelerator(keydefs, eventname) |
| 1204 | def command(text=text, eventname=eventname): |
| 1205 | text.event_generate(eventname) |
| 1206 | if checkbutton: |
| 1207 | var = self.get_var_obj(eventname, BooleanVar) |
| 1208 | menu.add_checkbutton(label=label, underline=underline, |
| 1209 | command=command, accelerator=accelerator, |
| 1210 | variable=var) |
| 1211 | else: |
| 1212 | menu.add_command(label=label, underline=underline, |
| 1213 | command=command, |
| 1214 | accelerator=accelerator) |
| 1215 | |
| 1216 | def getvar(self, name): |
| 1217 | var = self.get_var_obj(name) |
no test coverage detected