# Source code for enaml.widgets.menu

    #------------------------------------------------------------------------------
    # Copyright (c) 2013-2025, Nucleic Development Team.
    #
    # Distributed under the terms of the Modified BSD License.
    #
    # The full license is in the file LICENSE, distributed with this software.
    #------------------------------------------------------------------------------
    from atom.api import Bool, Typed, ForwardTyped, Str

    from enaml.core.declarative import d_, observe

    from .action import Action
    from .action_group import ActionGroup
    from .toolkit_object import ToolkitObject, ProxyToolkitObject

    class ProxyMenu(ProxyToolkitObject):
        """ The abstract definition of a proxy Menu object.

        """
        #: A reference to the Menu declaration.
        declaration = ForwardTyped(lambda: Menu)

        def set_title(self, title):
            raise NotImplementedError

        def set_enabled(self, enabled):
            raise NotImplementedError

        def set_visible(self, visible):
            raise NotImplementedError

        def set_context_menu(self, context):
            raise NotImplementedError

        def popup(self):
            raise NotImplementedError

        def close(self):
            raise NotImplementedError