aboutsummaryrefslogtreecommitdiff
path: root/src/libui_sdl/libui/darwin/control.m
diff options
context:
space:
mode:
Diffstat (limited to 'src/libui_sdl/libui/darwin/control.m')
-rw-r--r--src/libui_sdl/libui/darwin/control.m84
1 files changed, 84 insertions, 0 deletions
diff --git a/src/libui_sdl/libui/darwin/control.m b/src/libui_sdl/libui/darwin/control.m
new file mode 100644
index 0000000..9eaf47a
--- /dev/null
+++ b/src/libui_sdl/libui/darwin/control.m
@@ -0,0 +1,84 @@
+// 16 august 2015
+#import "uipriv_darwin.h"
+
+void uiDarwinControlSyncEnableState(uiDarwinControl *c, int state)
+{
+ (*(c->SyncEnableState))(c, state);
+}
+
+void uiDarwinControlSetSuperview(uiDarwinControl *c, NSView *superview)
+{
+ (*(c->SetSuperview))(c, superview);
+}
+
+BOOL uiDarwinControlHugsTrailingEdge(uiDarwinControl *c)
+{
+ return (*(c->HugsTrailingEdge))(c);
+}
+
+BOOL uiDarwinControlHugsBottom(uiDarwinControl *c)
+{
+ return (*(c->HugsBottom))(c);
+}
+
+void uiDarwinControlChildEdgeHuggingChanged(uiDarwinControl *c)
+{
+ (*(c->ChildEdgeHuggingChanged))(c);
+}
+
+NSLayoutPriority uiDarwinControlHuggingPriority(uiDarwinControl *c, NSLayoutConstraintOrientation orientation)
+{
+ return (*(c->HuggingPriority))(c, orientation);
+}
+
+void uiDarwinControlSetHuggingPriority(uiDarwinControl *c, NSLayoutPriority priority, NSLayoutConstraintOrientation orientation)
+{
+ (*(c->SetHuggingPriority))(c, priority, orientation);
+}
+
+void uiDarwinControlChildVisibilityChanged(uiDarwinControl *c)
+{
+ (*(c->ChildVisibilityChanged))(c);
+}
+
+void uiDarwinSetControlFont(NSControl *c, NSControlSize size)
+{
+ [c setFont:[NSFont systemFontOfSize:[NSFont systemFontSizeForControlSize:size]]];
+}
+
+#define uiDarwinControlSignature 0x44617277
+
+uiDarwinControl *uiDarwinAllocControl(size_t n, uint32_t typesig, const char *typenamestr)
+{
+ return uiDarwinControl(uiAllocControl(n, uiDarwinControlSignature, typesig, typenamestr));
+}
+
+BOOL uiDarwinShouldStopSyncEnableState(uiDarwinControl *c, BOOL enabled)
+{
+ int ce;
+
+ ce = uiControlEnabled(uiControl(c));
+ // only stop if we're going from disabled back to enabled; don't stop under any other condition
+ // (if we stop when going from enabled to disabled then enabled children of a disabled control won't get disabled at the OS level)
+ if (!ce && enabled)
+ return YES;
+ return NO;
+}
+
+void uiDarwinNotifyEdgeHuggingChanged(uiDarwinControl *c)
+{
+ uiControl *parent;
+
+ parent = uiControlParent(uiControl(c));
+ if (parent != NULL)
+ uiDarwinControlChildEdgeHuggingChanged(uiDarwinControl(parent));
+}
+
+void uiDarwinNotifyVisibilityChanged(uiDarwinControl *c)
+{
+ uiControl *parent;
+
+ parent = uiControlParent(uiControl(c));
+ if (parent != NULL)
+ uiDarwinControlChildVisibilityChanged(uiDarwinControl(parent));
+}