def draw(self, context): if context is None: return space = context.space_data if not space: return ntree = space.edit_tree if not ntree: return layout = self.layout monad_node_ops(self, layout, context) if ntree.bl_idname == "SverchGroupTreeType": draw_add_node_operator(layout, "SvMonadInfoNode") layout.separator() for monad in context.blend_data.node_groups: if monad.bl_idname != "SverchGroupTreeType": continue if monad.name == ntree.name: continue # make sure class exists cls_ref = get_node_class_reference(monad.cls_bl_idname) if cls_ref and monad.cls_bl_idname and monad.cls_bl_idname: op = layout.operator('node.add_node', text=monad.name) op.type = monad.cls_bl_idname op.use_transform = True
def draw_conveniences(self, context, node): layout = self.layout layout.separator() for nodelist in common_nodes: for named_node in nodelist: if named_node == '---': layout.separator() else: draw_add_node_operator(layout, named_node)
def layout_draw_categories(layout, node_details): for node_info in node_details: if node_info[0] == 'separator': layout.separator() continue if not node_info: print(repr(node_info), 'is incomplete, or unparsable') continue bl_idname = node_info[0] # this is a node bl_idname that can be registered but shift+A can drop it from showing. if bl_idname == 'ScalarMathNode': continue node_ref = get_node_class_reference(bl_idname) if hasattr(node_ref, "bl_label"): layout_params = dict(text=node_ref.bl_label, **node_icon(node_ref)) elif bl_idname == 'NodeReroute': layout_params = dict(text='Reroute',icon_value=custom_icon('SV_REROUTE')) else: continue node_op = draw_add_node_operator(layout, bl_idname, params=layout_params)
def layout_draw_categories(layout, node_details): for node_info in node_details: if node_info[0] == 'separator': layout.separator() continue if not node_info: print(repr(node_info), 'is incomplete, or unparsable') continue bl_idname = node_info[0] node_ref = get_node_class_reference(bl_idname) if hasattr(node_ref, "bl_label"): layout_params = dict(text=node_ref.bl_label, **node_icon(node_ref)) elif bl_idname == 'NodeReroute': layout_params = dict(text='Reroute') else: continue node_op = draw_add_node_operator(layout, bl_idname, params=layout_params)
def layout_draw_categories(layout, node_details): for node_info in node_details: if node_info[0] == 'separator': layout.separator() continue if not node_info: print(repr(node_info), 'is incomplete, or unparsable') continue bl_idname = node_info[0] # this is a node bl_idname that can be registered but shift+A can drop it from showing. if bl_idname == 'ScalarMathNode': continue node_ref = get_node_class_reference(bl_idname) if hasattr(node_ref, "bl_label"): layout_params = dict(text=node_ref.bl_label, **node_icon(node_ref)) elif bl_idname == 'NodeReroute': layout_params = dict(text='Reroute') else: continue node_op = draw_add_node_operator(layout, bl_idname, params=layout_params)
def layout_draw_categories(layout, category_name, node_details): global menu_class_by_title for node_info in node_details: if node_info[0] == 'separator': layout.separator() continue if not node_info: print(repr(node_info), 'is incomplete, or unparsable') continue bl_idname = node_info[0] if is_submenu_call(bl_idname): submenu_title = get_submenu_call_name(bl_idname) menu_title = compose_submenu_name(category_name, bl_idname) menu_class = menu_class_by_title[menu_title] layout.menu(menu_class.__name__, text=submenu_title) continue # this is a node bl_idname that can be registered but shift+A can drop it from showing. if bl_idname == 'ScalarMathNode': continue node_ref = get_node_class_reference(bl_idname) if hasattr(node_ref, "bl_label"): layout_params = dict(text=node_ref.bl_label, **node_icon(node_ref)) elif bl_idname == 'NodeReroute': layout_params = dict(text='Reroute', icon_value=custom_icon('SV_REROUTE')) else: continue node_op = draw_add_node_operator(layout, bl_idname, params=layout_params)