tornavis/doc/python_api/examples/bpy.types.Menu.py

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

41 lines
1.2 KiB
Python
Raw Normal View History

"""
Basic Menu Example
++++++++++++++++++
2015-09-08 06:30:05 +02:00
2015-04-24 15:08:31 +02:00
Here is an example of a simple menu. Menus differ from panels in that they must
reference from a header, panel or another menu.
2015-04-24 15:08:31 +02:00
Notice the 'CATEGORY_MT_name' in :class:`Menu.bl_idname`, this is a naming
convention for menus.
.. note::
2016-02-15 09:37:37 +01:00
Menu subclasses must be registered before referencing them from blender.
.. note::
2016-02-15 09:37:37 +01:00
2015-04-24 15:08:31 +02:00
Menus have their :class:`Layout.operator_context` initialized as
'EXEC_REGION_WIN' rather than 'INVOKE_DEFAULT' (see :ref:`Execution Context <operator-execution_context>`).
If the operator context needs to initialize inputs from the
:class:`Operator.invoke` function, then this needs to be explicitly set.
"""
import bpy
class BasicMenu(bpy.types.Menu):
bl_idname = "OBJECT_MT_select_test"
bl_label = "Select"
def draw(self, context):
layout = self.layout
layout.operator("object.select_all", text="Select/Deselect All").action = 'TOGGLE'
layout.operator("object.select_all", text="Inverse").action = 'INVERT'
layout.operator("object.select_random", text="Random")
bpy.utils.register_class(BasicMenu)
# test call to display immediately.
bpy.ops.wm.call_menu(name="OBJECT_MT_select_test")