mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-25 13:24:54 +01:00
Add OPMenu Stencil
This commit is contained in:
parent
7f0b8ab240
commit
4cfc90bbb3
1 changed files with 528 additions and 0 deletions
528
client/ayon_core/hosts/houdini/startup/OPmenu.xml
Normal file
528
client/ayon_core/hosts/houdini/startup/OPmenu.xml
Normal file
|
|
@ -0,0 +1,528 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- OPMenu Stencil.
|
||||
It's used to extend the OPMenu while keeping the order of the menu items.
|
||||
-->
|
||||
|
||||
|
||||
<!--
|
||||
This file defines the menu items when right-clicking over nodes in
|
||||
Houdini.
|
||||
|
||||
Files named the same (ie. OPmenu.xml) can exist in $HOME/houdiniX.Y/
|
||||
directory and will supplement the original definitions found in
|
||||
$HFS/houdini/ (aka $HH).
|
||||
|
||||
The format in this file is similar to the format in $HH/MainMenuMaster
|
||||
except that it uses the <menuDocument> and <menu> tags instead of
|
||||
<mainMenu> and <menuBar>. See the comments in that file for more advanced
|
||||
customization abilities.
|
||||
|
||||
Note that the id's correspond to their hotkeys with the h.pane.wsheet.
|
||||
prefix (where available). For example, the item with id,
|
||||
"opmenu.flag_display", refers to the action in the hotkeys manager as
|
||||
"h.pane.wsheet.opmenu.flag_display".
|
||||
|
||||
Also note that you can specify which context a particular menu item shows
|
||||
up in. To do this, add a context property:
|
||||
<context>
|
||||
<networkCategory>Object</networkCategory>
|
||||
</context>
|
||||
Or, for multiple contexts, a comma-separated list:
|
||||
<context>
|
||||
<networkCategory>Object,Sop,Dop</networkCategory>
|
||||
</context>
|
||||
Or use an expression to determine if the menu item appears in the current
|
||||
context. For example, to make the menu item appear only if the node is an
|
||||
Object node:
|
||||
<context>
|
||||
<expression>kwargs["node"].type().category().name() == "Object"</expression>
|
||||
</context>
|
||||
|
||||
For context expressions and menu scripts, a 'kwargs' python dictionary is
|
||||
provided with the following values:
|
||||
'node' : The node that the menu was opened for.
|
||||
'toolname' : The menu item's hotkey id (ie. the element's id
|
||||
prefixed with h.pane.parms.)
|
||||
'altclick' : True if the Alt key was also pressed, False otherwise
|
||||
'ctrlclick' : True if the Ctrl key was also pressed, False otherwise
|
||||
'shiftclick': True if the Shift key was also pressed, False otherwise
|
||||
'cmdclick' : True if the Option key was also pressed, False
|
||||
otherwise. Note that this can only be true on OSX.
|
||||
-->
|
||||
|
||||
<menuDocument>
|
||||
<!-- menuDocument can only contain 1 menu element, whose id is
|
||||
implicitly "root_menu"
|
||||
-->
|
||||
<menu>
|
||||
|
||||
<!-- This item appears at the top of the menu when you right-click an
|
||||
"example" subnet -->
|
||||
|
||||
<!--
|
||||
<scriptItem>
|
||||
<label>Save Node Example...</label>
|
||||
<context>
|
||||
<expression>kwargs['node'].userData("__example_for") is not None</expression>
|
||||
</context>
|
||||
<scriptCode><![CDATA[
|
||||
from houdinihelp import examples
|
||||
examples.save_node_example(kwargs['node'])
|
||||
]]></scriptCode>
|
||||
</scriptItem>
|
||||
-->
|
||||
|
||||
<!-- Node flags submenu. -->
|
||||
<subMenu id="opmenu.flags_menu">
|
||||
<actionItem id="opmenu.flag_display">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.flag_select">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.flag_origin">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.flag_xray">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.flag_render">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.flag_output">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.flag_template">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.flag_footprint">
|
||||
</actionItem>
|
||||
<subMenu id="opmenu.flags_outputforview_menu">
|
||||
<actionItem id="opmenu.flag_outputforview_0">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.flag_outputforview_1">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.flag_outputforview_2">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.flag_outputforview_3">
|
||||
</actionItem>
|
||||
</subMenu>
|
||||
|
||||
<actionItem id="opmenu.flag_highlight">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.flag_unload">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.flag_export">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.flag_lock">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.flag_thumbnail">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.flag_bypass">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.flag_hidden">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.flag_displaydescriptivename">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.flag_displaycomment">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.flag_expose">
|
||||
</actionItem>
|
||||
|
||||
<separatorItem/>
|
||||
|
||||
<actionItem id="opmenu.takedisplay">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.takeoutput">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.takebypass">
|
||||
</actionItem>
|
||||
</subMenu>
|
||||
|
||||
<!-- Actions submenu. -->
|
||||
<subMenu id="opmenu.actions_menu">
|
||||
<actionItem id="opmenu.select_node">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.use_default_color">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.use_default_shape">
|
||||
</actionItem>
|
||||
<actionItem id="collapse">
|
||||
</actionItem>
|
||||
<actionItem id="collapse_to_material">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.extract">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.refcopy">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.change_type">
|
||||
</actionItem>
|
||||
<separatorItem/>
|
||||
<actionItem id="delete">
|
||||
</actionItem>
|
||||
<scriptItem>
|
||||
</scriptItem>
|
||||
</subMenu>
|
||||
<!-- End actions submenu -->
|
||||
|
||||
<!-- LOP actions submenu. -->
|
||||
<subMenu id="opmenu.lop_options_menu">
|
||||
<scriptItem id="opmenu.select_modified_prims">
|
||||
</scriptItem>
|
||||
<scriptItem id="opmenu.inspect_stage">
|
||||
</scriptItem>
|
||||
<scriptItem id="opmenu.inspect_active_layer">
|
||||
</scriptItem>
|
||||
<scriptItem id="opmenu.inspect_layers">
|
||||
</scriptItem>
|
||||
<separatorItem/>
|
||||
<scriptItem id="opmenu.create_lop_activationparm">
|
||||
</scriptItem>
|
||||
<scriptItem id="opmenu.remove_lop_activationparm">
|
||||
</scriptItem>
|
||||
</subMenu>
|
||||
<!-- End LOP actions menu -->
|
||||
|
||||
<!-- Asset examples submenu -->
|
||||
<!--
|
||||
<subMenu id="opmenu.examples_menu">
|
||||
<label>Examples</label>
|
||||
<context>
|
||||
<expression><![CDATA[
|
||||
from houdinihelp import examples
|
||||
return (
|
||||
examples.has_examples(kwargs['node']) or
|
||||
examples.can_have_example(kwargs['node'])
|
||||
)
|
||||
]]></expression>
|
||||
</context>
|
||||
|
||||
<scriptItem id="h.panes.wsheet.addnodeexample">
|
||||
<label>Create Example for This Node</label>
|
||||
<context>
|
||||
<expression><![CDATA[
|
||||
from houdinihelp import examples
|
||||
return examples.can_have_example(kwargs['node'])
|
||||
]]></expression>
|
||||
</context>
|
||||
<scriptCode><![CDATA[
|
||||
from houdinihelp import examples
|
||||
examples.start_node_example(kwargs['node'], alt=kwargs['altclick'])
|
||||
]]></scriptCode>
|
||||
</scriptItem>
|
||||
|
||||
<separatorItem/>
|
||||
|
||||
<scriptMenuStripDynamic>
|
||||
<contentsScriptCode><![CDATA[
|
||||
from houdinihelp import examples
|
||||
return examples.examples_menu(kwargs['node'])
|
||||
]]></contentsScriptCode>
|
||||
<scriptCode><![CDATA[
|
||||
from houdinihelp import examples
|
||||
examples.load_token(kwargs['selectedtoken'], kwargs['node'], shift=kwargs['shiftclick'], alt=kwargs['altclick'])
|
||||
]]></scriptCode>
|
||||
</scriptMenuStripDynamic>
|
||||
</subMenu>
|
||||
-->
|
||||
<!-- End examples submenu -->
|
||||
|
||||
|
||||
<actionItem id="jump">
|
||||
</actionItem>
|
||||
|
||||
<separatorItem/>
|
||||
|
||||
<subMenu id="opmenu.preview_menu">
|
||||
<actionItem id="opmenu.preview_icon">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.preview_quarter">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.preview_half">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.preview_full">
|
||||
</actionItem>
|
||||
</subMenu>
|
||||
<actionItem id="opmenu.flipbook">
|
||||
</actionItem>
|
||||
|
||||
<scriptItem id="opmenu.generate_static">
|
||||
</scriptItem>
|
||||
<scriptItem id="opmenu.cook_output_node">
|
||||
</scriptItem>
|
||||
<scriptItem id="opmenu.dirty_all">
|
||||
</scriptItem>
|
||||
<scriptItem id="opmenu.cancel_cook">
|
||||
</scriptItem>
|
||||
<scriptItem id="opmenu.generate_node">
|
||||
</scriptItem>
|
||||
<scriptItem id="opmenu.generate_node_static">
|
||||
</scriptItem>
|
||||
<scriptItem id="cook_selected_node">
|
||||
</scriptItem>
|
||||
<scriptItem id="cancel_node">
|
||||
</scriptItem>
|
||||
<separatorItem/>
|
||||
<scriptItem id="dirty_node">
|
||||
</scriptItem>
|
||||
<scriptItem id="dirty_cook_selected_node">
|
||||
</scriptItem>
|
||||
<scriptItem id="dirty_clean_node">
|
||||
</scriptItem>
|
||||
<scriptItem id="clean_temp_dir">
|
||||
</scriptItem>
|
||||
<scriptItem id="set_default_scheduler">
|
||||
</scriptItem>
|
||||
<scriptItem id="open_temp_directory">
|
||||
</scriptItem>
|
||||
<separatorItem/>
|
||||
<scriptItem id="opmenu.open_task_graph_table">
|
||||
</scriptItem>
|
||||
<separatorItem/>
|
||||
<subMenu id="opmenu.parms_and_channels_menu">
|
||||
<actionItem id="opmenu.parameters">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.promotematerial">
|
||||
</actionItem>
|
||||
<separatorItem/>
|
||||
<actionItem id="opmenu.create_channel_groups">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.scope_channels">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.delete_channels">
|
||||
</actionItem>
|
||||
<separatorItem/>
|
||||
<!--
|
||||
Please do not move Edit Parameter Interface... above Type
|
||||
Properties... This was done twice in the past and each time we
|
||||
found the location to be problematic so we moved it back to the
|
||||
middle of the menu.
|
||||
-->
|
||||
<actionItem id="opmenu.spareparms">
|
||||
</actionItem>
|
||||
</subMenu>
|
||||
|
||||
<!-- VOP options submenu. -->
|
||||
<subMenu id="opmenu.vop_options_menu">
|
||||
<actionItem id="opmenu.vn_view_code">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.edit_vop_network">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.creator">
|
||||
</actionItem>
|
||||
<separatorItem/>
|
||||
<actionItem id="opmenu.vn_create_shop">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.vn_save_context_op">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.vn_create_vop_type">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.vn_convert_to_type">
|
||||
|
||||
</actionItem>
|
||||
<separatorItem/>
|
||||
<actionItem id="opmenu.parm_definer">
|
||||
</actionItem>
|
||||
<separatorItem/>
|
||||
<subMenu id="opmenu.lod_menu">
|
||||
<actionItem id="opmenu.flag_lodlow">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.flag_lodmed">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.flag_lodhigh">
|
||||
</actionItem>
|
||||
</subMenu>
|
||||
<actionItem id="opmenu.collapse_input_groups">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.expand_input_groups">
|
||||
</actionItem>
|
||||
<separatorItem/>
|
||||
<actionItem id="opmenu.create_parms">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.create_subnet_inputs">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.create_consts">
|
||||
</actionItem>
|
||||
<separatorItem/>
|
||||
<actionItem id="opmenu.create_output_bindings">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.create_subnet_outputs">
|
||||
</actionItem>
|
||||
</subMenu>
|
||||
|
||||
<actionItem id="opmenu.preview">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.spreadsheet">
|
||||
</actionItem>
|
||||
|
||||
<scriptItem id="opmenu.extended_info">
|
||||
</scriptItem>
|
||||
<actionItem id="opmenu.view_deps">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.edit_comment">
|
||||
</actionItem>
|
||||
|
||||
<!-- Save options. -->
|
||||
<subMenu id="opmenu.save_menu">
|
||||
<actionItem id="opmenu.save_geometry">
|
||||
</actionItem>
|
||||
<scriptItem id="opmenu.save_stage">
|
||||
</scriptItem>
|
||||
<scriptItem id="opmenu.save_active_layer">
|
||||
</scriptItem>
|
||||
<scriptItem id="opmenu.save_materialx">
|
||||
</scriptItem>
|
||||
<actionItem id="opmenu.vn_save_code">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.save_texture">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.save_image">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.save_lut">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.save_data">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.edit_data">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.save_to_gallery">
|
||||
</actionItem>
|
||||
</subMenu>
|
||||
|
||||
<separatorItem/>
|
||||
|
||||
<!-- Chop options. -->
|
||||
<actionItem id="opmenu.set_scope">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.add_to_scope">
|
||||
</actionItem>
|
||||
|
||||
<separatorItem/>
|
||||
|
||||
<!-- Input and output option submenus. -->
|
||||
<subMenu id="opmenu.inputs_menu">
|
||||
<actionItem id="opmenu.hide_inputs">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.expose_inputs">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.select_inputs">
|
||||
</actionItem>
|
||||
<scriptItem id="opmenu.select_input_parameters">
|
||||
</scriptItem>
|
||||
</subMenu>
|
||||
<subMenu id="opmenu.outputs_menu">
|
||||
<actionItem id="opmenu.hide_outputs">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.expose_outputs">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.select_outputs">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.collapse_outputs">
|
||||
</actionItem>
|
||||
</subMenu>
|
||||
|
||||
<separatorItem/>
|
||||
|
||||
<subMenu id="opmenu.character_tools_menu">
|
||||
<actionItem id="opmenu.charpicker">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.poselibrary">
|
||||
</actionItem>
|
||||
</subMenu>
|
||||
<separatorItem/>
|
||||
|
||||
<actionItem id="opmenu.help">
|
||||
</actionItem>
|
||||
|
||||
<separatorItem/>
|
||||
|
||||
<!-- Operator type and asset options. -->
|
||||
<subMenu id="opmenu.vhda_options_create">
|
||||
<scriptItem id="opmenu.vhda_create">
|
||||
</scriptItem>
|
||||
<separatorItem/>
|
||||
<scriptItem id="opmenu.vhda_prefcreate">
|
||||
</scriptItem>
|
||||
</subMenu>
|
||||
|
||||
|
||||
<actionItem id="opmenu.unsynchronize">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.synchronize">
|
||||
</actionItem>
|
||||
|
||||
<actionItem id="opmenu.diff">
|
||||
</actionItem>
|
||||
|
||||
<subMenu id="opmenu.vhda_options">
|
||||
<scriptItem id="opmenu.vhda_save_as">
|
||||
</scriptItem>
|
||||
<separatorItem/>
|
||||
<scriptItem id="opmenu.vhda_bump_major">
|
||||
</scriptItem>
|
||||
<scriptItem id="opmenu.vhda_bump_minor">
|
||||
</scriptItem>
|
||||
<separatorItem/>
|
||||
<scriptItem id="opmenu.vhda_pref">
|
||||
</scriptItem>
|
||||
</subMenu>
|
||||
|
||||
<actionItem id="opmenu.saveoptype">
|
||||
</actionItem>
|
||||
|
||||
<separatorItem/>
|
||||
|
||||
<!--
|
||||
<subMenu>
|
||||
<label>Donut</label>
|
||||
|
||||
<titleItem>
|
||||
<label>Node Macros</label>
|
||||
</titleItem>
|
||||
<scriptMenuStripDynamic id="dynamic_node_macros">
|
||||
<contentsScriptCode><![CDATA[
|
||||
from nodemacros.ui import houdiniStorage
|
||||
return houdiniStorage().menuFor(kwargs["node"])
|
||||
]]>
|
||||
</contentsScriptCode>
|
||||
<scriptCode><![CDATA[
|
||||
from nodemacros.ui import houdiniStorage
|
||||
houdiniStorage().applyMacro(kwargs["selectedtoken"], kwargs["node"])
|
||||
]]>
|
||||
</scriptCode>
|
||||
</scriptMenuStripDynamic>
|
||||
|
||||
<separatorItem/>
|
||||
|
||||
<scriptItem id="save_cluster_macro">
|
||||
<label>Save Selected Item(s) as Macro....</label>
|
||||
<scriptCode><![CDATA[
|
||||
from nodemacros import ui
|
||||
ui.showMacroEditorForItems(kwargs["items"], kwargs["node"])
|
||||
]]>
|
||||
</scriptCode>
|
||||
</scriptItem>
|
||||
|
||||
<scriptItem id="edit_macro_list">
|
||||
<label>Edit Macro List</label>
|
||||
<scriptCode><![CDATA[
|
||||
from nodemacros.manager import showMacroManager
|
||||
showMacroManager()
|
||||
]]>
|
||||
</scriptCode>
|
||||
</scriptItem>
|
||||
|
||||
<scriptItem id="macro_help">
|
||||
<label>Donut Help</label>
|
||||
<scriptCode><![CDATA[
|
||||
from nodemacros.ui import MACRO_HELP_PATH
|
||||
hou.ui.curDesktop().displayHelpPath(MACRO_HELP_PATH)
|
||||
]]>
|
||||
</scriptCode>
|
||||
</scriptItem>
|
||||
</subMenu>
|
||||
|
||||
<separatorItem/>
|
||||
-->
|
||||
|
||||
<actionItem id="opmenu.optypemanager">
|
||||
</actionItem>
|
||||
<actionItem id="opmenu.properties">
|
||||
</actionItem>
|
||||
|
||||
<menuStripDynamic id="custom_hscript">
|
||||
</menuStripDynamic>
|
||||
</menu>
|
||||
</menuDocument>
|
||||
Loading…
Add table
Add a link
Reference in a new issue