38#define GIZMO_MINI_FAC 0.35f
40#define GIZMO_MINI_OFFSET_FAC 0.38f
51struct NavigateGizmoInfo {
57struct NavigateWidgetGroup {
58 wmGizmo *gz_array[GZ_INDEX_TOTAL];
101 "GIZMO_GT_button_2d",
108 switch (space_type) {
125 if (area ==
nullptr) {
161 for (
int i = 0;
i < GZ_INDEX_TOTAL;
i++) {
162 const NavigateGizmoInfo *info = &navigate_params[
i];
163 navgroup->gz_array[
i] =
WM_gizmo_new(info->gizmo, gzgroup,
nullptr);
164 wmGizmo *gz = navgroup->gz_array[
i];
170 int color_tint, color_tint_hi;
171 if (icon_color[0] > 128) {
189 if (info->icon != 0) {
207 int gz_ids[] = {GZ_INDEX_ZOOM};
209 wmGizmo *gz = navgroup->gz_array[gz_ids[
i]];
220 NavigateWidgetGroup *navgroup =
static_cast<NavigateWidgetGroup *
>(gzgroup->
customdata);
225 if ((navgroup->state.rect_visible.xmax == rect_visible->
xmax) &&
226 (navgroup->state.rect_visible.ymax == rect_visible->
ymax))
231 navgroup->state.rect_visible = *rect_visible;
235 const float co[2] = {
236 roundf(rect_visible->
xmax - (icon_offset_mini * 0.75f)),
237 roundf(rect_visible->
ymax - (icon_offset_mini * 0.75f)),
243 gz = navgroup->gz_array[
i];
247 int icon_mini_slot = 0;
249 gz = navgroup->gz_array[GZ_INDEX_ZOOM];
254 gz = navgroup->gz_array[GZ_INDEX_MOVE];
262 gzgt->
name =
"View2D Navigate";
ScrArea * CTX_wm_area(const bContext *C)
ARegion * CTX_wm_region(const bContext *C)
@ SCLIP_GIZMO_HIDE_NAVIGATE
@ SEQ_GIZMO_HIDE_NAVIGATE
@ USER_SHOW_GIZMO_NAVIGATE
@ ED_GIZMO_BUTTON_SHOW_BACKDROP
@ ED_GIZMO_BUTTON_SHOW_OUTLINE
const rcti * ED_region_visible_rect(ARegion *region)
Read Guarded memory(de)allocation.
void UI_GetThemeColorShade3fv(int colorid, int offset, float col[3])
void UI_GetThemeColor3ubv(int colorid, unsigned char col[3])
@ WM_GIZMOGROUPTYPE_SCALE
@ WM_GIZMOGROUPTYPE_DRAW_MODAL_ALL
@ WM_GIZMOGROUPTYPE_PERSISTENT
void * MEM_callocN(size_t len, const char *str)
PropertyRNA * RNA_struct_find_property(PointerRNA *ptr, const char *identifier)
void RNA_boolean_set(PointerRNA *ptr, const char *name, bool value)
void RNA_property_enum_set(PointerRNA *ptr, PropertyRNA *prop, int value)
void RNA_enum_set(PointerRNA *ptr, const char *name, int value)
wmGizmoMapType_Params gzmap_params
eWM_GizmoFlagGroupTypeFlag flag
wmGizmoGroupFnDrawPrepare draw_prepare
static void WIDGETGROUP_navigate_setup(const bContext *, wmGizmoGroup *gzgroup)
static NavigateGizmoInfo g_navigate_params_for_view2d[GZ_INDEX_TOTAL]
static NavigateGizmoInfo g_navigate_params_for_space_clip[GZ_INDEX_TOTAL]
static bool WIDGETGROUP_navigate_poll(const bContext *C, wmGizmoGroupType *)
static NavigateGizmoInfo g_navigate_params_for_space_image[GZ_INDEX_TOTAL]
void VIEW2D_GGT_navigate_impl(wmGizmoGroupType *gzgt, const char *idname)
#define GIZMO_MINI_OFFSET_FAC
static void WIDGETGROUP_navigate_draw_prepare(const bContext *C, wmGizmoGroup *gzgroup)
static NavigateGizmoInfo * navigate_params_from_space_type(short space_type)
wmGizmoOpElem * WM_gizmo_operator_get(wmGizmo *gz, int part_index)
void WM_gizmo_set_flag(wmGizmo *gz, const int flag, const bool enable)
PointerRNA * WM_gizmo_operator_set(wmGizmo *gz, int part_index, wmOperatorType *ot, IDProperty *properties)
wmGizmo * WM_gizmo_new(const StringRef idname, wmGizmoGroup *gzgroup, PointerRNA *properties)
wmOperatorType * WM_operatortype_find(const char *idname, bool quiet)