OverviewFilesCommitsIssuesDocsReleasesPeers

hardops / ui / nodes_menu.py

44 lines · python ref:
import bpy
from .. icons import get_icon_id
from .. utils.addons import addon_exists
from .. utils.objects import get_current_selected_status
from .. utility import addon
from .. import bl_info


class HOPS_MT_NodesMenu(bpy.types.Menu):
    bl_idname = "HOPS_MT_NodesMenu"
    bl_label = f"HOps: {bl_info['version'][0]}.{bl_info['version'][1]}.{bl_info['version'][2]}"

    def draw(self, context):
        layout = self.layout

        if context.area.ui_type == 'GeometryNodeTree':
            geo_nodes_menu(context, layout)

        elif context.area.ui_type == 'ShaderNodeTree':
            shader_nodes_menu(context, layout)

        layout.separator()
        layout.menu("SCREEN_MT_user_menu", text="Quick Favorites", icon_value=get_icon_id("QuickFav"))


def geo_nodes_menu(context, layout):
    layout.operator_context = "INVOKE_DEFAULT"
    layout.operator("hops.cycle_geo_nodes", text="W Cycle Node", icon_value=get_icon_id("Array"))
    layout.menu("NODE_MT_add", text="Add")
    layout.separator()
    # layout.operator("hops.cycle_node_groups", text="Cycle Groups", icon_value=get_icon_id("green"))
    # layout.separator()
    layout.operator("hops.all_geo_nodes", text="All Nodes", icon="MOD_ARRAY")
    layout.operator("hops.font_scroll", text="Font Scroll", icon="FILE_FONT")


def shader_nodes_menu(context, layout):
    layout.operator_context = "INVOKE_DEFAULT"
    layout.operator("hops.cycle_geo_nodes", text="W Cycle Node", icon_value=get_icon_id("Array"))
    layout.menu("NODE_MT_add", text="Add")
    layout.separator()
    # layout.operator("hops.cycle_node_groups", text="Cycle Groups", icon_value=get_icon_id("green"))
    # layout.separator()
    layout.operator("hops.all_geo_nodes", text="All Nodes", icon="MOD_ARRAY")