button: implement uiButtonSetMinSize for macos
This commit is contained in:
parent
ecdf31eb5e
commit
4b2c8b6629
|
@ -1,5 +1,36 @@
|
||||||
// 13 august 2015
|
// 13 august 2015
|
||||||
#import "uipriv_darwin.h"
|
#import "uipriv_darwin.h"
|
||||||
|
#import "../common/general.h"
|
||||||
|
|
||||||
|
@interface libui_NSButton : NSButton
|
||||||
|
@property int minWidth;
|
||||||
|
@property int minHeight;
|
||||||
|
- (id)initWithFrame:(NSRect)frameRect;
|
||||||
|
@end
|
||||||
|
|
||||||
|
@implementation libui_NSButton
|
||||||
|
|
||||||
|
- (id)initWithFrame:(NSRect)frameRect
|
||||||
|
{
|
||||||
|
self = [super initWithFrame: frameRect];
|
||||||
|
if (self) {
|
||||||
|
self.minHeight = -1;
|
||||||
|
self.minWidth = -1;
|
||||||
|
}
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSSize)intrinsicContentSize
|
||||||
|
{
|
||||||
|
NSSize s;
|
||||||
|
|
||||||
|
s = [super intrinsicContentSize];
|
||||||
|
s.width = max(self.minWidth, s.width);
|
||||||
|
s.height = max(self.minHeight, s.height);
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
struct uiButton {
|
struct uiButton {
|
||||||
uiDarwinControl c;
|
uiDarwinControl c;
|
||||||
|
@ -78,6 +109,13 @@ void uiButtonSetText(uiButton *b, const char *text)
|
||||||
[b->button setTitle:uiprivToNSString(text)];
|
[b->button setTitle:uiprivToNSString(text)];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void uiButtonSetMinSize(uiButton *b, int width, int height)
|
||||||
|
{
|
||||||
|
libui_NSButton *libui_btn = (libui_NSButton *)b->button;
|
||||||
|
libui_btn.minWidth = width;
|
||||||
|
libui_btn.minHeight = height;
|
||||||
|
}
|
||||||
|
|
||||||
void uiButtonOnClicked(uiButton *b, void (*f)(uiButton *, void *), void *data)
|
void uiButtonOnClicked(uiButton *b, void (*f)(uiButton *, void *), void *data)
|
||||||
{
|
{
|
||||||
b->onClicked = f;
|
b->onClicked = f;
|
||||||
|
@ -95,7 +133,7 @@ uiButton *uiNewButton(const char *text)
|
||||||
|
|
||||||
uiDarwinNewControl(uiButton, b);
|
uiDarwinNewControl(uiButton, b);
|
||||||
|
|
||||||
b->button = [[NSButton alloc] initWithFrame:NSZeroRect];
|
b->button = [[libui_NSButton alloc] initWithFrame:NSZeroRect];
|
||||||
[b->button setTitle:uiprivToNSString(text)];
|
[b->button setTitle:uiprivToNSString(text)];
|
||||||
[b->button setButtonType:NSMomentaryPushInButton];
|
[b->button setButtonType:NSMomentaryPushInButton];
|
||||||
[b->button setBordered:YES];
|
[b->button setBordered:YES];
|
||||||
|
|
Loading…
Reference in New Issue