libui/redo/darwin/label.m

44 lines
965 B
Objective-C

// 14 august 2015
#import "uipriv_darwin.h"
struct uiLabel {
uiDarwinControl c;
NSTextField *textfield;
};
uiDarwinDefineControl(
uiLabel, // type name
uiLabelType, // type function
textfield // handle
)
char *uiLabelText(uiLabel *l)
{
return uiDarwinNSStringToText([l->textfield stringValue]);
}
void uiLabelSetText(uiLabel *l, const char *text)
{
[l->textfield setStringValue:toNSString(text)];
// changing the text might necessitate a change in the label's size
uiDarwinControlTriggerRelayout(uiDarwinControl(l));
}
uiLabel *uiNewLabel(const char *text)
{
uiLabel *l;
l = (uiLabel *) uiNewControl(uiLabelType());
l->textfield = [[NSTextField alloc] initWithFrame:NSZeroRect];
[l->textfield setStringValue:toNSString(text)];
[l->textfield setEditable:NO];
[l->textfield setSelectable:NO];
[l->textfield setDrawsBackground:NO];
finishNewTextField(l->textfield, NO);
uiDarwinFinishNewControl(l, uiLabel);
return l;
}