Blender V4.3
wm_gizmo_intern.hh File Reference
#include "wm_gizmo_fn.hh"

Go to the source code of this file.

Classes

struct  wmGizmoMapSelectState
 
struct  wmGizmoMap
 
struct  wmGizmoMapType
 

Enumerations

enum  { WM_GIZMO_IS_VISIBLE_UPDATE = (1 << 0) , WM_GIZMO_IS_VISIBLE_DRAW = (1 << 1) }
 
enum  {
  TWEAK_MODAL_CANCEL = 1 , TWEAK_MODAL_CONFIRM , TWEAK_MODAL_PRECISION_ON , TWEAK_MODAL_PRECISION_OFF ,
  TWEAK_MODAL_SNAP_ON , TWEAK_MODAL_SNAP_OFF
}
 

Functions

bool wm_gizmo_select_set_ex (wmGizmoMap *gzmap, wmGizmo *gz, bool select, bool use_array, bool use_callback)
 
bool wm_gizmo_select_and_highlight (bContext *C, wmGizmoMap *gzmap, wmGizmo *gz)
 
void wm_gizmo_calculate_scale (wmGizmo *gz, const bContext *C)
 
void wm_gizmo_update (wmGizmo *gz, const bContext *C, bool refresh_map)
 
int wm_gizmo_is_visible (wmGizmo *gz)
 
wmGizmoGroupwm_gizmogroup_new_from_type (wmGizmoMap *gzmap, wmGizmoGroupType *gzgt)
 
void wm_gizmogroup_free (bContext *C, wmGizmoGroup *gzgroup)
 
void wm_gizmogroup_gizmo_register (wmGizmoGroup *gzgroup, wmGizmo *gz)
 
wmGizmoGroupwm_gizmogroup_find_by_type (const wmGizmoMap *gzmap, const wmGizmoGroupType *gzgt)
 
wmGizmowm_gizmogroup_find_intersected_gizmo (wmWindowManager *wm, const wmGizmoGroup *gzgroup, bContext *C, int event_modifier, const int mval[2], int *r_part)
 
void wm_gizmogroup_intersectable_gizmos_to_list (wmWindowManager *wm, const wmGizmoGroup *gzgroup, int event_modifier, BLI_Buffer *visible_gizmos)
 
bool wm_gizmogroup_is_visible_in_drawstep (const wmGizmoGroup *gzgroup, eWM_GizmoFlagMapDrawStep drawstep)
 
void wm_gizmogrouptype_setup_keymap (wmGizmoGroupType *gzgt, wmKeyConfig *keyconf)
 
wmKeyMapwm_gizmogroup_tweak_modal_keymap (wmKeyConfig *keyconf)
 
void wm_gizmomap_select_array_clear (wmGizmoMap *gzmap)
 
bool wm_gizmomap_deselect_all (wmGizmoMap *gzmap)
 
void wm_gizmomap_select_array_shrink (wmGizmoMap *gzmap, int len_subtract)
 
void wm_gizmomap_select_array_push_back (wmGizmoMap *gzmap, wmGizmo *gz)
 
void wm_gizmomap_select_array_remove (wmGizmoMap *gzmap, wmGizmo *gz)
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
WM_GIZMO_IS_VISIBLE_UPDATE 
WM_GIZMO_IS_VISIBLE_DRAW 

Definition at line 34 of file wm_gizmo_intern.hh.

◆ anonymous enum

anonymous enum
Enumerator
TWEAK_MODAL_CANCEL 
TWEAK_MODAL_CONFIRM 
TWEAK_MODAL_PRECISION_ON 
TWEAK_MODAL_PRECISION_OFF 
TWEAK_MODAL_SNAP_ON 
TWEAK_MODAL_SNAP_OFF 

Definition at line 42 of file wm_gizmo_intern.hh.

Function Documentation

◆ wm_gizmo_calculate_scale()

◆ wm_gizmo_is_visible()

◆ wm_gizmo_select_and_highlight()

bool wm_gizmo_select_and_highlight ( bContext * C,
wmGizmoMap * gzmap,
wmGizmo * gz )

◆ wm_gizmo_select_set_ex()

bool wm_gizmo_select_set_ex ( wmGizmoMap * gzmap,
wmGizmo * gz,
bool select,
bool use_array,
bool use_callback )

Add/Remove gizmo to selection. Reallocates memory for selected gizmos so better not call for selecting multiple ones.

Returns
if the selection has changed.

Definition at line 356 of file wm_gizmo.cc.

References select(), wmGizmoType::select_refresh, wmGizmo::state, wmGizmo::type, WM_GIZMO_STATE_SELECT, wm_gizmomap_select_array_push_back(), and wm_gizmomap_select_array_remove().

Referenced by WM_gizmo_select_set(), WM_gizmo_select_unlink(), and wm_gizmomap_deselect_all().

◆ wm_gizmo_update()

void wm_gizmo_update ( wmGizmo * gz,
const bContext * C,
bool refresh_map )

Definition at line 490 of file wm_gizmo.cc.

References gizmo_update_prop_data(), and wm_gizmo_calculate_scale().

Referenced by gizmo_prepare_drawing().

◆ wm_gizmogroup_find_by_type()

wmGizmoGroup * wm_gizmogroup_find_by_type ( const wmGizmoMap * gzmap,
const wmGizmoGroupType * gzgt )

Definition at line 67 of file wm_gizmo_group.cc.

References BLI_findptr(), wmGizmoMap::groups, and offsetof.

◆ wm_gizmogroup_find_intersected_gizmo()

wmGizmo * wm_gizmogroup_find_intersected_gizmo ( wmWindowManager * wm,
const wmGizmoGroup * gzgroup,
bContext * C,
int event_modifier,
const int mval[2],
int * r_part )

◆ wm_gizmogroup_free()

◆ wm_gizmogroup_gizmo_register()

void wm_gizmogroup_gizmo_register ( wmGizmoGroup * gzgroup,
wmGizmo * gz )

Add gizmo to gzgroup and make sure its name is unique within the group.

Definition at line 130 of file wm_gizmo_group.cc.

References BLI_addtail(), BLI_assert, BLI_findindex(), wmGizmoGroup::gizmos, and wmGizmo::parent_gzgroup.

Referenced by wm_gizmo_register().

◆ wm_gizmogroup_intersectable_gizmos_to_list()

void wm_gizmogroup_intersectable_gizmos_to_list ( wmWindowManager * wm,
const wmGizmoGroup * gzgroup,
int event_modifier,
BLI_Buffer * visible_gizmos )

Adds all gizmos of gzgroup that can be selected to the head of listbase. Added items need freeing!

Definition at line 214 of file wm_gizmo_group.cc.

References BLI_buffer_append, wmGizmoGroupType::flag, wmGizmoGroup::gizmos, LISTBASE_FOREACH_BACKWARD, wmGizmoGroup::type, WM_GIZMO_HIDDEN, WM_GIZMO_HIDDEN_SELECT, wm_gizmo_keymap_uses_event_modifier(), and WM_GIZMOGROUPTYPE_3D.

Referenced by wm_gizmomap_highlight_find().

◆ wm_gizmogroup_is_visible_in_drawstep()

◆ wm_gizmogroup_new_from_type()

wmGizmoGroup * wm_gizmogroup_new_from_type ( wmGizmoMap * gzmap,
wmGizmoGroupType * gzgt )

◆ wm_gizmogroup_tweak_modal_keymap()

◆ wm_gizmogrouptype_setup_keymap()

◆ wm_gizmomap_deselect_all()

bool wm_gizmomap_deselect_all ( wmGizmoMap * gzmap)

Deselect all selected gizmos in gzmap.

Returns
if selection has changed.

Definition at line 875 of file wm_gizmo_map.cc.

References wmGizmoMap::gzmap_context, wmGizmoMapSelectState::items, wmGizmoMapSelectState::len, wmGizmoMap::select, wm_gizmo_select_set_ex(), and wm_gizmomap_select_array_clear().

Referenced by gizmo_select_invoke(), and WM_gizmomap_select_all().

◆ wm_gizmomap_select_array_clear()

◆ wm_gizmomap_select_array_push_back()

◆ wm_gizmomap_select_array_remove()

void wm_gizmomap_select_array_remove ( wmGizmoMap * gzmap,
wmGizmo * gz )

◆ wm_gizmomap_select_array_shrink()