Blender  V3.3
node_ops.cc
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2008 Blender Foundation. All rights reserved. */
3 
8 #include "DNA_node_types.h"
9 
10 #include "BKE_context.h"
11 
12 #include "ED_node.h" /* own include */
13 #include "ED_screen.h"
14 
15 #include "RNA_access.h"
16 
17 #include "WM_api.h"
18 #include "WM_types.h"
19 
20 #include "node_intern.hh" /* own include */
21 
22 namespace blender::ed::space_node {
23 
25 {
35 
37 
40 
47 
52 
59 
65 
67 
69 
72 
77 
83 
85 
89 
94 
97 
99 
102 
104 
109 
112 }
113 
114 void node_keymap(struct wmKeyConfig *keyconf)
115 {
116  /* Entire Editor only ----------------- */
117  WM_keymap_ensure(keyconf, "Node Generic", SPACE_NODE, 0);
118 
119  /* Main Region only ----------------- */
120  WM_keymap_ensure(keyconf, "Node Editor", SPACE_NODE, 0);
121 }
122 
123 } // namespace blender::ed::space_node
124 
126 {
128  wmOperatorTypeMacro *mot;
129 
130  ot = WM_operatortype_append_macro("NODE_OT_select_link_viewer",
131  "Link Viewer",
132  "Select node and link it to a viewer node",
133  OPTYPE_UNDO);
134  mot = WM_operatortype_macro_define(ot, "NODE_OT_select");
135  RNA_boolean_set(mot->ptr, "extend", false);
136  RNA_boolean_set(mot->ptr, "socket_select", true);
137  WM_operatortype_macro_define(ot, "NODE_OT_link_viewer");
138 
139  ot = WM_operatortype_append_macro("NODE_OT_translate_attach",
140  "Move and Attach",
141  "Move nodes and attach to frame",
143  mot = WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate");
144  WM_operatortype_macro_define(ot, "NODE_OT_attach");
145  WM_operatortype_macro_define(ot, "NODE_OT_insert_offset");
146 
147  /* NODE_OT_translate_attach with remove_on_canel set to true */
148  ot = WM_operatortype_append_macro("NODE_OT_translate_attach_remove_on_cancel",
149  "Move and Attach",
150  "Move nodes and attach to frame",
152  mot = WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate");
153  RNA_boolean_set(mot->ptr, "remove_on_cancel", true);
154  RNA_boolean_set(mot->ptr, "view2d_edge_pan", true);
155  WM_operatortype_macro_define(ot, "NODE_OT_attach");
156  WM_operatortype_macro_define(ot, "NODE_OT_insert_offset");
157 
158  /* NOTE: Currently not in a default keymap or menu due to messy keymaps
159  * and tricky invoke functionality.
160  * Kept around in case users want to make own shortcuts.
161  */
162  ot = WM_operatortype_append_macro("NODE_OT_detach_translate_attach",
163  "Detach and Move",
164  "Detach nodes, move and attach to frame",
166  WM_operatortype_macro_define(ot, "NODE_OT_detach");
167  mot = WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate");
168  WM_operatortype_macro_define(ot, "NODE_OT_attach");
169 
170  ot = WM_operatortype_append_macro("NODE_OT_duplicate_move",
171  "Duplicate",
172  "Duplicate selected nodes and move them",
174  WM_operatortype_macro_define(ot, "NODE_OT_duplicate");
175  WM_operatortype_macro_define(ot, "NODE_OT_translate_attach");
176 
177  /* modified operator call for duplicating with input links */
178  ot = WM_operatortype_append_macro("NODE_OT_duplicate_move_keep_inputs",
179  "Duplicate",
180  "Duplicate selected nodes keeping input links and move them",
182  mot = WM_operatortype_macro_define(ot, "NODE_OT_duplicate");
183  RNA_boolean_set(mot->ptr, "keep_inputs", true);
184  WM_operatortype_macro_define(ot, "NODE_OT_translate_attach");
185 
186  ot = WM_operatortype_append_macro("NODE_OT_move_detach_links",
187  "Detach",
188  "Move a node to detach links",
190  WM_operatortype_macro_define(ot, "NODE_OT_links_detach");
191  WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate");
192  WM_operatortype_macro_define(ot, "NODE_OT_insert_offset");
193 
194  ot = WM_operatortype_append_macro("NODE_OT_move_detach_links_release",
195  "Detach",
196  "Move a node to detach links",
198  WM_operatortype_macro_define(ot, "NODE_OT_links_detach");
199  WM_operatortype_macro_define(ot, "NODE_OT_translate_attach");
200 }
@ SPACE_NODE
@ OPTYPE_UNDO
Definition: WM_types.h:148
@ OPTYPE_REGISTER
Definition: WM_types.h:146
void NODE_OT_parent_set(wmOperatorType *ot)
void NODE_OT_delete(wmOperatorType *ot)
Definition: node_edit.cc:1881
void NODE_OT_cryptomatte_layer_add(wmOperatorType *ot)
Definition: node_edit.cc:3037
void NODE_OT_add_object(wmOperatorType *ot)
Definition: node_add.cc:503
void NODE_OT_read_viewlayers(wmOperatorType *ot)
Definition: node_edit.cc:1550
void NODE_OT_clipboard_copy(wmOperatorType *ot)
Definition: node_edit.cc:2280
void NODE_OT_select_circle(wmOperatorType *ot)
Definition: node_select.cc:887
void NODE_OT_tree_socket_add(wmOperatorType *ot)
Definition: node_edit.cc:2480
void NODE_OT_add_mask(wmOperatorType *ot)
Definition: node_add.cc:773
void NODE_OT_backimage_sample(wmOperatorType *ot)
Definition: node_view.cc:692
void NODE_OT_add_reroute(wmOperatorType *ot)
Definition: node_add.cc:279
void NODE_OT_node_copy_color(wmOperatorType *ot)
Definition: node_edit.cc:2198
void NODE_OT_detach(wmOperatorType *ot)
void NODE_OT_viewer_border(wmOperatorType *ot)
Definition: node_edit.cc:2956
void NODE_OT_tree_socket_move(wmOperatorType *ot)
Definition: node_edit.cc:2711
void NODE_OT_find_node(wmOperatorType *ot)
void NODE_OT_select_lasso(wmOperatorType *ot)
void NODE_OT_add_collection(wmOperatorType *ot)
Definition: node_add.cc:590
void NODE_OT_backimage_zoom(wmOperatorType *ot)
Definition: node_view.cc:319
void NODE_OT_tree_socket_remove(wmOperatorType *ot)
Definition: node_edit.cc:2531
void NODE_OT_select(wmOperatorType *ot)
Definition: node_select.cc:695
void NODE_OT_insert_offset(wmOperatorType *ot)
void NODE_OT_group_make(wmOperatorType *ot)
Definition: node_group.cc:1057
void NODE_OT_resize(wmOperatorType *ot)
Definition: node_edit.cc:1142
void NODE_OT_backimage_move(wmOperatorType *ot)
Definition: node_view.cc:282
void NODE_OT_clipboard_paste(wmOperatorType *ot)
Definition: node_edit.cc:2408
void NODE_OT_render_changed(wmOperatorType *ot)
Definition: node_edit.cc:1603
void NODE_OT_links_detach(wmOperatorType *ot)
void NODE_OT_group_insert(wmOperatorType *ot)
Definition: node_group.cc:1107
void NODE_OT_delete_reconnect(wmOperatorType *ot)
Definition: node_edit.cc:1969
void NODE_OT_shader_script_update(wmOperatorType *ot)
Definition: node_edit.cc:2863
void NODE_OT_links_cut(wmOperatorType *ot)
void NODE_OT_hide_socket_toggle(wmOperatorType *ot)
Definition: node_edit.cc:1802
void NODE_OT_select_grouped(wmOperatorType *ot)
Definition: node_select.cc:447
void NODE_OT_output_file_remove_active_socket(wmOperatorType *ot)
Definition: node_edit.cc:2073
void NODE_OT_join(wmOperatorType *ot)
void NODE_OT_attach(wmOperatorType *ot)
void NODE_OT_view_selected(wmOperatorType *ot)
Definition: node_view.cc:158
void NODE_OT_link_viewer(wmOperatorType *ot)
void NODE_OT_select_linked_from(wmOperatorType *ot)
void NODE_OT_select_same_type_step(wmOperatorType *ot)
void NODE_OT_preview_toggle(wmOperatorType *ot)
Definition: node_edit.cc:1721
void NODE_OT_clear_viewer_border(wmOperatorType *ot)
Definition: node_edit.cc:2989
void NODE_OT_select_linked_to(wmOperatorType *ot)
void NODE_OT_link_make(wmOperatorType *ot)
void NODE_OT_view_all(wmOperatorType *ot)
Definition: node_view.cc:125
void NODE_OT_group_edit(wmOperatorType *ot)
Definition: node_group.cc:161
void NODE_OT_group_separate(wmOperatorType *ot)
Definition: node_group.cc:619
void NODE_OT_duplicate(wmOperatorType *ot)
Definition: node_edit.cc:1459
void NODE_OT_output_file_add_socket(wmOperatorType *ot)
Definition: node_edit.cc:2020
void NODE_OT_options_toggle(wmOperatorType *ot)
Definition: node_edit.cc:1752
void node_keymap(wmKeyConfig *keyconf)
Definition: node_ops.cc:114
void NODE_OT_add_group(wmOperatorType *ot)
Definition: node_add.cc:416
void NODE_OT_add_file(wmOperatorType *ot)
Definition: node_add.cc:705
void NODE_OT_link(wmOperatorType *ot)
void NODE_OT_switch_view_update(wmOperatorType *ot)
Definition: node_edit.cc:1929
void NODE_OT_links_mute(wmOperatorType *ot)
void NODE_OT_hide_toggle(wmOperatorType *ot)
Definition: node_edit.cc:1688
void NODE_OT_select_box(wmOperatorType *ot)
Definition: node_select.cc:797
void NODE_OT_select_all(wmOperatorType *ot)
void NODE_OT_group_ungroup(wmOperatorType *ot)
Definition: node_group.cc:409
void NODE_OT_new_node_tree(wmOperatorType *ot)
Definition: node_add.cc:865
void NODE_OT_cryptomatte_layer_remove(wmOperatorType *ot)
Definition: node_edit.cc:3087
void NODE_OT_backimage_fit(wmOperatorType *ot)
Definition: node_view.cc:384
void NODE_OT_tree_socket_change_type(wmOperatorType *ot)
Definition: node_edit.cc:2628
void NODE_OT_output_file_move_active_socket(wmOperatorType *ot)
Definition: node_edit.cc:2144
void NODE_OT_mute_toggle(wmOperatorType *ot)
Definition: node_edit.cc:1842
void ED_operatormacros_node()
Definition: node_ops.cc:125
void RNA_boolean_set(PointerRNA *ptr, const char *name, bool value)
Definition: rna_access.c:4874
wmOperatorType * ot
Definition: wm_files.c:3479
wmKeyMap * WM_keymap_ensure(wmKeyConfig *keyconf, const char *idname, int spaceid, int regionid)
Definition: wm_keymap.c:852
wmOperatorType * WM_operatortype_append_macro(const char *idname, const char *name, const char *description, int flag)
wmOperatorTypeMacro * WM_operatortype_macro_define(wmOperatorType *ot, const char *idname)
void WM_operatortype_append(void(*opfunc)(wmOperatorType *))