Blender V5.0
wm_gizmo_intern.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
8
9#pragma once
10
11#include "DNA_listBase.h"
12
13#include "WM_gizmo_types.hh"
14
15#include "BLI_vector.hh"
16
17struct wmGizmoMap;
18struct wmGizmoGroupType;
19struct wmGizmoMapType;
20struct wmGizmoType;
21struct wmKeyConfig;
22struct wmWindowManager;
23
24#include "wm_gizmo_fn.hh"
25
26/* -------------------------------------------------------------------- */
27/* #wmGizmo. */
28
36 wmGizmoMap *gzmap, wmGizmo *gz, bool select, bool use_array, bool use_callback);
38
40void wm_gizmo_update(wmGizmo *gz, const bContext *C, bool refresh_map);
41
43enum {
46};
47
48/* -------------------------------------------------------------------- */
49/* #wmGizmoGroup. */
50
51enum {
58};
59
71 const wmGizmoGroup *gzgroup,
72 bContext *C,
73 int event_modifier,
74 const int mval[2],
75 int *r_part);
81 const wmGizmoGroup *gzgroup,
82 int event_modifier,
83 blender::Vector<wmGizmo *, 128> *r_visible_gizmos);
86
88
90
91/* -------------------------------------------------------------------- */
92/* #wmGizmoMap. */
93
98
99struct wmGizmoMap {
101 ListBase groups; /* #wmGizmoGroup. */
102
103 /* Private, update tagging (enum defined in C source). */
105
108
111
114
121 struct {
129 int event_xy[2];
134};
135
145 /* Types of gizmo-groups for this gizmo-map type. */
147
148 /* #eGizmoMapTypeUpdateFlags. */
150};
151
158void wm_gizmomap_select_array_shrink(wmGizmoMap *gzmap, int len_subtract);
These structs are the foundation for all linked lists in the library system.
#define C
Definition RandGen.cpp:29
eWM_GizmoFlagMapDrawStep
eWM_GizmoFlagMapTypeUpdateFlag
#define WM_GIZMOMAP_DRAWSTEP_MAX
#define select(A, B, C)
struct wmGizmo ** items
eWM_GizmoFlagMapTypeUpdateFlag type_update_flag
wmGizmoMapType * next
wmGizmoMapType * prev
wmGizmoMapSelectState select
char update_flag[WM_GIZMOMAP_DRAWSTEP_MAX]
wmGizmo * modal
bool tag_highlight_pending
wmGizmoMapType * type
struct wmGizmoMap::@114263143030171315362141314326010164050332242157 gzmap_context
Gizmo map runtime context.
wmGizmo * highlight
wmGizmo * wm_gizmogroup_find_intersected_gizmo(wmWindowManager *wm, const wmGizmoGroup *gzgroup, bContext *C, int event_modifier, const int mval[2], int *r_part)
@ WM_GIZMO_IS_VISIBLE_DRAW
@ WM_GIZMO_IS_VISIBLE_UPDATE
bool wm_gizmo_select_set_ex(wmGizmoMap *gzmap, wmGizmo *gz, bool select, bool use_array, bool use_callback)
Definition wm_gizmo.cc:360
void wm_gizmogroup_gizmo_register(wmGizmoGroup *gzgroup, wmGizmo *gz)
void wm_gizmogrouptype_setup_keymap(wmGizmoGroupType *gzgt, wmKeyConfig *keyconf)
wmKeyMap * wm_gizmogroup_tweak_modal_keymap(wmKeyConfig *keyconf)
wmGizmoGroup * wm_gizmogroup_new_from_type(wmGizmoMap *gzmap, wmGizmoGroupType *gzgt)
void wm_gizmomap_select_array_remove(wmGizmoMap *gzmap, wmGizmo *gz)
bool wm_gizmo_select_and_highlight(bContext *C, wmGizmoMap *gzmap, wmGizmo *gz)
Definition wm_gizmo.cc:410
wmGizmoGroup * wm_gizmogroup_find_by_type(const wmGizmoMap *gzmap, const wmGizmoGroupType *gzgt)
@ TWEAK_MODAL_PRECISION_ON
@ TWEAK_MODAL_SNAP_ON
@ TWEAK_MODAL_PRECISION_OFF
@ TWEAK_MODAL_CONFIRM
@ TWEAK_MODAL_SNAP_OFF
@ TWEAK_MODAL_CANCEL
void wm_gizmogroup_intersectable_gizmos_to_list(wmWindowManager *wm, const wmGizmoGroup *gzgroup, int event_modifier, blender::Vector< wmGizmo *, 128 > *r_visible_gizmos)
void wm_gizmomap_select_array_clear(wmGizmoMap *gzmap)
bool wm_gizmogroup_is_visible_in_drawstep(const wmGizmoGroup *gzgroup, eWM_GizmoFlagMapDrawStep drawstep)
void wm_gizmomap_select_array_push_back(wmGizmoMap *gzmap, wmGizmo *gz)
void wm_gizmomap_select_array_shrink(wmGizmoMap *gzmap, int len_subtract)
bool wm_gizmomap_deselect_all(wmGizmoMap *gzmap)
void wm_gizmo_update(wmGizmo *gz, const bContext *C, bool refresh_map)
Definition wm_gizmo.cc:493
void wm_gizmo_calculate_scale(wmGizmo *gz, const bContext *C)
Definition wm_gizmo.cc:454
int wm_gizmo_is_visible(wmGizmo *gz)
Definition wm_gizmo.cc:501
void wm_gizmogroup_free(bContext *C, wmGizmoGroup *gzgroup)