diff options
| author | Pietro Gagliardi <[email protected]> | 2014-08-30 23:02:02 -0400 |
|---|---|---|
| committer | Pietro Gagliardi <[email protected]> | 2014-08-30 23:02:02 -0400 |
| commit | 77bf566ebbcb62acd4d08d905d9542d6ff9b6b80 (patch) | |
| tree | eeb8e72bc3bf57f5be7f0c0af4319189ac6de838 /objc_darwin.h | |
| parent | 155899c65ed32245e2ccad4197a10c77017d835b (diff) | |
...in with the new.
Diffstat (limited to 'objc_darwin.h')
| -rw-r--r-- | objc_darwin.h | 150 |
1 files changed, 150 insertions, 0 deletions
diff --git a/objc_darwin.h b/objc_darwin.h new file mode 100644 index 0000000..5fa1557 --- /dev/null +++ b/objc_darwin.h @@ -0,0 +1,150 @@ +/* 8 july 2014 */ + +/* cgo will include this file multiple times */ +#ifndef __GO_UI_OBJC_DARWIN_H__ +#define __GO_UI_OBJC_DARWIN_H__ + +#define MAC_OS_X_VERSION_MIN_REQUIRED MAC_OS_X_VERSION_10_7 +#define MAC_OS_X_VERSION_MAX_ALLOWED MAC_OS_X_VERSION_10_7 + +#include <stdlib.h> +#include <stdint.h> +#include <objc/message.h> +#include <objc/objc.h> +#include <objc/runtime.h> + +/* Objective-C -> Go types for max safety */ +struct xsize { + intptr_t width; + intptr_t height; +}; + +struct xrect { + intptr_t x; + intptr_t y; + intptr_t width; + intptr_t height; +}; + +struct xalignment { + struct xrect rect; + intptr_t baseline; +}; + +struct xpoint { + intptr_t x; + intptr_t y; +}; + +/* uitask_darwin.m */ +extern id getAppDelegate(void); /* used by the other .m files */ +extern void uiinit(char **); +extern void uimsgloop(void); +extern void uistop(void); +extern void beginModal(void); +extern void endModal(void); +extern void issue(void *); + +/* window_darwin.m */ +extern id newWindow(intptr_t, intptr_t); +extern void windowSetDelegate(id, void *); +extern void windowSetContentView(id, id); +extern const char *windowTitle(id); +extern void windowSetTitle(id, const char *); +extern void windowShow(id); +extern void windowHide(id); +extern void windowClose(id); +extern id windowContentView(id); +extern void windowRedraw(id); + +/* basicctrls_darwin.m */ +#define textfieldWidth (96) /* according to Interface Builder */ +extern id newButton(void); +extern void buttonSetDelegate(id, void *); +extern const char *buttonText(id); +extern void buttonSetText(id, char *); +extern id newCheckbox(void); +extern void checkboxSetDelegate(id, void *); +extern BOOL checkboxChecked(id); +extern void checkboxSetChecked(id, BOOL); +extern id finishNewTextField(id, BOOL); +extern id newTextField(void); +extern id newPasswordField(void); +extern void textfieldSetDelegate(id, void *); +extern const char *textfieldText(id); +extern void textfieldSetText(id, char *); +extern id textfieldOpenInvalidPopover(id, char *); +extern void textfieldCloseInvalidPopover(id); +extern id newLabel(void); +extern id newGroup(id); +extern const char *groupText(id); +extern void groupSetText(id, char *); + +/* container_darwin.m */ +extern id newContainerView(void *); +extern void moveControl(id, intptr_t, intptr_t, intptr_t, intptr_t); + +/* tab_darwin.m */ +extern id newTab(void); +extern void tabAppend(id, char *, id); +extern struct xsize tabPreferredSize(id); + +/* table_darwin.m */ +enum { + colTypeText, + colTypeImage, + colTypeCheckbox, +}; +extern id newTable(void); +extern void tableAppendColumn(id, intptr_t, char *, int, BOOL); +extern void tableUpdate(id); +extern void tableMakeDataSource(id, void *); +extern struct xsize tablePreferredSize(id); +extern intptr_t tableSelected(id); +extern void tableSelect(id, intptr_t); + +/* control_darwin.m */ +extern void parent(id, id); +extern void controlSetHidden(id, BOOL); +extern void setStandardControlFont(id); +extern void setSmallControlFont(id); +extern struct xsize controlPreferredSize(id); +extern id newScrollView(id, BOOL); +extern struct xalignment alignmentInfo(id, struct xrect); +extern struct xalignment alignmentInfoFrame(id); + +/* area_darwin.h */ +extern Class getAreaClass(void); +extern id newArea(void *); +extern BOOL drawImage(void *, intptr_t, intptr_t, intptr_t, intptr_t, intptr_t); +extern const uintptr_t cNSShiftKeyMask; +extern const uintptr_t cNSControlKeyMask; +extern const uintptr_t cNSAlternateKeyMask; +extern const uintptr_t cNSCommandKeyMask; +extern uintptr_t modifierFlags(id); +extern struct xpoint getTranslatedEventPoint(id, id); +extern intptr_t buttonNumber(id); +extern intptr_t clickCount(id); +extern uintptr_t pressedMouseButtons(void); +extern uintptr_t keyCode(id); +extern void areaRepaint(id, struct xrect); +extern void areaRepaintAll(id); +extern void areaTextFieldOpen(id, id, intptr_t, intptr_t); +extern void areaSetTextField(id, id); +extern void areaEndTextFieldEditing(id, id); + + +/* common_darwin.m */ +extern void disableAutocorrect(id); + +/* imagerep_darwin.m */ +extern id toImageListImage(void *, intptr_t, intptr_t, intptr_t); + +/* dialog_darwin.m */ +extern void openFile(id, void *); + +/* warningpopover_darwin.m */ +extern id newWarningPopover(char *); +extern void warningPopoverShow(id, id); + +#endif |
