84 func = &rna_Gizmo_draw_func;
93 static void rna_gizmo_draw_select_cb(
const struct bContext *
C,
struct wmGizmo *gz,
int select_id)
102 func = &rna_Gizmo_draw_select_func;
112 static int rna_gizmo_test_select_cb(
struct bContext *
C,
struct wmGizmo *gz,
const int location[2])
121 func = &rna_Gizmo_test_select_func;
129 int intersect_id = *(
int *)
ret;
135 static int rna_gizmo_modal_cb(
struct bContext *
C,
145 const int tweak_flag_int = tweak_flag;
148 func = &rna_Gizmo_modal_func;
157 int ret_enum = *(
int *)
ret;
163 static void rna_gizmo_setup_cb(
struct wmGizmo *gz)
172 func = &rna_Gizmo_setup_func;
187 func = &rna_Gizmo_invoke_func;
195 int ret_enum = *(
int *)
ret;
201 static void rna_gizmo_exit_cb(
struct bContext *
C,
struct wmGizmo *gz,
bool cancel)
210 func = &rna_Gizmo_exit_func;
214 int cancel_i = cancel;
221 static void rna_gizmo_select_refresh_cb(
struct wmGizmo *gz)
230 func = &rna_Gizmo_select_refresh_func;
239 static void rna_Gizmo_bl_idname_set(
PointerRNA *
ptr,
const char *value)
242 char *
str = (
char *)
data->type->idname;
247 BLI_assert(!
"setting the bl_idname on a non-builtin operator");
264 for (
bScreen *screen =
G_MAIN->screens.first; screen; screen = screen->id.next) {
268 if (region->gizmo_map) {
286 wmGizmo *gz = rna_GizmoProperties_find_operator(
ptr);
313 # define RNA_GIZMO_GENERIC_FLOAT_RW_DEF(func_id, member_id) \
314 static float rna_Gizmo_##func_id##_get(PointerRNA *ptr) \
316 wmGizmo *gz = ptr->data; \
317 return gz->member_id; \
319 static void rna_Gizmo_##func_id##_set(PointerRNA *ptr, float value) \
321 wmGizmo *gz = ptr->data; \
322 gz->member_id = value; \
324 # define RNA_GIZMO_GENERIC_FLOAT_ARRAY_INDEX_RW_DEF(func_id, member_id, index) \
325 static float rna_Gizmo_##func_id##_get(PointerRNA *ptr) \
327 wmGizmo *gz = ptr->data; \
328 return gz->member_id[index]; \
330 static void rna_Gizmo_##func_id##_set(PointerRNA *ptr, float value) \
332 wmGizmo *gz = ptr->data; \
333 gz->member_id[index] = value; \
336 # define RNA_GIZMO_GENERIC_FLOAT_ARRAY_RW_DEF(func_id, member_id, len) \
337 static void rna_Gizmo_##func_id##_get(PointerRNA *ptr, float value[len]) \
339 wmGizmo *gz = ptr->data; \
340 memcpy(value, gz->member_id, sizeof(float[len])); \
342 static void rna_Gizmo_##func_id##_set(PointerRNA *ptr, const float value[len]) \
344 wmGizmo *gz = ptr->data; \
345 memcpy(gz->member_id, value, sizeof(float[len])); \
349 # define RNA_GIZMO_GENERIC_FLAG_RW_DEF(func_id, member_id, flag_value) \
350 static bool rna_Gizmo_##func_id##_get(PointerRNA *ptr) \
352 wmGizmo *gz = ptr->data; \
353 return (gz->member_id & flag_value) != 0; \
355 static void rna_Gizmo_##func_id##_set(PointerRNA *ptr, bool value) \
357 wmGizmo *gz = ptr->data; \
358 SET_FLAG_FROM_TEST(gz->member_id, value, flag_value); \
362 # define RNA_GIZMO_GENERIC_FLAG_NEG_RW_DEF(func_id, member_id, flag_value) \
363 static bool rna_Gizmo_##func_id##_get(PointerRNA *ptr) \
365 wmGizmo *gz = ptr->data; \
366 return (gz->member_id & flag_value) == 0; \
368 static void rna_Gizmo_##func_id##_set(PointerRNA *ptr, bool value) \
370 wmGizmo *gz = ptr->data; \
371 SET_FLAG_FROM_TEST(gz->member_id, !value, flag_value); \
374 # define RNA_GIZMO_FLAG_RO_DEF(func_id, member_id, flag_value) \
375 static int rna_Gizmo_##func_id##_get(PointerRNA *ptr) \
377 wmGizmo *gz = ptr->data; \
378 return (gz->member_id & flag_value) != 0; \
381 RNA_GIZMO_GENERIC_FLOAT_ARRAY_RW_DEF(color, color, 3);
382 RNA_GIZMO_GENERIC_FLOAT_ARRAY_RW_DEF(color_hi, color_hi, 3);
384 RNA_GIZMO_GENERIC_FLOAT_ARRAY_INDEX_RW_DEF(
alpha, color, 3);
385 RNA_GIZMO_GENERIC_FLOAT_ARRAY_INDEX_RW_DEF(alpha_hi, color_hi, 3);
387 RNA_GIZMO_GENERIC_FLOAT_ARRAY_RW_DEF(matrix_space, matrix_space, 16);
388 RNA_GIZMO_GENERIC_FLOAT_ARRAY_RW_DEF(matrix_basis, matrix_basis, 16);
389 RNA_GIZMO_GENERIC_FLOAT_ARRAY_RW_DEF(matrix_offset, matrix_offset, 16);
391 static void rna_Gizmo_matrix_world_get(
PointerRNA *
ptr,
float value[16])
397 RNA_GIZMO_GENERIC_FLOAT_RW_DEF(scale_basis, scale_basis);
398 RNA_GIZMO_GENERIC_FLOAT_RW_DEF(line_width, line_width);
399 RNA_GIZMO_GENERIC_FLOAT_RW_DEF(select_bias, select_bias);
411 RNA_GIZMO_GENERIC_FLAG_RW_DEF(flag_use_operator_tool_properties,
422 static void rna_Gizmo_state_select_set(
struct PointerRNA *
ptr,
bool value)
443 const char *identifier,
457 int have_function[8];
460 dummymnp.
type = &dummygt;
461 dummygt.
idname = temp_buffers.idname;
465 temp_buffers.idname[0] =
'\0';
468 if (validate(&mnp_ptr,
data, have_function) != 0) {
472 if (strlen(identifier) >=
sizeof(temp_buffers.idname)) {
475 "Registering gizmo class: '%s' is too long, maximum length is %d",
477 (
int)
sizeof(temp_buffers.idname));
507 dummygt.
draw = (have_function[i++]) ? rna_gizmo_draw_cb :
NULL;
508 dummygt.
draw_select = (have_function[i++]) ? rna_gizmo_draw_select_cb :
NULL;
509 dummygt.
test_select = (have_function[i++]) ? rna_gizmo_test_select_cb :
NULL;
510 dummygt.
modal = (have_function[i++]) ? rna_gizmo_modal_cb :
NULL;
513 dummygt.
setup = (have_function[i++]) ? rna_gizmo_setup_cb :
NULL;
514 dummygt.
invoke = (have_function[i++]) ? rna_gizmo_invoke_cb :
NULL;
515 dummygt.
exit = (have_function[i++]) ? rna_gizmo_exit_cb :
NULL;
613 "GizmoType '%s' is for a 3D gizmo-group. "
614 "The 'draw_select' callback is set where only 'test_select' will be used",
635 static void rna_GizmoGroup_name_get(
PointerRNA *
ptr,
char *value)
648 static void rna_GizmoGroup_bl_idname_set(
PointerRNA *
ptr,
const char *value)
651 char *
str = (
char *)
data->type->idname;
656 BLI_assert(!
"setting the bl_idname on a non-builtin operator");
660 static void rna_GizmoGroup_bl_label_set(
PointerRNA *
ptr,
const char *value)
663 char *
str = (
char *)
data->type->name;
668 BLI_assert(!
"setting the bl_label on a non-builtin operator");
692 func = &rna_GizmoGroup_poll_func;
699 visible = *(
bool *)
ret;
715 func = &rna_GizmoGroup_setup_func;
726 extern FunctionRNA rna_GizmoGroup_setup_keymap_func;
735 &rna_GizmoGroup_setup_keymap_func;
758 func = &rna_GizmoGroup_refresh_func;
769 extern FunctionRNA rna_GizmoGroup_draw_prepare_func;
777 &rna_GizmoGroup_draw_prepare_func;
786 static void rna_gizmogroup_invoke_prepare_cb(
const bContext *
C,
791 extern FunctionRNA rna_GizmoGroup_invoke_prepare_func;
799 func = &rna_GizmoGroup_invoke_prepare_func;
816 const char *identifier,
831 int have_function[6];
834 dummywg.
type = &dummywgt;
835 dummywgt.
name = temp_buffers.name;
836 dummywgt.
idname = temp_buffers.idname;
841 temp_buffers.idname[0] = temp_buffers.name[0] =
'\0';
844 if (validate(&wgptr,
data, have_function) != 0) {
848 if (strlen(identifier) >=
sizeof(temp_buffers.idname)) {
851 "Registering gizmogroup class: '%s' is too long, maximum length is %d",
853 (
int)
sizeof(temp_buffers.idname));
864 if (gzmap_type ==
NULL) {
873 rna_GizmoGroup_unregister(bmain, gzgt->
rna_ext.
srna);
881 const char *strings[] = {
887 '\0', strings_table, strings,
ARRAY_SIZE(strings));
889 dummywgt.
idname = strings_table[0];
890 dummywgt.
name = strings_table[1];
906 dummywgt.
poll = (have_function[0]) ? rna_gizmogroup_poll_cb :
NULL;
907 dummywgt.
setup_keymap = (have_function[1]) ? rna_gizmogroup_setup_keymap_cb :
NULL;
908 dummywgt.
setup = (have_function[2]) ? rna_gizmogroup_setup_cb :
NULL;
909 dummywgt.
refresh = (have_function[3]) ? rna_gizmogroup_refresh_cb :
NULL;
910 dummywgt.
draw_prepare = (have_function[4]) ? rna_gizmogroup_draw_prepare_cb :
NULL;
911 dummywgt.
invoke_prepare = (have_function[5]) ? rna_gizmogroup_invoke_prepare_cb :
NULL;
994 parm =
RNA_def_string(func,
"type",
"Type", 0,
"",
"Gizmo identifier");
1027 srna,
"rna_Gizmo_register",
"rna_Gizmo_unregister",
"rna_Gizmo_instance");
1064 parm =
RNA_def_int(func,
"select_id", 0, 0, INT_MAX,
"",
"", 0, INT_MAX);
1079 "Region coordinates",
1084 func,
"intersect_id", -1, -1, INT_MAX,
"",
"Use -1 to skip this gizmo", -1, INT_MAX);
1132 parm =
RNA_def_boolean(func,
"cancel", 0,
"Cancel, otherwise confirm",
"");
1178 prop,
"rna_Gizmo_matrix_space_get",
"rna_Gizmo_matrix_space_set",
NULL);
1185 prop,
"rna_Gizmo_matrix_basis_get",
"rna_Gizmo_matrix_basis_set",
NULL);
1192 prop,
"rna_Gizmo_matrix_offset_get",
"rna_Gizmo_matrix_offset_set",
NULL);
1204 prop,
"rna_Gizmo_scale_basis_get",
"rna_Gizmo_scale_basis_set",
NULL);
1217 prop,
"rna_Gizmo_select_bias_get",
"rna_Gizmo_select_bias_set",
NULL);
1229 prop,
"rna_Gizmo_flag_hide_select_get",
"rna_Gizmo_flag_hide_select_set");
1235 prop,
"rna_Gizmo_flag_hide_keymap_get",
"rna_Gizmo_flag_hide_keymap_set");
1241 prop,
"rna_Gizmo_flag_use_grab_cursor_get",
"rna_Gizmo_flag_use_grab_cursor_set");
1248 prop,
"rna_Gizmo_flag_use_draw_hover_get",
"rna_Gizmo_flag_use_draw_hover_set");
1254 prop,
"rna_Gizmo_flag_use_draw_modal_get",
"rna_Gizmo_flag_use_draw_modal_set");
1260 prop,
"rna_Gizmo_flag_use_draw_value_get",
"rna_Gizmo_flag_use_draw_value_set");
1262 prop,
"Show Value",
"Show an indicator for the current value while dragging");
1267 "rna_Gizmo_flag_use_draw_offset_scale_get",
1268 "rna_Gizmo_flag_use_draw_offset_scale_set");
1270 prop,
"Scale Offset",
"Scale the offset matrix (use to apply screen-space offset)");
1275 prop,
"rna_Gizmo_flag_use_draw_scale_get",
"rna_Gizmo_flag_use_draw_scale_set");
1281 "rna_Gizmo_flag_use_select_background_get",
1282 "rna_Gizmo_flag_use_select_background_set");
1289 "rna_Gizmo_flag_use_operator_tool_properties_get",
1290 "rna_Gizmo_flag_use_operator_tool_properties_set");
1293 "Tool Property Init",
1294 "Merge active tool properties on activation (does not overwrite existing)");
1300 prop,
"rna_Gizmo_flag_use_event_handle_all_get",
"rna_Gizmo_flag_use_event_handle_all_set");
1302 "Handle All Events",
1303 "When highlighted, "
1304 "do not pass events through to be handled by other keymaps");
1310 prop,
"rna_Gizmo_flag_use_tooltip_get",
"rna_Gizmo_flag_use_tooltip_set");
1350 srna,
"GizmoGroup",
"Storage of an operator being executed, or registered after execution");
1355 srna,
"rna_GizmoGroup_register",
"rna_GizmoGroup_unregister",
"rna_GizmoGroup_instance");
1389 prop,
"Region Type",
"The region where the panel is going to be used in");
1402 "Scale to respect zoom (otherwise zoom independent display size)"},
1407 "Supports culled depth by other objects in the view"},
1414 "Show all while interacting"},
1419 "Postpone running until tool operator run (when used with a tool)"},
1424 "The gizmos are made for use with virtual reality sessions and require special redraw "
1449 func,
"Initialize keymaps for this gizmo group, use fallback keymap when not present");
1468 func,
"Refresh data (called on common state changes such as selection)");
1493 prop,
"rna_GizmoGroup_name_get",
"rna_GizmoGroup_name_length",
NULL);
1502 "GizmoGroup has a set of reports (warnings and errors) from last execution");
1510 "rna_GizmoGroup_gizmos_begin",
1511 "rna_iterator_listbase_next",
1512 "rna_iterator_listbase_end",
1513 "rna_iterator_listbase_get",
struct IDProperty * IDP_New(const char type, const IDPropertyTemplate *val, const char *name) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
void BKE_report(ReportList *reports, ReportType type, const char *message)
void BKE_reportf(ReportList *reports, ReportType type, const char *format,...) ATTR_PRINTF_FORMAT(3
void BLI_kdtree_nd_() free(KDTree *tree)
#define LISTBASE_FOREACH(type, var, list)
char * BLI_strdup(const char *str) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL() ATTR_MALLOC
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, const size_t maxncpy) ATTR_NONNULL()
char * BLI_string_join_array_by_sep_char_with_tableN(char sep, char *table[], const char *strings[], uint strings_len) ATTR_NONNULL()
#define BLT_I18NCONTEXT_OPERATOR_DEFAULT
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
Read Guarded memory(de)allocation.
void(* StructFreeFunc)(void *data)
int(* StructValidateFunc)(struct PointerRNA *ptr, void *data, int *have_function)
@ STRUCT_NO_DATABLOCK_IDPROPERTIES
int(* StructCallbackFunc)(struct bContext *C, struct PointerRNA *ptr, struct FunctionRNA *func, ParameterList *list)
eWM_GizmoFlagTweak
Gizmo tweak flag. Bitflag passed to gizmo while tweaking.
@ WM_GIZMO_EVENT_HANDLE_ALL
@ WM_GIZMO_OPERATOR_TOOL_INIT
@ WM_GIZMO_DRAW_OFFSET_SCALE
@ WM_GIZMO_SELECT_BACKGROUND
@ WM_GIZMOGROUPTYPE_VR_REDRAWS
@ WM_GIZMOGROUPTYPE_SCALE
@ WM_GIZMOGROUPTYPE_TOOL_INIT
@ WM_GIZMOGROUPTYPE_DEPTH_3D
@ WM_GIZMOGROUPTYPE_DRAW_MODAL_ALL
@ WM_GIZMOGROUPTYPE_PERSISTENT
@ WM_GIZMOGROUPTYPE_SELECT
@ WM_GIZMO_STATE_HIGHLIGHT
void BPY_RNA_gizmo_wrapper(wmGizmoType *gzt, void *userdata)
void BPY_RNA_gizmogroup_wrapper(wmGizmoGroupType *gzgt, void *userdata)
static CCL_NAMESPACE_BEGIN const double alpha
static void area(int d1, int d2, int e1, int e2, float weights[2])
void RNA_pointer_create(ID *id, StructRNA *type, void *data, PointerRNA *r_ptr)
void RNA_parameter_get_lookup(ParameterList *parms, const char *identifier, void **value)
bool RNA_struct_available_or_report(ReportList *reports, const char *identifier)
ParameterList * RNA_parameter_list_create(ParameterList *parms, PointerRNA *UNUSED(ptr), FunctionRNA *func)
void * RNA_struct_blender_type_get(StructRNA *srna)
void RNA_parameter_list_free(ParameterList *parms)
void rna_iterator_listbase_begin(CollectionPropertyIterator *iter, ListBase *lb, IteratorSkipFunc skip)
void RNA_parameter_set_lookup(ParameterList *parms, const char *identifier, const void *value)
PointerRNA rna_pointer_inherit_refine(PointerRNA *ptr, StructRNA *type, void *data)
const char * RNA_struct_state_owner_get(void)
void RNA_def_struct_refine_func(StructRNA *srna, const char *refine)
PropertyRNA * RNA_def_boolean(StructOrFunctionRNA *cont_, const char *identifier, bool default_value, const char *ui_name, const char *ui_description)
PropertyRNA * RNA_def_enum_flag(StructOrFunctionRNA *cont_, const char *identifier, const EnumPropertyItem *items, int default_value, const char *ui_name, const char *ui_description)
PropertyRNA * RNA_def_pointer(StructOrFunctionRNA *cont_, const char *identifier, const char *type, const char *ui_name, const char *ui_description)
void RNA_def_struct_flag(StructRNA *srna, int flag)
void RNA_def_parameter_clear_flags(PropertyRNA *prop, PropertyFlag flag_property, ParameterFlag flag_parameter)
PropertyRNA * RNA_def_int_array(StructOrFunctionRNA *cont_, const char *identifier, int len, const int *default_value, int hardmin, int hardmax, const char *ui_name, const char *ui_description, int softmin, int softmax)
void RNA_def_property_string_funcs(PropertyRNA *prop, const char *get, const char *length, const char *set)
void RNA_def_function_return(FunctionRNA *func, PropertyRNA *ret)
void RNA_def_property_float_funcs(PropertyRNA *prop, const char *get, const char *set, const char *range)
void RNA_define_verify_sdna(bool verify)
void RNA_def_property_ui_text(PropertyRNA *prop, const char *name, const char *description)
void RNA_def_property_string_sdna(PropertyRNA *prop, const char *structname, const char *propname)
FunctionRNA * RNA_def_function(StructRNA *srna, const char *identifier, const char *call)
void RNA_def_property_srna(PropertyRNA *prop, const char *type)
void RNA_def_property_collection_funcs(PropertyRNA *prop, const char *begin, const char *next, const char *end, const char *get, const char *length, const char *lookupint, const char *lookupstring, const char *assignint)
void RNA_def_struct_ui_text(StructRNA *srna, const char *name, const char *description)
void RNA_def_property_boolean_funcs(PropertyRNA *prop, const char *get, const char *set)
void RNA_def_struct_register_funcs(StructRNA *srna, const char *reg, const char *unreg, const char *instance)
void RNA_def_property_multi_array(PropertyRNA *prop, int dimension, const int length[])
StructRNA * RNA_def_struct_ptr(BlenderRNA *brna, const char *identifier, StructRNA *srnafrom)
void RNA_def_property_enum_items(PropertyRNA *prop, const EnumPropertyItem *item)
void RNA_def_struct_sdna(StructRNA *srna, const char *structname)
void RNA_def_property_array(PropertyRNA *prop, int length)
void RNA_def_property_range(PropertyRNA *prop, double min, double max)
void RNA_def_property_string_maxlength(PropertyRNA *prop, int maxlength)
void RNA_def_property_struct_type(PropertyRNA *prop, const char *type)
void RNA_def_property_collection_sdna(PropertyRNA *prop, const char *structname, const char *propname, const char *lengthpropname)
void RNA_def_function_ui_description(FunctionRNA *func, const char *description)
void RNA_def_property_update(PropertyRNA *prop, int noteflag, const char *func)
const int rna_matrix_dimsize_4x4[]
PropertyRNA * RNA_def_property(StructOrFunctionRNA *cont_, const char *identifier, int type, int subtype)
void RNA_def_struct_name_property(struct StructRNA *srna, struct PropertyRNA *prop)
void RNA_def_function_flag(FunctionRNA *func, int flag)
void RNA_def_property_clear_flag(PropertyRNA *prop, PropertyFlag flag)
void RNA_struct_free_extension(StructRNA *srna, ExtensionRNA *rna_ext)
void RNA_def_property_pointer_funcs(PropertyRNA *prop, const char *get, const char *set, const char *type_fn, const char *poll)
StructRNA * RNA_def_struct(BlenderRNA *brna, const char *identifier, const char *from)
void RNA_def_property_enum_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_struct_free(BlenderRNA *brna, StructRNA *srna)
PropertyRNA * RNA_def_string(StructOrFunctionRNA *cont_, const char *identifier, const char *default_value, int maxlen, const char *ui_name, const char *ui_description)
void RNA_def_struct_idprops_func(StructRNA *srna, const char *idproperties)
void RNA_def_property_flag(PropertyRNA *prop, PropertyFlag flag)
PropertyRNA * RNA_def_int(StructOrFunctionRNA *cont_, const char *identifier, int default_value, int hardmin, int hardmax, const char *ui_name, const char *ui_description, int softmin, int softmax)
void RNA_def_struct_translation_context(StructRNA *srna, const char *context)
void RNA_def_parameter_flags(PropertyRNA *prop, PropertyFlag flag_property, ParameterFlag flag_parameter)
void RNA_api_gizmogroup(struct StructRNA *srna)
void RNA_api_gizmo(struct StructRNA *srna)
const EnumPropertyItem rna_enum_region_type_items[]
const EnumPropertyItem rna_enum_space_type_items[]
const EnumPropertyItem rna_enum_operator_return_items[]
static void rna_def_gizmo(BlenderRNA *brna, PropertyRNA *cprop)
static void rna_def_gizmogroup(BlenderRNA *brna)
static void rna_def_gizmos(BlenderRNA *brna, PropertyRNA *cprop)
void RNA_def_wm_gizmo(BlenderRNA *brna)
wmGizmoGroupFnSetupKeymap setup_keymap
wmGizmoGroupFnRefresh refresh
wmGizmoGroupFnInvokePrepare invoke_prepare
eWM_GizmoFlagGroupTypeFlag flag
struct wmGizmoMapType_Params gzmap_params
wmGizmoGroupFnDrawPrepare draw_prepare
struct wmGizmoGroupType * type
struct wmGizmoMap * parent_gzmap
struct ReportList * reports
wmGizmoFnSelectRefresh select_refresh
wmGizmoFnTestSelect test_select
wmGizmoFnDrawSelect draw_select
struct wmGizmoGroup * parent_gzgroup
const struct wmGizmoType * type
struct IDProperty * properties
void WM_main_add_notifier(unsigned int type, void *reference)
void WM_gizmo_calc_matrix_final(const wmGizmo *gz, float r_mat[4][4])
wmGizmo * WM_gizmo_new_ptr(const wmGizmoType *gzt, wmGizmoGroup *gzgroup, PointerRNA *properties)
bool WM_gizmo_select_set(wmGizmoMap *gzmap, wmGizmo *gz, bool select)
void WM_gizmo_unlink(ListBase *gizmolist, wmGizmoMap *gzmap, wmGizmo *gz, bContext *C)
void WM_gizmo_group_type_add_ptr_ex(wmGizmoGroupType *gzgt, wmGizmoMapType *gzmap_type)
void WM_gizmo_group_type_remove_ptr(struct Main *bmain, wmGizmoGroupType *gzgt)
wmGizmoGroupType * WM_gizmogrouptype_append_ptr(void(*wtfunc)(struct wmGizmoGroupType *, void *), void *userdata)
void WM_gizmo_group_type_free_ptr(wmGizmoGroupType *gzgt)
wmGizmoGroupType * WM_gizmogrouptype_find(const char *idname, bool quiet)
wmGizmoMapType * WM_gizmomaptype_ensure(const struct wmGizmoMapType_Params *gzmap_params)
const ListBase * WM_gizmomap_group_list(wmGizmoMap *gzmap)
void WM_gizmotype_append_ptr(void(*gtfunc)(struct wmGizmoType *, void *), void *userdata)
void WM_gizmotype_remove_ptr(bContext *C, Main *bmain, wmGizmoType *gzt)
const wmGizmoType * WM_gizmotype_find(const char *idname, bool quiet)
void WM_gizmotype_free_ptr(wmGizmoType *gzt)