#-----------------------------------------------------------------------------# Copyright (c) 2012 - 2022, Anaconda, Inc., and Bokeh Contributors.# All rights reserved.## The full license is in the file LICENSE.txt, distributed with this software.#-----------------------------------------------------------------------------""""""#-----------------------------------------------------------------------------# Boilerplate#-----------------------------------------------------------------------------from__future__importannotationsimportlogging# isort:skiplog=logging.getLogger(__name__)#-----------------------------------------------------------------------------# Imports#-----------------------------------------------------------------------------# Bokeh importsfrom...core.enumsimportOrientationfrom...core.has_propsimportabstractfrom...core.propertiesimport(Bool,Enum,Instance,List,Nullable,Required,String,)from.iconsimportIconfrom.ui_elementimportUIElement#-----------------------------------------------------------------------------# Globals and constants#-----------------------------------------------------------------------------__all__=("Action","Menu","Section","Divider",)#-----------------------------------------------------------------------------# General API#-----------------------------------------------------------------------------#-----------------------------------------------------------------------------# Dev API#-----------------------------------------------------------------------------@abstractclassMenuItem(UIElement):""" """# explicit __init__ to support Init signaturesdef__init__(self,*args,**kwargs)->None:super().__init__(*args,**kwargs)
[docs]classAction(MenuItem):""" """# explicit __init__ to support Init signaturesdef__init__(self,*args,**kwargs)->None:super().__init__(*args,**kwargs)icon=Nullable(Instance(Icon),default=None,help=""" """)label=Required(String,help=""" """)description=Nullable(String,default=None,help=""" """)menu=Nullable(Instance(lambda:Menu),default=None,help=""" """)
classCheckAction(Action):""" """# explicit __init__ to support Init signaturesdef__init__(self,*args,**kwargs)->None:super().__init__(*args,**kwargs)checked=Bool(default=False,help=""" """)# group = Either(Instance(Group), Auto)
[docs]classSection(MenuItem):""" """# explicit __init__ to support Init signaturesdef__init__(self,*args,**kwargs)->None:super().__init__(*args,**kwargs)items=List(Instance(Action),default=[],help=""" """)
[docs]classDivider(MenuItem):""" """# explicit __init__ to support Init signaturesdef__init__(self,*args,**kwargs)->None:super().__init__(*args,**kwargs)
[docs]classMenu(UIElement):""" """# explicit __init__ to support Init signaturesdef__init__(self,*args,**kwargs)->None:super().__init__(*args,**kwargs)items=List(Instance(MenuItem),default=[],help=""" """)reversed=Bool(default=False,help=""" """)orientation=Enum(Orientation,default="vertical",help=""" """)