1234567891011121314151617181920212223242526272829303132 |
- function setPositionXY(h, x, y, padding, max_height, units)
- % SETPOSITIONXY Set graphical object position by x, y extents
- % Input:
- % h = graphical object handle
- % x, y = 1x2 or 2x1 float, outer extent of the widget
- % padding = 1x2 or 2x1 float, internal padding
- if nargin < 4
- % TODO
- return;
- end
- left = min(x) + padding(1);
- bottom = min(y) + padding(2);
- width = abs(x(1) - x(2)) - padding(1)*2;
- height = abs(y(1) - y(2)) - padding(2)*2;
- set(h, 'Position', [left bottom width height]);
- if nargin >= 6
- % save Units
- old_units = get(h, 'Units');
- % restrict height
- set(h, 'Units', units);
- old_position = get(h, 'Position');
- if old_position(4) > max_height
- new_y = old_position(2) + (old_position(4) - max_height)/2;
- set(h, 'Position', [old_position(1) new_y old_position(3) max_height]);
- end
- % restore Units
- set(h, 'Units', old_units);
- end
|