Set up slidier widths properly.
This commit is contained in:
parent
ff4f8fbd58
commit
ba0cb12c74
|
@ -1,6 +1,26 @@
|
||||||
// 14 august 2015
|
// 14 august 2015
|
||||||
#import "uipriv_darwin.h"
|
#import "uipriv_darwin.h"
|
||||||
|
|
||||||
|
// Horizontal sliders have no intrinsic width; we'll use the default Interface Builder width for them.
|
||||||
|
// This will also be used for the initial frame size, to ensure the slider is always horizontal (see below).
|
||||||
|
#define sliderWidth 92
|
||||||
|
|
||||||
|
@interface libui_intrinsicWidthNSSlider : NSSlider
|
||||||
|
@end
|
||||||
|
|
||||||
|
@implementation libui_intrinsicWidthNSSlider
|
||||||
|
|
||||||
|
- (NSSize)intrinsicContentSize
|
||||||
|
{
|
||||||
|
NSSize s;
|
||||||
|
|
||||||
|
s = [super intrinsicContentSize];
|
||||||
|
s.width = sliderWidth;
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
struct uiSlider {
|
struct uiSlider {
|
||||||
uiDarwinControl c;
|
uiDarwinControl c;
|
||||||
NSSlider *slider;
|
NSSlider *slider;
|
||||||
|
@ -95,8 +115,10 @@ uiSlider *uiNewSlider(intmax_t min, intmax_t max)
|
||||||
|
|
||||||
s = (uiSlider *) uiNewControl(uiSliderType());
|
s = (uiSlider *) uiNewControl(uiSliderType());
|
||||||
|
|
||||||
s->slider = [[NSSlider alloc] initWithFrame:NSZeroRect];
|
// a horizontal slider is defined as one where the width > height, not by a flag
|
||||||
// TODO vertical is defined by wider than tall
|
// to be safe, don't use NSZeroRect, but make it horizontal from the get-go
|
||||||
|
s->slider = [[libui_intrinsicWidthNSSlider alloc]
|
||||||
|
initWithFrame:NSMakeRect(0, 0, sliderWidth, 2)];
|
||||||
[s->slider setMinValue:min];
|
[s->slider setMinValue:min];
|
||||||
[s->slider setMaxValue:max];
|
[s->slider setMaxValue:max];
|
||||||
[s->slider setAllowsTickMarkValuesOnly:NO];
|
[s->slider setAllowsTickMarkValuesOnly:NO];
|
||||||
|
|
Loading…
Reference in New Issue