diff options
| author | Pietro Gagliardi <[email protected]> | 2015-04-16 13:19:43 -0400 |
|---|---|---|
| committer | Pietro Gagliardi <[email protected]> | 2015-04-16 13:19:43 -0400 |
| commit | bb00796956f5ca0f91904b74e27eee523b416306 (patch) | |
| tree | e2f6a08ecb4de2a8a3087a74a2906de621af322d | |
| parent | f3867ee2d4091fde0c1cfcdadf7c10a07ffebff2 (diff) | |
Migrated darwin/button.m.
| -rw-r--r-- | new/darwin/button.m | 75 |
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; +} |
