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-04-26 13:01:44 +0300
committerCampbell Barton <ideasman42@gmail.com>2018-04-26 13:08:58 +0300
commit6a0264896b38794ec8242040cf5104c4e06d844e (patch)
treea50666f77b81a77441291f27d1b1720a3a6efefe /source/blender/editors/space_view3d
parente0c088f8fb5afcb2dd70d7a6c275fd942f6e42a9 (diff)
UI: toolbar single column size snapping
Once a region is set to it's snapped size, zooming keeps the size.
Diffstat (limited to 'source/blender/editors/space_view3d')
-rw-r--r--source/blender/editors/space_view3d/space_view3d.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c
index b4d6d554e4f..4fb4193517b 100644
--- a/source/blender/editors/space_view3d/space_view3d.c
+++ b/source/blender/editors/space_view3d/space_view3d.c
@@ -1277,6 +1277,18 @@ static void view3d_buttons_region_listener(
}
}
+static int view3d_tools_region_snap_size(const ARegion *ar, int size, int axis)
+{
+ if (axis == 0) {
+ /* Note, this depends on the icon size: see #ICON_DEFAULT_HEIGHT_TOOLBAR. */
+ const float snap_units = 3.25f;
+ const float aspect = BLI_rctf_size_x(&ar->v2d.cur) / (BLI_rcti_size_x(&ar->v2d.mask) + 1);
+ const int snap_size = (snap_units * U.widget_unit) / aspect;
+ return snap_size;
+ }
+ return size;
+}
+
/* add handlers, stuff you only do once or on area/region changes */
static void view3d_tools_region_init(wmWindowManager *wm, ARegion *ar)
{
@@ -1474,6 +1486,7 @@ void ED_spacetype_view3d(void)
art->prefsizey = 50; /* XXX */
art->keymapflag = ED_KEYMAP_UI | ED_KEYMAP_FRAMES;
art->listener = view3d_buttons_region_listener;
+ art->snap_size = view3d_tools_region_snap_size;
art->init = view3d_tools_region_init;
art->draw = view3d_tools_region_draw;
BLI_addhead(&st->regiontypes, art);