Source code for teek._widgets.menu

import collections.abc

import teek
from teek._structures import CgetConfigureConfigDict
from teek._tcl_calls import make_thread_safe
from teek._widgets.base import Widget


# all menu item things that do something run in the main thread to avoid any
# kind of use of menu items that are in an inconsistent state, and the Menu
# class also does this... think of it as poor man's locking or something



# does not use ChildMixin because usually it's a bad idea to e.g. pack a menu