Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/space_node/space_node.c
| Show First 20 Lines • Show All 770 Lines • ▼ Show 20 Lines | case NC_GPENCIL: | ||||
| ED_region_tag_redraw(region); | ED_region_tag_redraw(region); | ||||
| } | } | ||||
| break; | break; | ||||
| } | } | ||||
| } | } | ||||
| const char *node_context_dir[] = { | const char *node_context_dir[] = { | ||||
| "selected_nodes", "active_node", "light", "material", "world", NULL}; | "selected_nodes", "active_node", "light", "material", "world", NULL}; | ||||
| static int /*eContextResult*/ node_context(const bContext *C, | |||||
| static int node_context(const bContext *C, const char *member, bContextDataResult *result) | const char *member, | ||||
| bContextDataResult *result) | |||||
| { | { | ||||
| SpaceNode *snode = CTX_wm_space_node(C); | SpaceNode *snode = CTX_wm_space_node(C); | ||||
| if (CTX_data_dir(member)) { | if (CTX_data_dir(member)) { | ||||
| CTX_data_dir_set(result, node_context_dir); | CTX_data_dir_set(result, node_context_dir); | ||||
| return 1; | return CTX_RESULT_OK; | ||||
| } | } | ||||
| if (CTX_data_equals(member, "selected_nodes")) { | if (CTX_data_equals(member, "selected_nodes")) { | ||||
| bNode *node; | bNode *node; | ||||
| if (snode->edittree) { | if (snode->edittree) { | ||||
| for (node = snode->edittree->nodes.last; node; node = node->prev) { | for (node = snode->edittree->nodes.last; node; node = node->prev) { | ||||
| if (node->flag & NODE_SELECT) { | if (node->flag & NODE_SELECT) { | ||||
| CTX_data_list_add(result, &snode->edittree->id, &RNA_Node, node); | CTX_data_list_add(result, &snode->edittree->id, &RNA_Node, node); | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION); | CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION); | ||||
| return 1; | return CTX_RESULT_OK; | ||||
| } | } | ||||
| if (CTX_data_equals(member, "active_node")) { | if (CTX_data_equals(member, "active_node")) { | ||||
| if (snode->edittree) { | if (snode->edittree) { | ||||
| bNode *node = nodeGetActive(snode->edittree); | bNode *node = nodeGetActive(snode->edittree); | ||||
| CTX_data_pointer_set(result, &snode->edittree->id, &RNA_Node, node); | CTX_data_pointer_set(result, &snode->edittree->id, &RNA_Node, node); | ||||
| } | } | ||||
| CTX_data_type_set(result, CTX_DATA_TYPE_POINTER); | CTX_data_type_set(result, CTX_DATA_TYPE_POINTER); | ||||
| return 1; | return CTX_RESULT_OK; | ||||
| } | } | ||||
| if (CTX_data_equals(member, "node_previews")) { | if (CTX_data_equals(member, "node_previews")) { | ||||
| if (snode->nodetree) { | if (snode->nodetree) { | ||||
| CTX_data_pointer_set( | CTX_data_pointer_set( | ||||
| result, &snode->nodetree->id, &RNA_NodeInstanceHash, snode->nodetree->previews); | result, &snode->nodetree->id, &RNA_NodeInstanceHash, snode->nodetree->previews); | ||||
| } | } | ||||
| CTX_data_type_set(result, CTX_DATA_TYPE_POINTER); | CTX_data_type_set(result, CTX_DATA_TYPE_POINTER); | ||||
| return 1; | return CTX_RESULT_OK; | ||||
| } | } | ||||
| if (CTX_data_equals(member, "material")) { | if (CTX_data_equals(member, "material")) { | ||||
| if (snode->id && GS(snode->id->name) == ID_MA) { | if (snode->id && GS(snode->id->name) == ID_MA) { | ||||
| CTX_data_id_pointer_set(result, snode->id); | CTX_data_id_pointer_set(result, snode->id); | ||||
| } | } | ||||
| return 1; | return CTX_RESULT_OK; | ||||
| } | } | ||||
| if (CTX_data_equals(member, "light")) { | if (CTX_data_equals(member, "light")) { | ||||
| if (snode->id && GS(snode->id->name) == ID_LA) { | if (snode->id && GS(snode->id->name) == ID_LA) { | ||||
| CTX_data_id_pointer_set(result, snode->id); | CTX_data_id_pointer_set(result, snode->id); | ||||
| } | } | ||||
| return 1; | return CTX_RESULT_OK; | ||||
| } | } | ||||
| if (CTX_data_equals(member, "world")) { | if (CTX_data_equals(member, "world")) { | ||||
| if (snode->id && GS(snode->id->name) == ID_WO) { | if (snode->id && GS(snode->id->name) == ID_WO) { | ||||
| CTX_data_id_pointer_set(result, snode->id); | CTX_data_id_pointer_set(result, snode->id); | ||||
| } | } | ||||
| return 1; | return CTX_RESULT_OK; | ||||
| } | } | ||||
| return 0; | return CTX_RESULT_MEMBER_NOT_FOUND; | ||||
| } | } | ||||
| static void node_widgets(void) | static void node_widgets(void) | ||||
| { | { | ||||
| /* create the widgetmap for the area here */ | /* create the widgetmap for the area here */ | ||||
| wmGizmoMapType *gzmap_type = WM_gizmomaptype_ensure( | wmGizmoMapType *gzmap_type = WM_gizmomaptype_ensure( | ||||
| &(const struct wmGizmoMapType_Params){SPACE_NODE, RGN_TYPE_WINDOW}); | &(const struct wmGizmoMapType_Params){SPACE_NODE, RGN_TYPE_WINDOW}); | ||||
| WM_gizmogrouptype_append_and_link(gzmap_type, NODE_GGT_backdrop_transform); | WM_gizmogrouptype_append_and_link(gzmap_type, NODE_GGT_backdrop_transform); | ||||
| ▲ Show 20 Lines • Show All 181 Lines • Show Last 20 Lines | |||||