diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-10-18 03:26:03 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-10-18 03:50:22 +0300 |
commit | 40f679ccb9370a3827a2ac44b8bab40290768548 (patch) | |
tree | f40aa48ac46101d51e1e3319388885d069d6e2cc /source/blender/windowmanager/gizmo | |
parent | a2922f98400cbd22e32f6356a21c288003abce0d (diff) |
Cleanup: move gizmo sort functions into an API
Diffstat (limited to 'source/blender/windowmanager/gizmo')
-rw-r--r-- | source/blender/windowmanager/gizmo/WM_gizmo_api.h | 3 | ||||
-rw-r--r-- | source/blender/windowmanager/gizmo/intern/wm_gizmo_group.c | 18 |
2 files changed, 21 insertions, 0 deletions
diff --git a/source/blender/windowmanager/gizmo/WM_gizmo_api.h b/source/blender/windowmanager/gizmo/WM_gizmo_api.h index 153840986ef..9f05437eaa8 100644 --- a/source/blender/windowmanager/gizmo/WM_gizmo_api.h +++ b/source/blender/windowmanager/gizmo/WM_gizmo_api.h @@ -240,6 +240,9 @@ struct wmKeyMap *WM_gizmogroup_keymap_common( struct wmKeyMap *WM_gizmogroup_keymap_common_select( const struct wmGizmoGroupType *gzgt, struct wmKeyConfig *config); +/* Sort utilities for use with 'BLI_listbase_sort'. */ +int WM_gizmo_cmp_temp_fl(const void *gz_a_ptr, const void *gz_b_ptr); +int WM_gizmo_cmp_temp_fl_reverse(const void *gz_a_ptr, const void *gz_b_ptr); /* -------------------------------------------------------------------- */ /* wmGizmoMap */ diff --git a/source/blender/windowmanager/gizmo/intern/wm_gizmo_group.c b/source/blender/windowmanager/gizmo/intern/wm_gizmo_group.c index 9cc8bacd20b..90a0ff8b651 100644 --- a/source/blender/windowmanager/gizmo/intern/wm_gizmo_group.c +++ b/source/blender/windowmanager/gizmo/intern/wm_gizmo_group.c @@ -147,6 +147,24 @@ void wm_gizmogroup_gizmo_register(wmGizmoGroup *gzgroup, wmGizmo *gz) gz->parent_gzgroup = gzgroup; } +int WM_gizmo_cmp_temp_fl(const void *gz_a_ptr, const void *gz_b_ptr) +{ + const wmGizmo *gz_a = gz_a_ptr; + const wmGizmo *gz_b = gz_b_ptr; + if (gz_a->temp.f < gz_b->temp.f) return -1; + else if (gz_a->temp.f > gz_b->temp.f) return 1; + else return 0; +} + +int WM_gizmo_cmp_temp_fl_reverse(const void *gz_a_ptr, const void *gz_b_ptr) +{ + const wmGizmo *gz_a = gz_a_ptr; + const wmGizmo *gz_b = gz_b_ptr; + if (gz_a->temp.f < gz_b->temp.f) return 1; + else if (gz_a->temp.f > gz_b->temp.f) return -1; + else return 0; +} + wmGizmo *wm_gizmogroup_find_intersected_gizmo( const wmGizmoGroup *gzgroup, bContext *C, const wmEvent *event, int *r_part) |