summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPietro Gagliardi <[email protected]>2015-04-16 13:19:43 -0400
committerPietro Gagliardi <[email protected]>2015-04-16 13:19:43 -0400
commitbb00796956f5ca0f91904b74e27eee523b416306 (patch)
treee2f6a08ecb4de2a8a3087a74a2906de621af322d
parentf3867ee2d4091fde0c1cfcdadf7c10a07ffebff2 (diff)
Migrated darwin/button.m.
-rw-r--r--new/darwin/button.m75
1 files changed, 41 insertions, 34 deletions
diff --git a/new/darwin/button.m b/new/darwin/button.m
index 92e2c76..ac4fb0a 100644
--- a/new/darwin/button.m
+++ b/new/darwin/button.m
@@ -2,8 +2,8 @@
#import "uipriv_darwin.h"
@interface uiNSButton : NSButton
-@property uiControl *uiC;
-@property void (*uiOnClicked)(uiControl *, void *);
+@property uiButton *uiB;
+@property void (*uiOnClicked)(uiButton *, void *);
@property void *uiOnClickedData;
@end
@@ -13,67 +13,74 @@
{
if (uiDarwinControlFreeWhenAppropriate(self.uiC, [self superview])) {
[self setTarget:nil];
- self.uiC = NULL;
+ self.uiB = NULL;
}
[super viewDidMoveToSuperview];
}
- (IBAction)uiButtonClicked:(id)sender
{
- (*(self.uiOnClicked))(self.uiC, self.uiOnClickedData);
+ (*(self.uiOnClicked))(self.uiB, self.uiOnClickedData);
}
@end
-static void defaultOnClicked(uiControl *c, void *data)
+static void defaultOnClicked(uiButton *c, void *data)
{
// do nothing
}
-uiControl *uiNewButton(const char *text)
+static char *buttonText(uiButton *bb)
{
- uiControl *c;
uiNSButton *b;
- c = uiDarwinNewControl([uiNSButton class], NO, NO);
- b = (uiNSButton *) uiControlHandle(c);
- b.uiC = c;
-
- [b setTitle:toNSString(text)];
- [b setButtonType:NSMomentaryPushInButton];
- [b setBordered:YES];
- [b setBezelStyle:NSRoundedBezelStyle];
- setStandardControlFont((NSControl *) b);
-
- [b setTarget:b];
- [b setAction:@selector(uiButtonClicked:)];
-
- b.uiOnClicked = defaultOnClicked;
-
- return b.uiC;
-}
-
-char *uiButtonText(uiControl *c)
-{
- uiNSButton *b;
-
- b = (uiNSButton *) uiControlHandle(c);
+ b = (uiNSButton *) uiControlHandle(uiControl(bb));
return uiDarwinNSStringToText([b title]);
}
-void uiButtonSetText(uiControl *c, const char *text)
+static void buttonSetText(uiButton *bb, const char *text)
{
uiNSButton *b;
- b = (uiNSButton *) uiControlHandle(c);
+ b = (uiNSButton *) uiControlHandle(uiControl(bb));
[b setTitle:toNSString(text)];
}
-void uiButtonOnClicked(uiControl *c, void (*f)(uiControl *, void *), void *data)
+static void buttonOnClicked(uiButton *bb, void (*f)(uiButton *, void *), void *data)
{
uiNSButton *b;
- b = (uiNSButton *) uiControlHandle(c);
+ b = (uiNSButton *) uiControlHandle(uiControl(bb));
b.uiOnClicked = f;
b.uiOnClickedData = data;
}
+
+uiButton *uiNewButton(const char *text)
+{
+ uiButton *b;
+ uiNSButton *bb;
+
+ b = uiNew(uiButton);
+
+ uiDarwinNewControl(uiControl(b), [uiNSButton class], NO, NO);
+ bb = (uiNSButton *) uiControlHandle(uiControl(b));
+
+ [bb setTitle:toNSString(text)];
+ [bb setButtonType:NSMomentaryPushInButton];
+ [bb setBordered:YES];
+ [bb setBezelStyle:NSRoundedBezelStyle];
+ setStandardControlFont((NSControl *) bb);
+
+ [bb setTarget:bb];
+ [bb setAction:@selector(uiButtonClicked:)];
+
+ bb.uiOnClicked = defaultOnClicked;
+
+ uiButton(b)->Text = buttonText;
+ uiButton(b)->SetText = buttonSetText;
+ uiButton(b)->OnClicked = buttonOnClicked;
+
+ bb.uiB = b;
+
+ return b.uiB;
+}