Only to be used internally. Not user callable :param top_menu: ??? :type top_menu: ??? :param sub_menu_info: ??? :type sub_menu_info: :param element: ??? :type element: idk_yetReally :param is_sub_menu: (Default = False) :type is_sub_men
(top_menu, sub_menu_info, element, is_sub_menu=False, skip=False, right_click_menu=False)
| 15213 | |
| 15214 | |
| 15215 | def AddMenuItem(top_menu, sub_menu_info, element, is_sub_menu=False, skip=False, right_click_menu=False): |
| 15216 | """ |
| 15217 | Only to be used internally. Not user callable |
| 15218 | :param top_menu: ??? |
| 15219 | :type top_menu: ??? |
| 15220 | :param sub_menu_info: ??? |
| 15221 | :type sub_menu_info: |
| 15222 | :param element: ??? |
| 15223 | :type element: idk_yetReally |
| 15224 | :param is_sub_menu: (Default = False) |
| 15225 | :type is_sub_menu: (bool) |
| 15226 | :param skip: (Default = False) |
| 15227 | :type skip: (bool) |
| 15228 | |
| 15229 | """ |
| 15230 | return_val = None |
| 15231 | if type(sub_menu_info) is str: |
| 15232 | if not is_sub_menu and not skip: |
| 15233 | pos = sub_menu_info.find(MENU_SHORTCUT_CHARACTER) |
| 15234 | if pos != -1: |
| 15235 | if pos < len(MENU_SHORTCUT_CHARACTER) or sub_menu_info[pos - len(MENU_SHORTCUT_CHARACTER)] != "\\": |
| 15236 | sub_menu_info = sub_menu_info[:pos] + sub_menu_info[pos + len(MENU_SHORTCUT_CHARACTER):] |
| 15237 | if sub_menu_info == '---': |
| 15238 | top_menu.add('separator') |
| 15239 | else: |
| 15240 | try: |
| 15241 | item_without_key = sub_menu_info[:sub_menu_info.index(MENU_KEY_SEPARATOR)] |
| 15242 | except: |
| 15243 | item_without_key = sub_menu_info |
| 15244 | |
| 15245 | if item_without_key[0] == MENU_DISABLED_CHARACTER: |
| 15246 | top_menu.add_command(label=item_without_key[len(MENU_DISABLED_CHARACTER):], underline=pos - 1, |
| 15247 | command=lambda: element._MenuItemChosenCallback(sub_menu_info)) |
| 15248 | top_menu.entryconfig(item_without_key[len(MENU_DISABLED_CHARACTER):], state='disabled') |
| 15249 | else: |
| 15250 | top_menu.add_command(label=item_without_key, underline=pos, |
| 15251 | command=lambda: element._MenuItemChosenCallback(sub_menu_info)) |
| 15252 | else: |
| 15253 | i = 0 |
| 15254 | while i < (len(sub_menu_info)): |
| 15255 | item = sub_menu_info[i] |
| 15256 | if i != len(sub_menu_info) - 1: |
| 15257 | if type(sub_menu_info[i + 1]) == list: |
| 15258 | new_menu = tk.Menu(top_menu, tearoff=element.Tearoff) |
| 15259 | # if a right click menu, then get styling from the top-level window |
| 15260 | if right_click_menu: |
| 15261 | window = element.ParentForm |
| 15262 | if window.right_click_menu_background_color not in (COLOR_SYSTEM_DEFAULT, None): |
| 15263 | new_menu.config(bg=window.right_click_menu_background_color) |
| 15264 | new_menu.config(activeforeground=window.right_click_menu_background_color) |
| 15265 | if window.right_click_menu_text_color not in (COLOR_SYSTEM_DEFAULT, None): |
| 15266 | new_menu.config(fg=window.right_click_menu_text_color) |
| 15267 | new_menu.config(activebackground=window.right_click_menu_text_color) |
| 15268 | if window.right_click_menu_disabled_text_color not in (COLOR_SYSTEM_DEFAULT, None): |
| 15269 | new_menu.config(disabledforeground=window.right_click_menu_disabled_text_color) |
| 15270 | if window.right_click_menu_font is not None: |
| 15271 | new_menu.config(font=window.right_click_menu_font) |
| 15272 | else: |
no test coverage detected