diff options
| author | Pietro Gagliardi <[email protected]> | 2014-05-15 19:21:54 -0400 |
|---|---|---|
| committer | Pietro Gagliardi <[email protected]> | 2014-05-15 19:21:54 -0400 |
| commit | b73d4e9010a273fd4e3e0b809959387a3b020cb0 (patch) | |
| tree | 054edebfe408a2c20dbe60aac3e240133a7139d9 /prefsize_darwin.m | |
| parent | 5b5c76021eda98783f1611da66f4b2f10f09f590 (diff) | |
Migrated prefsize_darwin.go to plain Objective-C. Not much left...!
Diffstat (limited to 'prefsize_darwin.m')
| -rw-r--r-- | prefsize_darwin.m | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/prefsize_darwin.m b/prefsize_darwin.m new file mode 100644 index 0000000..40f6b11 --- /dev/null +++ b/prefsize_darwin.m @@ -0,0 +1,60 @@ +// 15 may 2014 + +#include "objc_darwin.h" +#include "prefsize_darwin.h" +#include <AppKit/NSControl.h> +#include <AppKit/NSScrollView.h> +#include <AppKit/NSTableView.h> +#include <AppKit/NSProgressIndicator.h> + +#define to(T, x) ((T *) (x)) +#define toNSControl(x) to(NSControl, (x)) +#define toNSScrollView(x) to(NSScrollView, (x)) +#define toNSTableView(x) to(NSTableView, (x)) +#define toNSProgressIndicator(x) to(NSProgressIndicator, (x)) + +#define inScrollView(x) ([toNSScrollView((x)) documentView]) +#define listboxInScrollView(x) toNSTableView(inScrollView((x))) +#define areaInScrollView(x) inScrollView((x)) + +struct xsize controlPrefSize(id control) +{ + NSControl *c; + NSRect r; + struct xsize s; + + c = toNSControl(control); + [c sizeToFit]; + r = [c frame]; + s.width = (intptr_t) r.size.width; + s.height = (intptr_t) r.size.height; + return s; +} + +struct xsize listboxPrefSize(id scrollview) +{ + NSTableView *c; + NSRect r; + struct xsize s; + + c = listboxInScrollView(toNSScrollView(scrollview)); + [c sizeToFit]; + r = [c frame]; + s.width = (intptr_t) r.size.width; + s.height = (intptr_t) r.size.height; + return s; +} + +struct xsize pbarPrefSize(id control) +{ + NSProgressIndicator *c; + NSRect r; + struct xsize s; + + c = toNSProgressIndicator(control); + [c sizeToFit]; + r = [c frame]; + s.width = (intptr_t) r.size.width; + s.height = (intptr_t) r.size.height; + return s; +}
\ No newline at end of file |
