Blender
V3.3
|
#include <stdlib.h>
#include <string.h>
#include "MEM_guardedalloc.h"
#include "BLI_buffer.h"
#include "BLI_listbase.h"
#include "BLI_rect.h"
#include "BLI_string.h"
#include "BKE_context.h"
#include "BKE_main.h"
#include "BKE_report.h"
#include "BKE_workspace.h"
#include "RNA_access.h"
#include "RNA_define.h"
#include "WM_api.h"
#include "WM_types.h"
#include "wm_event_system.h"
#include "ED_screen.h"
#include "ED_undo.h"
#include "wm_gizmo_intern.h"
#include "wm_gizmo_wmapi.h"
Go to the source code of this file.
Classes | |
struct | GizmoTweakData |
Gizmo Operators | |
Basic operators for gizmo interaction with user configurable keymaps. | |
typedef struct GizmoTweakData | GizmoTweakData |
static int | gizmo_select_invoke (bContext *C, wmOperator *op, const wmEvent *UNUSED(event)) |
void | GIZMOGROUP_OT_gizmo_select (wmOperatorType *ot) |
static bool | gizmo_tweak_start (bContext *C, wmGizmoMap *gzmap, wmGizmo *gz, const wmEvent *event) |
static bool | gizmo_tweak_start_and_finish (bContext *C, wmGizmoMap *gzmap, wmGizmo *gz, const wmEvent *event, bool *r_is_modal) |
static void | gizmo_tweak_finish (bContext *C, wmOperator *op, const bool cancel, bool clear_modal) |
static int | gizmo_tweak_modal (bContext *C, wmOperator *op, const wmEvent *event) |
static int | gizmo_tweak_invoke (bContext *C, wmOperator *op, const wmEvent *event) |
void | GIZMOGROUP_OT_gizmo_tweak (wmOperatorType *ot) |
wmKeyMap * | wm_gizmogroup_tweak_modal_keymap (wmKeyConfig *keyconf) |
typedef struct GizmoTweakData GizmoTweakData |
|
static |
Definition at line 327 of file wm_gizmo_group.c.
References BLI_assert, BLI_assert_unreachable, C, CTX_wm_region(), ED_region_tag_redraw_editor_overlays(), ARegion::gizmo_map, wmGizmoMap::gzmap_context, wmGizmoMap::highlight, wmGizmoMapSelectState::items, wmGizmoMapSelectState::len, NULL, OPERATOR_CANCELLED, OPERATOR_FINISHED, OPERATOR_PASS_THROUGH, wmOperator::ptr, RNA_boolean_get(), wmGizmoMap::select, wmGizmo::state, UNUSED_VARS_NDEBUG, wm_gizmo_select_and_highlight(), WM_gizmo_select_set(), WM_GIZMO_STATE_SELECT, and wm_gizmomap_deselect_all().
Referenced by GIZMOGROUP_OT_gizmo_select().
|
static |
Definition at line 451 of file wm_gizmo_group.c.
References BLI_findindex(), C, wmOperator::customdata, wmGizmoType::exit, wmGizmoGroup::gizmos, wmGizmoMap::groups, GizmoTweakData::gz_modal, GizmoTweakData::gzgroup, GizmoTweakData::gzmap, MEM_freeN, NULL, wmGizmo::type, and wm_gizmomap_modal_set().
Referenced by gizmo_tweak_modal().
|
static |
Definition at line 551 of file wm_gizmo_group.c.
References BLI_assert_unreachable, C, CTX_wm_region(), CTX_wm_window(), wmOperator::customdata, wmGizmo::drag_part, GizmoTweakData::flag, ARegion::gizmo_map, gizmo_tweak_start(), gizmo_tweak_start_and_finish(), GizmoTweakData::gz_modal, GizmoTweakData::gzgroup, GizmoTweakData::gzmap, wmGizmoMap::gzmap_context, wmGizmoMap::highlight, wmGizmo::highlight_part, GizmoTweakData::init_event, MEM_mallocN, NULL, OPERATOR_CANCELLED, OPERATOR_FINISHED, OPERATOR_PASS_THROUGH, OPERATOR_RUNNING_MODAL, wmGizmo::parent_gzgroup, wmEvent::type, WM_event_add_modal_handler(), WM_event_is_mouse_drag(), WM_tooltip_clear(), and WM_userdef_event_type_from_keymap_type().
Referenced by GIZMOGROUP_OT_gizmo_tweak().
|
static |
Definition at line 467 of file wm_gizmo_group.c.
References BLI_assert, BLI_assert_unreachable, C, wmGizmo::custom_modal, wmOperator::customdata, EVT_GIZMO_UPDATE, EVT_MODAL_MAP, GizmoTweakData::flag, gizmo_tweak_finish(), GizmoTweakData::gz_modal, GizmoTweakData::init_event, KM_RELEASE, wmGizmoType::modal, NULL, OPERATOR_CANCELLED, OPERATOR_FINISHED, OPERATOR_PASS_THROUGH, OPERATOR_RUNNING_MODAL, wmEvent::prev_type, wmEvent::prev_val, TWEAK_MODAL_CANCEL, TWEAK_MODAL_CONFIRM, TWEAK_MODAL_PRECISION_OFF, TWEAK_MODAL_PRECISION_ON, TWEAK_MODAL_SNAP_OFF, TWEAK_MODAL_SNAP_ON, wmGizmo::type, wmEvent::type, wmEvent::val, WM_GIZMO_TWEAK_PRECISE, and WM_GIZMO_TWEAK_SNAP.
Referenced by GIZMOGROUP_OT_gizmo_tweak().
|
static |
Definition at line 399 of file wm_gizmo_group.c.
References C, wmGizmo::state, WM_GIZMO_STATE_MODAL, and wm_gizmomap_modal_set().
Referenced by gizmo_tweak_invoke().
|
static |
Definition at line 407 of file wm_gizmo_group.c.
References C, CTX_wm_manager(), PointerRNA::data, ED_undo_pop_op(), wmGizmo::highlight_part, IDP_MergeGroup(), wmGizmoGroupType::invoke_prepare, wmGizmoOpElem::is_redo, wmOperatorType::modal, wmGizmo::parent_gzgroup, wmOperator::properties, wmGizmoOpElem::ptr, wmGizmoOpElem::type, wmGizmoGroup::type, WM_gizmo_operator_get(), WM_gizmo_operator_invoke(), wm_gizmomap_modal_set(), WM_operator_free_all_after(), and WM_operator_last_redo().
Referenced by gizmo_tweak_invoke().
void GIZMOGROUP_OT_gizmo_select | ( | wmOperatorType * | ot | ) |
Definition at line 374 of file wm_gizmo_group.c.
References wmOperatorType::description, wmOperatorType::flag, gizmo_select_invoke(), wmOperatorType::idname, wmOperatorType::invoke, wmOperatorType::name, OPTYPE_UNDO, ot, and WM_operator_properties_mouse_select().
Referenced by wm_operatortypes_register().
void GIZMOGROUP_OT_gizmo_tweak | ( | wmOperatorType * | ot | ) |
Definition at line 599 of file wm_gizmo_group.c.
References wmOperatorType::description, wmOperatorType::flag, gizmo_tweak_invoke(), gizmo_tweak_modal(), wmOperatorType::idname, wmOperatorType::invoke, wmOperatorType::modal, wmOperatorType::name, OPTYPE_UNDO, and ot.
Referenced by wm_operatortypes_register().
Definition at line 139 of file wm_gizmo_group.c.
References wmGizmo::f, and wmGizmo::temp.
Definition at line 152 of file wm_gizmo_group.c.
References wmGizmo::f, and wmGizmo::temp.
Referenced by gizmo_mesh_extrude_draw_prepare(), and WIDGETGROUP_xform_shear_draw_prepare().
void WM_gizmo_group_refresh | ( | const bContext * | C, |
wmGizmoGroup * | gzgroup | ||
) |
Definition at line 1228 of file wm_gizmo_group.c.
References wmGizmoGroup::any, BLI_assert, BLI_rcti_isect_pt_v(), C, CTX_wm_region(), CTX_wm_window(), wmGizmoGroup::delay_refresh_for_tweak, wmWindow::event_queue_check_drag, wmWindow::eventstate, wmGizmoGroupType::flag, ARegion::gizmo_map, wmGizmoGroup::hide, wmGizmoGroup::init_flag, NULL, wmGizmo::parent_gzgroup, wmGizmoGroup::parent_gzmap, wmEvent::prev_press_xy, wmGizmoGroupType::refresh, wmGizmoGroup::type, ARegion::winrct, WM_GIZMOGROUP_INIT_REFRESH, WM_GIZMOGROUPTYPE_DELAY_REFRESH_FOR_TWEAK, WM_gizmomap_drawstep_from_gizmo_group(), wm_gizmomap_highlight_get(), and WM_gizmomap_tag_refresh_drawstep().
Referenced by WM_gizmogroup_ensure_init(), and wm_gizmomap_highlight_find().
void WM_gizmo_group_remove_by_tool | ( | bContext * | C, |
Main * | bmain, | ||
const wmGizmoGroupType * | gzgt, | ||
const bToolRef * | tref | ||
) |
Definition at line 265 of file wm_gizmo_group.c.
References blender::compositor::area(), BLI_assert, C, ED_region_tag_redraw_editor_overlays(), ListBase::first, wmGizmoMap::groups, wmGizmoGroupType::gzmap_params, LISTBASE_FOREACH, wmGizmoGroup::next, wmGizmoGroup::parent_gzmap, Main::screens, wmGizmoMap::type, wmGizmoGroup::type, wm_gizmogroup_free(), and WM_gizmomaptype_find().
Referenced by toolsystem_unlink_ref().
void WM_gizmo_group_tag_remove | ( | wmGizmoGroup * | gzgroup | ) |
Definition at line 122 of file wm_gizmo_group.c.
References BLI_assert, wmGizmoGroup::parent_gzmap, wmGizmoGroup::tag_remove, wmGizmoGroup::type, wmGizmoGroupType::users, and WM_gizmoconfig_update_tag_group_remove().
Referenced by WM_gizmo_group_unlink_delayed_ptr_from_space(), and WM_gizmomaptype_group_init_runtime_with_region().
void WM_gizmo_group_type_add | ( | const char * | idname | ) |
Definition at line 1104 of file wm_gizmo_group.c.
References BLI_assert, NULL, WM_gizmo_group_type_add_ptr(), and WM_gizmogrouptype_find().
void WM_gizmo_group_type_add_ptr | ( | wmGizmoGroupType * | gzgt | ) |
Definition at line 1099 of file wm_gizmo_group.c.
References wmGizmoGroupType::gzmap_params, WM_gizmo_group_type_add_ptr_ex(), and WM_gizmomaptype_ensure().
Referenced by WM_gizmo_group_type_add().
void WM_gizmo_group_type_add_ptr_ex | ( | wmGizmoGroupType * | gzgt, |
wmGizmoMapType * | gzmap_type | ||
) |
Definition at line 1093 of file wm_gizmo_group.c.
References WM_gizmoconfig_update_tag_group_type_init(), and WM_gizmomaptype_group_link_ptr().
Referenced by WM_gizmo_group_type_add_ptr(), WM_gizmo_group_type_ensure_ptr_ex(), and WM_gizmo_group_type_reinit_ptr_ex().
bool WM_gizmo_group_type_ensure | ( | const char * | idname | ) |
Definition at line 1125 of file wm_gizmo_group.c.
References BLI_assert, NULL, WM_gizmo_group_type_ensure_ptr(), and WM_gizmogrouptype_find().
Referenced by mesh_bisect_modal(), and view3d_interactive_add_invoke().
bool WM_gizmo_group_type_ensure_ptr | ( | wmGizmoGroupType * | gzgt | ) |
Definition at line 1120 of file wm_gizmo_group.c.
References wmGizmoGroupType::gzmap_params, WM_gizmo_group_type_ensure_ptr_ex(), and WM_gizmomaptype_ensure().
Referenced by add_primitive_cube_gizmo_invoke(), edbm_spin_invoke(), toolsystem_ref_link(), and WM_gizmo_group_type_ensure().
bool WM_gizmo_group_type_ensure_ptr_ex | ( | wmGizmoGroupType * | gzgt, |
wmGizmoMapType * | gzmap_type | ||
) |
Definition at line 1111 of file wm_gizmo_group.c.
References NULL, WM_gizmo_group_type_add_ptr_ex(), and WM_gizmomaptype_group_find_ptr().
Referenced by WM_gizmo_group_type_ensure_ptr(), and wm_handler_operator_call().
bool WM_gizmo_group_type_poll | ( | const bContext * | C, |
const wmGizmoGroupType * | gzgt | ||
) |
Definition at line 1214 of file wm_gizmo_group.c.
References BKE_workspace_owner_id_check(), C, CTX_wm_workspace(), wmGizmoGroupType::owner_id, and wmGizmoGroupType::poll.
Referenced by gizmomap_prepare_drawing(), WM_gizmomap_gizmo_hash_new(), wm_gizmomap_highlight_find(), WM_gizmomap_message_subscribe(), and wm_region_test_gizmo_do_draw().
Definition at line 1165 of file wm_gizmo_group.c.
References BLI_assert, NULL, WM_gizmo_group_type_reinit_ptr(), and WM_gizmogrouptype_find().
void WM_gizmo_group_type_reinit_ptr | ( | struct Main * | bmain, |
wmGizmoGroupType * | gzgt | ||
) |
Definition at line 1160 of file wm_gizmo_group.c.
References wmGizmoGroupType::gzmap_params, WM_gizmo_group_type_reinit_ptr_ex(), and WM_gizmomaptype_ensure().
Referenced by add_primitive_cube_gizmo_invoke(), edbm_spin_invoke(), and WM_gizmo_group_type_reinit().
void WM_gizmo_group_type_reinit_ptr_ex | ( | struct Main * | bmain, |
struct wmGizmoGroupType * | gzgt, | ||
struct wmGizmoMapType * | gzmap_type | ||
) |
Has the result of unlinking and linking (re-initializes gizmo's).
Definition at line 1150 of file wm_gizmo_group.c.
References BLI_assert, NULL, UNUSED_VARS_NDEBUG, WM_gizmo_group_type_add_ptr_ex(), WM_gizmomaptype_group_find_ptr(), and WM_gizmomaptype_group_unlink().
Referenced by WM_gizmo_group_type_reinit_ptr().
Definition at line 1143 of file wm_gizmo_group.c.
References BLI_assert, NULL, WM_gizmo_group_type_remove_ptr(), and WM_gizmogrouptype_find().
void WM_gizmo_group_type_remove_ptr | ( | struct Main * | bmain, |
wmGizmoGroupType * | gzgt | ||
) |
Definition at line 1138 of file wm_gizmo_group.c.
References wmGizmoGroupType::gzmap_params, WM_gizmo_group_type_remove_ptr_ex(), and WM_gizmomaptype_ensure().
Referenced by WM_gizmo_group_type_remove().
void WM_gizmo_group_type_remove_ptr_ex | ( | struct Main * | bmain, |
struct wmGizmoGroupType * | gzgt, | ||
struct wmGizmoMapType * | gzmap_type | ||
) |
Call WM_gizmo_group_type_free_ptr after to remove & free.
Definition at line 1132 of file wm_gizmo_group.c.
References NULL, and WM_gizmomaptype_group_unlink().
Referenced by WM_gizmo_group_type_remove_ptr().
void WM_gizmo_group_type_unlink_delayed | ( | const char * | idname | ) |
Definition at line 1185 of file wm_gizmo_group.c.
References BLI_assert, NULL, WM_gizmo_group_type_unlink_delayed_ptr(), and WM_gizmogrouptype_find().
void WM_gizmo_group_type_unlink_delayed_ptr | ( | wmGizmoGroupType * | gzgt | ) |
Definition at line 1179 of file wm_gizmo_group.c.
References wmGizmoGroupType::gzmap_params, WM_gizmo_group_type_unlink_delayed_ptr_ex(), and WM_gizmomaptype_ensure().
Referenced by ED_gizmo_poll_or_unlink_delayed_from_operator(), ED_gizmo_poll_or_unlink_delayed_from_tool_ex(), and WM_gizmo_group_type_unlink_delayed().
void WM_gizmo_group_type_unlink_delayed_ptr_ex | ( | wmGizmoGroupType * | gzgt, |
wmGizmoMapType * | gzmap_type | ||
) |
Definition at line 1174 of file wm_gizmo_group.c.
References WM_gizmoconfig_update_tag_group_type_remove().
Referenced by WM_gizmo_group_type_unlink_delayed_ptr().
void WM_gizmo_group_unlink_delayed_ptr_from_space | ( | wmGizmoGroupType * | gzgt, |
wmGizmoMapType * | gzmap_type, | ||
ScrArea * | area | ||
) |
Definition at line 1192 of file wm_gizmo_group.c.
References blender::compositor::area(), wmGizmoMap::groups, LISTBASE_FOREACH, wmGizmoMap::type, and WM_gizmo_group_tag_remove().
Referenced by ED_gizmo_poll_or_unlink_delayed_from_tool_ex().
struct wmKeyMap* WM_gizmo_keymap_generic | ( | wmWindowManager * | wm | ) |
Definition at line 868 of file wm_gizmo_group.c.
References wmWindowManager::defaultconf, and WM_gizmo_keymap_generic_with_keyconfig().
struct wmKeyMap* WM_gizmo_keymap_generic_click_drag | ( | wmWindowManager * | wm | ) |
Definition at line 898 of file wm_gizmo_group.c.
References wmWindowManager::defaultconf, and WM_gizmo_keymap_generic_click_drag_with_keyconfig().
Referenced by WIDGETGROUP_navigate_setup().
struct wmKeyMap* WM_gizmo_keymap_generic_click_drag_with_keyconfig | ( | wmKeyConfig * | kc | ) |
Definition at line 893 of file wm_gizmo_group.c.
References wmKeyMap::idname, RGN_TYPE_WINDOW, SPACE_EMPTY, and WM_keymap_ensure().
Referenced by WM_gizmo_keymap_generic_click_drag().
struct wmKeyMap* WM_gizmo_keymap_generic_drag | ( | wmWindowManager * | wm | ) |
Definition at line 888 of file wm_gizmo_group.c.
References wmWindowManager::defaultconf, and WM_gizmo_keymap_generic_drag_with_keyconfig().
struct wmKeyMap* WM_gizmo_keymap_generic_drag_with_keyconfig | ( | wmKeyConfig * | kc | ) |
Definition at line 883 of file wm_gizmo_group.c.
References wmKeyMap::idname, RGN_TYPE_WINDOW, SPACE_EMPTY, and WM_keymap_ensure().
Referenced by WM_gizmo_keymap_generic_drag(), and WM_gizmogroup_setup_keymap_generic_drag().
struct wmKeyMap* WM_gizmo_keymap_generic_maybe_drag | ( | wmWindowManager * | wm | ) |
Definition at line 908 of file wm_gizmo_group.c.
References wmWindowManager::defaultconf, and WM_gizmo_keymap_generic_maybe_drag_with_keyconfig().
struct wmKeyMap* WM_gizmo_keymap_generic_maybe_drag_with_keyconfig | ( | struct wmKeyConfig * | kc | ) |
Drag or press depending on preference.
Definition at line 903 of file wm_gizmo_group.c.
References wmKeyMap::idname, RGN_TYPE_WINDOW, SPACE_EMPTY, and WM_keymap_ensure().
Referenced by WM_gizmo_keymap_generic_maybe_drag(), and WM_gizmogroup_setup_keymap_generic_maybe_drag().
struct wmKeyMap* WM_gizmo_keymap_generic_select | ( | wmWindowManager * | wm | ) |
Definition at line 878 of file wm_gizmo_group.c.
References wmWindowManager::defaultconf, and WM_gizmo_keymap_generic_select_with_keyconfig().
struct wmKeyMap* WM_gizmo_keymap_generic_select_with_keyconfig | ( | wmKeyConfig * | kc | ) |
Definition at line 873 of file wm_gizmo_group.c.
References wmKeyMap::idname, RGN_TYPE_WINDOW, SPACE_EMPTY, and WM_keymap_ensure().
Referenced by WM_gizmo_keymap_generic_select().
struct wmKeyMap* WM_gizmo_keymap_generic_with_keyconfig | ( | wmKeyConfig * | kc | ) |
Definition at line 863 of file wm_gizmo_group.c.
References wmKeyMap::idname, RGN_TYPE_WINDOW, SPACE_EMPTY, and WM_keymap_ensure().
Referenced by WM_gizmo_keymap_generic(), and WM_gizmogroup_setup_keymap_generic().
|
static |
Definition at line 165 of file wm_gizmo_group.c.
References wmGizmo::keymap, wmGizmoGroupType::keymap, wmGizmoGroup::type, WM_keymap_active(), and WM_keymap_uses_event_modifier().
Referenced by wm_gizmogroup_find_intersected_gizmo(), and wm_gizmogroup_intersectable_gizmos_to_list().
void WM_gizmogroup_ensure_init | ( | const bContext * | C, |
wmGizmoGroup * | gzgroup | ||
) |
Definition at line 238 of file wm_gizmo_group.c.
References BLI_assert, C, CTX_wm_manager(), wmWindowManager::defaultconf, wmGizmoGroup::init_flag, wmGizmoGroupType::keymap, NULL, wmGizmoGroupType::setup, wmGizmoGroup::type, UNLIKELY, WM_gizmo_group_refresh(), WM_GIZMOGROUP_INIT_REFRESH, WM_GIZMOGROUP_INIT_SETUP, and wm_gizmogrouptype_setup_keymap().
Referenced by gizmomap_prepare_drawing(), and wm_handler_operator_call().
wmGizmoGroup* wm_gizmogroup_find_by_type | ( | const wmGizmoMap * | gzmap, |
const wmGizmoGroupType * | gzgt | ||
) |
Definition at line 65 of file wm_gizmo_group.c.
References BLI_findptr(), wmGizmoMap::groups, and type.
wmGizmo* wm_gizmogroup_find_intersected_gizmo | ( | wmWindowManager * | wm, |
const wmGizmoGroup * | gzgroup, | ||
bContext * | C, | ||
const int | event_modifier, | ||
const int | mval[2], | ||
int * | r_part | ||
) |
Definition at line 189 of file wm_gizmo_group.c.
References C, wmGizmoGroup::gizmos, LISTBASE_FOREACH, NULL, WM_GIZMO_HIDDEN, WM_GIZMO_HIDDEN_SELECT, and wm_gizmo_keymap_uses_event_modifier().
Referenced by wm_gizmomap_highlight_find().
void wm_gizmogroup_free | ( | bContext * | C, |
wmGizmoGroup * | gzgroup | ||
) |
Definition at line 70 of file wm_gizmo_group.c.
References BKE_reports_clear(), BLI_listbase_clear(), BLI_remlink(), BPY_DECREF_RNA_INVALIDATE(), C, wmGizmoGroup::customdata, wmGizmoGroup::customdata_free, ListBase::first, ReportList::flag, wmGizmoGroup::gizmos, wmGizmoMap::groups, wmGizmoMap::gzmap_context, wmGizmoMap::highlight, wmGizmoMapSelectState::len, MEM_freeN, MEM_SAFE_FREE, wmGizmoMap::modal, NULL, wmGizmo::parent_gzgroup, wmGizmoGroup::parent_gzmap, wmGizmoGroup::py_instance, wmGizmoGroup::reports, RPT_FREE, wmGizmoMap::select, wmGizmoGroup::tag_remove, wmGizmoGroup::type, wmGizmoGroupType::users, WM_gizmo_free(), WM_gizmo_select_unlink(), wm_gizmomap_highlight_set(), and wm_gizmomap_modal_set().
Referenced by WM_gizmo_group_remove_by_tool(), WM_gizmoconfig_update(), wm_gizmomap_free_data(), and WM_gizmomaptype_group_unlink().
void wm_gizmogroup_gizmo_register | ( | struct wmGizmoGroup * | gzgroup, |
struct wmGizmo * | gz | ||
) |
Add gizmo to gzgroup and make sure its name is unique within the group.
Definition at line 132 of file wm_gizmo_group.c.
References BLI_addtail(), BLI_assert, BLI_findindex(), wmGizmoGroup::gizmos, and wmGizmo::parent_gzgroup.
Referenced by wm_gizmo_register().
void wm_gizmogroup_intersectable_gizmos_to_list | ( | wmWindowManager * | wm, |
const wmGizmoGroup * | gzgroup, | ||
const int | event_modifier, | ||
BLI_Buffer * | visible_gizmos | ||
) |
Definition at line 215 of file wm_gizmo_group.c.
References BLI_buffer_append, wmGizmoGroupType::flag, wmGizmoGroup::gizmos, ListBase::last, 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().
bool wm_gizmogroup_is_any_selected | ( | const wmGizmoGroup * | gzgroup | ) |
Definition at line 307 of file wm_gizmo_group.c.
References wmGizmoGroupType::flag, wmGizmoGroup::gizmos, LISTBASE_FOREACH, wmGizmoGroup::type, WM_GIZMO_STATE_SELECT, and WM_GIZMOGROUPTYPE_SELECT.
Referenced by wm_handlers_do_gizmo_handler().
bool wm_gizmogroup_is_visible_in_drawstep | ( | const wmGizmoGroup * | gzgroup, |
const eWM_GizmoFlagMapDrawStep | drawstep | ||
) |
Definition at line 293 of file wm_gizmo_group.c.
References BLI_assert_unreachable, wmGizmoGroupType::flag, wmGizmoGroup::type, WM_GIZMOGROUPTYPE_3D, WM_GIZMOMAP_DRAWSTEP_2D, and WM_GIZMOMAP_DRAWSTEP_3D.
Referenced by gizmomap_prepare_drawing().
|
static |
Variation of #WM_gizmogroup_keymap_common but with keymap items for selection
TODO(@campbellbarton): move to Python.
name | Typically wmGizmoGroupType.name |
params | Typically wmGizmoGroupType.gzmap_params |
Definition at line 779 of file wm_gizmo_group.c.
References BLI_listbase_is_empty(), wmKeyMap::items, KM_ANY, KM_CLICK_DRAG, KM_PRESS, KM_SHIFT, LEFTMOUSE, params, wmKeyMapItem::ptr, RIGHTMOUSE, RNA_boolean_set(), USER_LMOUSESELECT, WM_keymap_add_item(), and WM_keymap_ensure().
Referenced by WM_gizmogroup_setup_keymap_generic_select().
wmGizmoGroup* wm_gizmogroup_new_from_type | ( | struct wmGizmoMap * | gzmap, |
struct wmGizmoGroupType * | gzgt | ||
) |
Create a new gizmo-group from gzgt.
Definition at line 50 of file wm_gizmo_group.c.
References BLI_addtail(), wmGizmoMap::groups, MEM_callocN, wmGizmoGroup::parent_gzmap, wmGizmoGroup::type, and wmGizmoGroupType::users.
Referenced by wm_gizmomap_new_from_type_ex(), and WM_gizmomaptype_group_init_runtime_with_region().
wmKeyMap* WM_gizmogroup_setup_keymap_generic | ( | const wmGizmoGroupType * | UNUSEDgzgt, |
wmKeyConfig * | kc | ||
) |
Definition at line 754 of file wm_gizmo_group.c.
References WM_gizmo_keymap_generic_with_keyconfig().
Referenced by wm_gizmogrouptype_append__end().
wmKeyMap* WM_gizmogroup_setup_keymap_generic_drag | ( | const wmGizmoGroupType * | UNUSEDgzgt, |
wmKeyConfig * | kc | ||
) |
Definition at line 759 of file wm_gizmo_group.c.
References WM_gizmo_keymap_generic_drag_with_keyconfig().
wmKeyMap* WM_gizmogroup_setup_keymap_generic_maybe_drag | ( | const wmGizmoGroupType * | UNUSEDgzgt, |
wmKeyConfig * | kc | ||
) |
Definition at line 765 of file wm_gizmo_group.c.
References WM_gizmo_keymap_generic_maybe_drag_with_keyconfig().
Referenced by ED_widgetgroup_gizmo2d_resize_callbacks_set(), ED_widgetgroup_gizmo2d_rotate_callbacks_set(), ED_widgetgroup_gizmo2d_xform_callbacks_set(), blender::ed::space_node::NODE_GGT_backdrop_corner_pin(), blender::ed::space_node::NODE_GGT_backdrop_crop(), blender::ed::space_node::NODE_GGT_backdrop_sun_beams(), blender::ed::space_node::NODE_GGT_backdrop_transform(), VIEW3D_GGT_armature_spline(), VIEW3D_GGT_camera(), VIEW3D_GGT_empty_image(), VIEW3D_GGT_force_field(), VIEW3D_GGT_light_area(), VIEW3D_GGT_light_spot(), VIEW3D_GGT_light_target(), VIEW3D_GGT_xform_cage(), VIEW3D_GGT_xform_extrude(), VIEW3D_GGT_xform_gizmo(), VIEW3D_GGT_xform_gizmo_context(), and VIEW3D_GGT_xform_shear().
wmKeyMap* WM_gizmogroup_setup_keymap_generic_select | ( | const wmGizmoGroupType * | UNUSEDgzgt, |
wmKeyConfig * | kc | ||
) |
Definition at line 845 of file wm_gizmo_group.c.
References params, RGN_TYPE_WINDOW, SPACE_EMPTY, and WM_gizmogroup_keymap_template_select_ex().
Referenced by wm_gizmogrouptype_append__end().
wmKeyMap* wm_gizmogroup_tweak_modal_keymap | ( | wmKeyConfig * | keyconf | ) |
Definition at line 617 of file wm_gizmo_group.c.
References EVT_ESCKEY, EVT_LEFTCTRLKEY, EVT_LEFTSHIFTKEY, EVT_PADENTER, EVT_RETKEY, EVT_RIGHTCTRLKEY, EVT_RIGHTSHIFTKEY, KM_ANY, KM_PRESS, KM_RELEASE, KMAP_MAX_NAME, wmKeyMap::modal_items, NULL, RIGHTMOUSE, STRNCPY, TWEAK_MODAL_CANCEL, TWEAK_MODAL_CONFIRM, TWEAK_MODAL_PRECISION_OFF, TWEAK_MODAL_PRECISION_ON, TWEAK_MODAL_SNAP_OFF, TWEAK_MODAL_SNAP_ON, WM_modalkeymap_add_item(), WM_modalkeymap_assign(), WM_modalkeymap_ensure(), and WM_modalkeymap_find().
Referenced by wm_gizmos_keymap().
void wm_gizmogrouptype_setup_keymap | ( | wmGizmoGroupType * | gzgt, |
wmKeyConfig * | keyconf | ||
) |
Definition at line 1066 of file wm_gizmo_group.c.
References wmGizmoGroupType::keyconf, wmGizmoGroupType::keymap, wmGizmoGroupType::setup_keymap, wmGizmoGroupType::type_update_flag, and WM_GIZMOMAPTYPE_KEYMAP_INIT.
Referenced by WM_gizmogroup_ensure_init(), WM_gizmomaptype_group_init_runtime_keymap(), and wm_gizmos_keymap().
struct wmGizmoGroupTypeRef* WM_gizmomaptype_group_find | ( | struct wmGizmoMapType * | gzmap_type, |
const char * | idname | ||
) |
Definition at line 931 of file wm_gizmo_group.c.
References wmGizmoMapType::grouptype_refs, LISTBASE_FOREACH, NULL, and STREQ.
struct wmGizmoGroupTypeRef* WM_gizmomaptype_group_find_ptr | ( | struct wmGizmoMapType * | gzmap_type, |
const wmGizmoGroupType * | gzgt | ||
) |
Definition at line 919 of file wm_gizmo_group.c.
References wmGizmoMapType::grouptype_refs, LISTBASE_FOREACH, and NULL.
Referenced by WM_gizmo_group_type_ensure_ptr_ex(), WM_gizmo_group_type_reinit_ptr_ex(), and WM_gizmomaptype_group_unlink().
void WM_gizmomaptype_group_free | ( | struct wmGizmoGroupTypeRef * | gzgt | ) |
Unlike WM_gizmomaptype_group_unlink this doesn't maintain correct state, simply free.
Definition at line 1016 of file wm_gizmo_group.c.
References MEM_freeN.
Referenced by WM_gizmomaptype_group_unlink(), and wm_gizmomaptypes_free().
void WM_gizmomaptype_group_init_runtime | ( | const Main * | bmain, |
wmGizmoMapType * | gzmap_type, | ||
wmGizmoGroupType * | gzgt | ||
) |
Definition at line 965 of file wm_gizmo_group.c.
References blender::compositor::area(), ListBase::first, wmGizmoGroupType::flag, LISTBASE_FOREACH, Main::screens, wmGizmoMap::type, WM_GIZMOGROUPTYPE_TOOL_INIT, and WM_gizmomaptype_group_init_runtime_with_region().
Referenced by WM_gizmoconfig_update().
void WM_gizmomaptype_group_init_runtime_keymap | ( | const Main * | bmain, |
wmGizmoGroupType * | gzgt | ||
) |
Definition at line 959 of file wm_gizmo_group.c.
References ListBase::first, Main::wm, and wm_gizmogrouptype_setup_keymap().
Referenced by WM_gizmoconfig_update().
wmGizmoGroup* WM_gizmomaptype_group_init_runtime_with_region | ( | wmGizmoMapType * | gzmap_type, |
wmGizmoGroupType * | gzgt, | ||
ARegion * | region | ||
) |
Definition at line 990 of file wm_gizmo_group.c.
References BLI_assert, ED_region_tag_redraw_editor_overlays(), ARegion::gizmo_map, wmGizmoMap::groups, LISTBASE_FOREACH, NULL, wmGizmoMap::type, UNUSED_VARS_NDEBUG, WM_gizmo_group_tag_remove(), wm_gizmogroup_new_from_type(), and wm_gizmomap_highlight_set().
Referenced by WM_gizmomaptype_group_init_runtime(), and wm_handler_operator_call().
wmGizmoGroupTypeRef* WM_gizmomaptype_group_link | ( | struct wmGizmoMapType * | gzmap_type, |
const char * | idname | ||
) |
Use this for registering gizmos on startup. For runtime, use #WM_gizmomaptype_group_link_runtime.
Definition at line 943 of file wm_gizmo_group.c.
References BLI_assert, NULL, WM_gizmogrouptype_find(), and WM_gizmomaptype_group_link_ptr().
wmGizmoGroupTypeRef* WM_gizmomaptype_group_link_ptr | ( | wmGizmoMapType * | gzmap_type, |
wmGizmoGroupType * | gzgt | ||
) |
Definition at line 950 of file wm_gizmo_group.c.
References BLI_addtail(), wmGizmoMapType::grouptype_refs, MEM_callocN, and wmGizmoGroupTypeRef::type.
Referenced by WM_gizmo_group_type_add_ptr_ex(), WM_gizmogrouptype_append_and_link(), and WM_gizmomaptype_group_link().
void WM_gizmomaptype_group_unlink | ( | bContext * | C, |
Main * | bmain, | ||
wmGizmoMapType * | gzmap_type, | ||
const wmGizmoGroupType * | gzgt | ||
) |
Definition at line 1021 of file wm_gizmo_group.c.
References blender::compositor::area(), BLI_assert, BLI_remlink(), C, ED_region_tag_redraw_editor_overlays(), ListBase::first, wmGizmoMap::groups, wmGizmoMapType::grouptype_refs, wmGizmoGroupType::keyconf, wmGizmoGroupType::keymap, LISTBASE_FOREACH, wmGizmoGroup::next, NULL, wmGizmoGroup::parent_gzmap, Main::screens, wmGizmoMap::type, wmGizmoGroup::type, wm_gizmogroup_free(), WM_gizmomaptype_group_find_ptr(), WM_gizmomaptype_group_free(), and WM_keymap_remove().
Referenced by WM_gizmo_group_type_reinit_ptr_ex(), WM_gizmo_group_type_remove_ptr_ex(), and WM_gizmoconfig_update().