Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2018-10-18 03:26:03 +0300
committerCampbell Barton <ideasman42@gmail.com>2018-10-18 03:50:22 +0300
commit40f679ccb9370a3827a2ac44b8bab40290768548 (patch)
treef40aa48ac46101d51e1e3319388885d069d6e2cc /source/blender/windowmanager/gizmo
parenta2922f98400cbd22e32f6356a21c288003abce0d (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.h3
-rw-r--r--source/blender/windowmanager/gizmo/intern/wm_gizmo_group.c18
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)