From 67bfe61c933de7c241bc646008b757e3871be906 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Thu, 9 Apr 2015 11:54:02 -0400 Subject: [PATCH] Implemented the text functions on OS X. --- new/button_darwin.m | 16 +++++++++++++++- new/entry_darwin.m | 21 +++++++++++++++++++-- new/uipriv_darwin.h | 1 + new/util_darwin.m | 5 +++++ new/window_darwin.m | 10 +++++++++- 5 files changed, 49 insertions(+), 4 deletions(-) diff --git a/new/button_darwin.m b/new/button_darwin.m index 9eab2e4..a4191a9 100644 --- a/new/button_darwin.m +++ b/new/button_darwin.m @@ -53,7 +53,21 @@ uiControl *uiNewButton(const char *text) return b.uiC; } -// TODO text +char *uiButtonText(uiControl *c) +{ + uiNSButton *b; + + b = (uiNSButton *) uiControlHandle(c); + return strdup(fromNSString([b title])); +} + +void uiButtonSetText(uiControl *c, const char *text) +{ + uiNSButton *b; + + b = (uiNSButton *) uiControlHandle(c); + [b setTitle:toNSString(text)]; +} void uiButtonOnClicked(uiControl *c, void (*f)(uiControl *, void *), void *data) { diff --git a/new/entry_darwin.m b/new/entry_darwin.m index b08d53b..4a4047a 100644 --- a/new/entry_darwin.m +++ b/new/entry_darwin.m @@ -20,14 +20,14 @@ // TOOD move elsewhere // these are based on interface builder defaults; my comments in the old code weren't very good so I don't really know what talked about what, sorry :/ -void finishNewTextField(NSTextField *t, BOOL isLabel) +void finishNewTextField(NSTextField *t, BOOL isEntry) { setStandardControlFont((id) t); // THE ORDER OF THESE CALLS IS IMPORTANT; CHANGE IT AND THE BORDERS WILL DISAPPEAR [t setBordered:NO]; [t setBezelStyle:NSTextFieldSquareBezel]; - [t setBezeled:isLabel]; + [t setBezeled:isEntry]; // TODO autocorrect comment @@ -49,3 +49,20 @@ uiControl *uiNewEntry(void) return t.uiC; } + +char *uiEntryText(uiControl *c) +{ + uiNSTextField *t; + + t = (uiNSTextField *) uiControlHandle(c); + // TODO wrap all strdup calls + return strdup(fromNSString([t stringValue])); +} + +void uiEntrySetText(uiControl *c, const char *text) +{ + uiNSTextField *t; + + t = (uiNSTextField *) uiControlHandle(c); + [t setStringValue:toNSString(text)]; +} diff --git a/new/uipriv_darwin.h b/new/uipriv_darwin.h index 1205d81..5a48fca 100644 --- a/new/uipriv_darwin.h +++ b/new/uipriv_darwin.h @@ -6,6 +6,7 @@ #import "ui_darwin.h" #define toNSString(str) [NSString stringWithUTF8String:(str)] +#define fromNSString(str) [(str) UTF8String] // TODO move this to the right place struct uiSizing { diff --git a/new/util_darwin.m b/new/util_darwin.m index d8166e9..8fbf391 100644 --- a/new/util_darwin.m +++ b/new/util_darwin.m @@ -6,3 +6,8 @@ void setStandardControlFont(NSControl *control) { [control setFont:[NSFont systemFontOfSize:[NSFont systemFontSizeForControlSize:NSRegularControlSize]]]; } + +void uiFreeText(char *s) +{ + free(s); +} diff --git a/new/window_darwin.m b/new/window_darwin.m index c2c312a..2052f18 100644 --- a/new/window_darwin.m +++ b/new/window_darwin.m @@ -79,7 +79,15 @@ uintptr_t uiWindowHandle(uiWindow *w) return (uintptr_t) (D.w); } -// TODO titles +char *uiWindowTitle(uiWindow *w) +{ + return strdup(fromNSString([D.w title])); +} + +void uiWindowSetTitle(uiWindow *w, const char *title) +{ + [D.w setTitle:toNSString(title)]; +} void uiWindowShow(uiWindow *w) {