bare-ui-kit 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CMakeLists.txt +7 -1
- package/README.md +42 -1
- package/binding.m +558 -2
- package/index.d.ts +41 -0
- package/index.js +16 -0
- package/lib/activity-indicator-view.d.ts +29 -0
- package/lib/activity-indicator-view.h +181 -0
- package/lib/activity-indicator-view.js +56 -0
- package/lib/alert-action.d.ts +33 -0
- package/lib/alert-action.js +48 -0
- package/lib/alert-controller.d.ts +20 -0
- package/lib/alert-controller.h +199 -0
- package/lib/alert-controller.js +33 -0
- package/lib/attributed-string.d.ts +45 -0
- package/lib/attributed-string.h +176 -0
- package/lib/attributed-string.js +51 -0
- package/lib/attributes.js +34 -0
- package/lib/bezier-path.d.ts +26 -0
- package/lib/bezier-path.h +145 -0
- package/lib/bezier-path.js +51 -0
- package/lib/bridging.h +600 -2
- package/lib/color.d.ts +86 -0
- package/lib/color.h +286 -0
- package/lib/color.js +170 -0
- package/lib/events.js +35 -0
- package/lib/font-descriptor.d.ts +30 -0
- package/lib/font-descriptor.h +96 -0
- package/lib/font-descriptor.js +47 -0
- package/lib/font-metrics.d.ts +38 -0
- package/lib/font-metrics.h +109 -0
- package/lib/font-metrics.js +58 -0
- package/lib/font.d.ts +59 -0
- package/lib/font.h +424 -0
- package/lib/font.js +100 -0
- package/lib/handle.d.ts +5 -0
- package/lib/handle.js +6 -0
- package/lib/image-view.d.ts +15 -0
- package/lib/image-view.h +75 -0
- package/lib/image-view.js +27 -0
- package/lib/image.d.ts +37 -0
- package/lib/image.h +205 -0
- package/lib/image.js +60 -0
- package/lib/label.d.ts +51 -0
- package/lib/label.h +331 -0
- package/lib/label.js +94 -0
- package/lib/paragraph-style.d.ts +20 -0
- package/lib/paragraph-style.h +94 -0
- package/lib/paragraph-style.js +42 -0
- package/lib/pasteboard.d.ts +31 -0
- package/lib/pasteboard.h +123 -0
- package/lib/pasteboard.js +63 -0
- package/lib/retain.js +12 -0
- package/lib/runtime.m +92 -15
- package/lib/scene.d.ts +30 -0
- package/lib/scene.h +87 -0
- package/lib/scene.js +48 -0
- package/lib/scratch.js +4 -0
- package/lib/screen.d.ts +26 -0
- package/lib/screen.h +194 -0
- package/lib/screen.js +52 -0
- package/lib/scroll-view.d.ts +39 -0
- package/lib/scroll-view.h +246 -0
- package/lib/scroll-view.js +64 -0
- package/lib/switch.d.ts +22 -0
- package/lib/switch.h +166 -0
- package/lib/switch.js +42 -0
- package/lib/text-field.d.ts +103 -0
- package/lib/text-field.h +562 -0
- package/lib/text-field.js +183 -0
- package/lib/text-view.d.ts +59 -0
- package/lib/text-view.h +497 -0
- package/lib/text-view.js +138 -0
- package/lib/view-controller.d.ts +37 -0
- package/lib/view-controller.h +108 -20
- package/lib/view-controller.js +50 -5
- package/lib/view.d.ts +158 -0
- package/lib/view.h +1385 -20
- package/lib/view.js +276 -7
- package/lib/window.d.ts +44 -0
- package/lib/window.h +167 -27
- package/lib/window.js +62 -9
- package/lib/wrap.js +7 -0
- package/package.json +12 -3
- package/prebuilds/ios-arm64/bare +0 -0
- package/prebuilds/ios-arm64/bare-ui-kit.bare +0 -0
- package/prebuilds/ios-arm64-simulator/bare +0 -0
- package/prebuilds/ios-arm64-simulator/bare-ui-kit.bare +0 -0
- package/prebuilds/ios-x64-simulator/bare +0 -0
- package/prebuilds/ios-x64-simulator/bare-ui-kit.bare +0 -0
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
#import <assert.h>
|
|
2
|
+
#import <bare.h>
|
|
3
|
+
#import <js.h>
|
|
4
|
+
|
|
5
|
+
#import <UIKit/UIKit.h>
|
|
6
|
+
|
|
7
|
+
#import "bridging.h"
|
|
8
|
+
|
|
9
|
+
static js_value_t *
|
|
10
|
+
bare_ui_kit_font_metrics_default_metrics(js_env_t *env, js_callback_info_t *info) {
|
|
11
|
+
int err;
|
|
12
|
+
|
|
13
|
+
bare_ui_kit_state_t *state;
|
|
14
|
+
err = js_get_callback_info(env, info, NULL, NULL, NULL, (void **) &state);
|
|
15
|
+
assert(err == 0);
|
|
16
|
+
|
|
17
|
+
js_value_t *result;
|
|
18
|
+
|
|
19
|
+
@autoreleasepool {
|
|
20
|
+
result = bare_foundation_bridge(env, state->registry, [UIFontMetrics defaultMetrics]);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
return result;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
static js_value_t *
|
|
27
|
+
bare_ui_kit_font_metrics_for_text_style(js_env_t *env, js_callback_info_t *info) {
|
|
28
|
+
int err;
|
|
29
|
+
|
|
30
|
+
size_t argc = 1;
|
|
31
|
+
js_value_t *argv[1];
|
|
32
|
+
|
|
33
|
+
bare_ui_kit_state_t *state;
|
|
34
|
+
err = js_get_callback_info(env, info, &argc, argv, NULL, (void **) &state);
|
|
35
|
+
assert(err == 0);
|
|
36
|
+
|
|
37
|
+
assert(argc == 1);
|
|
38
|
+
|
|
39
|
+
js_value_t *result;
|
|
40
|
+
|
|
41
|
+
@autoreleasepool {
|
|
42
|
+
NSString *style = bare_ui_kit__to_string(env, argv[0]);
|
|
43
|
+
|
|
44
|
+
result = bare_foundation_bridge(env, state->registry, [UIFontMetrics metricsForTextStyle:style]);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return result;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
static js_value_t *
|
|
51
|
+
bare_ui_kit_font_metrics_scaled_value_for_value(js_env_t *env, js_callback_info_t *info) {
|
|
52
|
+
int err;
|
|
53
|
+
|
|
54
|
+
size_t argc = 2;
|
|
55
|
+
js_value_t *argv[2];
|
|
56
|
+
|
|
57
|
+
bare_ui_kit_state_t *state;
|
|
58
|
+
err = js_get_callback_info(env, info, &argc, argv, NULL, (void **) &state);
|
|
59
|
+
assert(err == 0);
|
|
60
|
+
|
|
61
|
+
assert(argc == 2);
|
|
62
|
+
|
|
63
|
+
void *handle;
|
|
64
|
+
if (bare_foundation_read_tag(env, state->registry, argv[0], "handle", &handle) < 0) return NULL;
|
|
65
|
+
|
|
66
|
+
double value;
|
|
67
|
+
if (!bare_ui_kit__read_double(env, argv[1], "value", &value)) return NULL;
|
|
68
|
+
|
|
69
|
+
js_value_t *result;
|
|
70
|
+
|
|
71
|
+
@autoreleasepool {
|
|
72
|
+
UIFontMetrics *metrics = (__bridge UIFontMetrics *) handle;
|
|
73
|
+
|
|
74
|
+
err = js_create_double(env, [metrics scaledValueForValue:value], &result);
|
|
75
|
+
assert(err == 0);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return result;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
static js_value_t *
|
|
82
|
+
bare_ui_kit_font_metrics_scaled_font_for_font(js_env_t *env, js_callback_info_t *info) {
|
|
83
|
+
int err;
|
|
84
|
+
|
|
85
|
+
size_t argc = 2;
|
|
86
|
+
js_value_t *argv[2];
|
|
87
|
+
|
|
88
|
+
bare_ui_kit_state_t *state;
|
|
89
|
+
err = js_get_callback_info(env, info, &argc, argv, NULL, (void **) &state);
|
|
90
|
+
assert(err == 0);
|
|
91
|
+
|
|
92
|
+
assert(argc == 2);
|
|
93
|
+
|
|
94
|
+
void *handle;
|
|
95
|
+
if (bare_foundation_read_tag(env, state->registry, argv[0], "handle", &handle) < 0) return NULL;
|
|
96
|
+
|
|
97
|
+
void *font;
|
|
98
|
+
if (bare_foundation_read_tag(env, state->registry, argv[1], "font", &font) < 0) return NULL;
|
|
99
|
+
|
|
100
|
+
js_value_t *result;
|
|
101
|
+
|
|
102
|
+
@autoreleasepool {
|
|
103
|
+
UIFontMetrics *metrics = (__bridge UIFontMetrics *) handle;
|
|
104
|
+
|
|
105
|
+
result = bare_foundation_bridge(env, state->registry, [metrics scaledFontForFont:(__bridge UIFont *) font]);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
return result;
|
|
109
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
const binding = require('../binding')
|
|
2
|
+
const registry = require('bare-foundation-registry')
|
|
3
|
+
const wrap = require('./wrap')
|
|
4
|
+
const UIKitFont = require('./font')
|
|
5
|
+
|
|
6
|
+
module.exports = exports = class UIKitFontMetrics {
|
|
7
|
+
constructor(opts = {}) {
|
|
8
|
+
const { tag = null } = opts
|
|
9
|
+
|
|
10
|
+
this._tag = tag
|
|
11
|
+
|
|
12
|
+
this._token = binding.claim(this._tag, this)
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
get [registry.tag]() {
|
|
16
|
+
return this._tag
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
get [registry.handle]() {
|
|
20
|
+
return binding.handle(this._tag)
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
static get defaultMetrics() {
|
|
24
|
+
return wrap(UIKitFontMetrics, binding.fontMetricsDefaultMetrics())
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
static metricsForTextStyle(textStyle) {
|
|
28
|
+
return wrap(UIKitFontMetrics, binding.fontMetricsForTextStyle(textStyle))
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
scaledValueForValue(value) {
|
|
32
|
+
return binding.fontMetricsScaledValueForValue(this._tag, value)
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
scaledFontForFont(font) {
|
|
36
|
+
return wrap(UIKitFont, binding.fontMetricsScaledFontForFont(this._tag, font._tag))
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
[Symbol.for('bare.inspect')]() {
|
|
40
|
+
return {
|
|
41
|
+
__proto__: { constructor: UIKitFontMetrics }
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
exports.FONT_TEXT_STYLE = {
|
|
47
|
+
LARGE_TITLE: binding.FONT_TEXT_STYLE_LARGE_TITLE,
|
|
48
|
+
TITLE1: binding.FONT_TEXT_STYLE_TITLE1,
|
|
49
|
+
TITLE2: binding.FONT_TEXT_STYLE_TITLE2,
|
|
50
|
+
TITLE3: binding.FONT_TEXT_STYLE_TITLE3,
|
|
51
|
+
HEADLINE: binding.FONT_TEXT_STYLE_HEADLINE,
|
|
52
|
+
SUBHEADLINE: binding.FONT_TEXT_STYLE_SUBHEADLINE,
|
|
53
|
+
BODY: binding.FONT_TEXT_STYLE_BODY,
|
|
54
|
+
CALLOUT: binding.FONT_TEXT_STYLE_CALLOUT,
|
|
55
|
+
FOOTNOTE: binding.FONT_TEXT_STYLE_FOOTNOTE,
|
|
56
|
+
CAPTION1: binding.FONT_TEXT_STYLE_CAPTION1,
|
|
57
|
+
CAPTION2: binding.FONT_TEXT_STYLE_CAPTION2
|
|
58
|
+
}
|
package/lib/font.d.ts
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { tag, handle, Handle, Wrapper } from 'bare-foundation-registry'
|
|
2
|
+
import UIKitFontDescriptor = require('./font-descriptor')
|
|
3
|
+
|
|
4
|
+
/** A font, as a `UIFont`. Sizes are in points. */
|
|
5
|
+
interface UIKitFont {
|
|
6
|
+
readonly fontDescriptor: UIKitFontDescriptor
|
|
7
|
+
|
|
8
|
+
readonly fontName: string
|
|
9
|
+
|
|
10
|
+
readonly familyName: string
|
|
11
|
+
|
|
12
|
+
readonly pointSize: number
|
|
13
|
+
|
|
14
|
+
readonly ascender: number
|
|
15
|
+
|
|
16
|
+
readonly descender: number
|
|
17
|
+
|
|
18
|
+
readonly capHeight: number
|
|
19
|
+
|
|
20
|
+
readonly xHeight: number
|
|
21
|
+
|
|
22
|
+
readonly leading: number
|
|
23
|
+
|
|
24
|
+
readonly lineHeight: number
|
|
25
|
+
|
|
26
|
+
readonly [tag]: number
|
|
27
|
+
|
|
28
|
+
readonly [handle]: Handle
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
declare class UIKitFont {
|
|
32
|
+
protected constructor()
|
|
33
|
+
|
|
34
|
+
/** The system font. `weight` is a `WEIGHT` constant and defaults to regular. */
|
|
35
|
+
static systemFont(size: number, weight?: number): UIKitFont
|
|
36
|
+
|
|
37
|
+
static boldSystemFont(size: number): UIKitFont
|
|
38
|
+
|
|
39
|
+
static monospacedSystemFont(size: number, weight?: number): UIKitFont
|
|
40
|
+
|
|
41
|
+
/** The font called `name`, or `null` if it is not installed. */
|
|
42
|
+
static withName(name: string, size: number): UIKitFont | null
|
|
43
|
+
|
|
44
|
+
static withDescriptor(descriptor: UIKitFontDescriptor, size: number): UIKitFont
|
|
45
|
+
|
|
46
|
+
static readonly WEIGHT: {
|
|
47
|
+
readonly ULTRA_LIGHT: number
|
|
48
|
+
readonly THIN: number
|
|
49
|
+
readonly LIGHT: number
|
|
50
|
+
readonly REGULAR: number
|
|
51
|
+
readonly MEDIUM: number
|
|
52
|
+
readonly SEMIBOLD: number
|
|
53
|
+
readonly BOLD: number
|
|
54
|
+
readonly HEAVY: number
|
|
55
|
+
readonly BLACK: number
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export = UIKitFont
|
package/lib/font.h
ADDED
|
@@ -0,0 +1,424 @@
|
|
|
1
|
+
#import <assert.h>
|
|
2
|
+
#import <bare.h>
|
|
3
|
+
#import <js.h>
|
|
4
|
+
|
|
5
|
+
#import <UIKit/UIKit.h>
|
|
6
|
+
|
|
7
|
+
#import "bridging.h"
|
|
8
|
+
|
|
9
|
+
static js_value_t *
|
|
10
|
+
bare_ui_kit_font_system_font(js_env_t *env, js_callback_info_t *info) {
|
|
11
|
+
int err;
|
|
12
|
+
|
|
13
|
+
size_t argc = 2;
|
|
14
|
+
js_value_t *argv[2];
|
|
15
|
+
|
|
16
|
+
bare_ui_kit_state_t *state;
|
|
17
|
+
err = js_get_callback_info(env, info, &argc, argv, NULL, (void **) &state);
|
|
18
|
+
assert(err == 0);
|
|
19
|
+
|
|
20
|
+
assert(argc == 2);
|
|
21
|
+
|
|
22
|
+
double size;
|
|
23
|
+
if (!bare_ui_kit__read_double(env, argv[0], "size", &size)) return NULL;
|
|
24
|
+
|
|
25
|
+
double weight;
|
|
26
|
+
if (!bare_ui_kit__read_double(env, argv[1], "weight", &weight)) return NULL;
|
|
27
|
+
|
|
28
|
+
js_value_t *result;
|
|
29
|
+
|
|
30
|
+
@autoreleasepool {
|
|
31
|
+
result = bare_foundation_bridge(env, state->registry, [UIFont systemFontOfSize:size weight:weight]);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return result;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
static js_value_t *
|
|
38
|
+
bare_ui_kit_font_bold_system_font(js_env_t *env, js_callback_info_t *info) {
|
|
39
|
+
int err;
|
|
40
|
+
|
|
41
|
+
size_t argc = 1;
|
|
42
|
+
js_value_t *argv[1];
|
|
43
|
+
|
|
44
|
+
bare_ui_kit_state_t *state;
|
|
45
|
+
err = js_get_callback_info(env, info, &argc, argv, NULL, (void **) &state);
|
|
46
|
+
assert(err == 0);
|
|
47
|
+
|
|
48
|
+
assert(argc == 1);
|
|
49
|
+
|
|
50
|
+
double size;
|
|
51
|
+
if (!bare_ui_kit__read_double(env, argv[0], "size", &size)) return NULL;
|
|
52
|
+
|
|
53
|
+
js_value_t *result;
|
|
54
|
+
|
|
55
|
+
@autoreleasepool {
|
|
56
|
+
result = bare_foundation_bridge(env, state->registry, [UIFont boldSystemFontOfSize:size]);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
return result;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
static js_value_t *
|
|
63
|
+
bare_ui_kit_font_monospaced_system_font(js_env_t *env, js_callback_info_t *info) {
|
|
64
|
+
int err;
|
|
65
|
+
|
|
66
|
+
size_t argc = 2;
|
|
67
|
+
js_value_t *argv[2];
|
|
68
|
+
|
|
69
|
+
bare_ui_kit_state_t *state;
|
|
70
|
+
err = js_get_callback_info(env, info, &argc, argv, NULL, (void **) &state);
|
|
71
|
+
assert(err == 0);
|
|
72
|
+
|
|
73
|
+
assert(argc == 2);
|
|
74
|
+
|
|
75
|
+
double size;
|
|
76
|
+
if (!bare_ui_kit__read_double(env, argv[0], "size", &size)) return NULL;
|
|
77
|
+
|
|
78
|
+
double weight;
|
|
79
|
+
if (!bare_ui_kit__read_double(env, argv[1], "weight", &weight)) return NULL;
|
|
80
|
+
|
|
81
|
+
js_value_t *result;
|
|
82
|
+
|
|
83
|
+
@autoreleasepool {
|
|
84
|
+
result = bare_foundation_bridge(env, state->registry, [UIFont monospacedSystemFontOfSize:size weight:weight]);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
return result;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// A family that is not installed has no font. That is not an error, and the
|
|
91
|
+
// caller falls back to the system font.
|
|
92
|
+
static js_value_t *
|
|
93
|
+
bare_ui_kit_font_with_name(js_env_t *env, js_callback_info_t *info) {
|
|
94
|
+
int err;
|
|
95
|
+
|
|
96
|
+
size_t argc = 2;
|
|
97
|
+
js_value_t *argv[2];
|
|
98
|
+
|
|
99
|
+
bare_ui_kit_state_t *state;
|
|
100
|
+
err = js_get_callback_info(env, info, &argc, argv, NULL, (void **) &state);
|
|
101
|
+
assert(err == 0);
|
|
102
|
+
|
|
103
|
+
assert(argc == 2);
|
|
104
|
+
|
|
105
|
+
double size;
|
|
106
|
+
if (!bare_ui_kit__read_double(env, argv[1], "size", &size)) return NULL;
|
|
107
|
+
|
|
108
|
+
js_value_t *result;
|
|
109
|
+
|
|
110
|
+
@autoreleasepool {
|
|
111
|
+
NSString *name = bare_ui_kit__to_string(env, argv[0]);
|
|
112
|
+
|
|
113
|
+
result = bare_foundation_bridge(env, state->registry, [UIFont fontWithName:name size:size]);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
return result;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
static js_value_t *
|
|
120
|
+
bare_ui_kit_font_font_name(js_env_t *env, js_callback_info_t *info) {
|
|
121
|
+
int err;
|
|
122
|
+
|
|
123
|
+
size_t argc = 1;
|
|
124
|
+
js_value_t *argv[1];
|
|
125
|
+
|
|
126
|
+
bare_ui_kit_state_t *state;
|
|
127
|
+
err = js_get_callback_info(env, info, &argc, argv, NULL, (void **) &state);
|
|
128
|
+
assert(err == 0);
|
|
129
|
+
|
|
130
|
+
assert(argc == 1);
|
|
131
|
+
|
|
132
|
+
void *handle;
|
|
133
|
+
if (bare_foundation_read_tag(env, state->registry, argv[0], "handle", &handle) < 0) return NULL;
|
|
134
|
+
|
|
135
|
+
js_value_t *result;
|
|
136
|
+
|
|
137
|
+
@autoreleasepool {
|
|
138
|
+
UIFont *font = (__bridge UIFont *) handle;
|
|
139
|
+
|
|
140
|
+
result = bare_ui_kit__from_string(env, font.fontName);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
return result;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
static js_value_t *
|
|
147
|
+
bare_ui_kit_font_family_name(js_env_t *env, js_callback_info_t *info) {
|
|
148
|
+
int err;
|
|
149
|
+
|
|
150
|
+
size_t argc = 1;
|
|
151
|
+
js_value_t *argv[1];
|
|
152
|
+
|
|
153
|
+
bare_ui_kit_state_t *state;
|
|
154
|
+
err = js_get_callback_info(env, info, &argc, argv, NULL, (void **) &state);
|
|
155
|
+
assert(err == 0);
|
|
156
|
+
|
|
157
|
+
assert(argc == 1);
|
|
158
|
+
|
|
159
|
+
void *handle;
|
|
160
|
+
if (bare_foundation_read_tag(env, state->registry, argv[0], "handle", &handle) < 0) return NULL;
|
|
161
|
+
|
|
162
|
+
js_value_t *result;
|
|
163
|
+
|
|
164
|
+
@autoreleasepool {
|
|
165
|
+
UIFont *font = (__bridge UIFont *) handle;
|
|
166
|
+
|
|
167
|
+
result = bare_ui_kit__from_string(env, font.familyName);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
return result;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
static js_value_t *
|
|
174
|
+
bare_ui_kit_font_point_size(js_env_t *env, js_callback_info_t *info) {
|
|
175
|
+
int err;
|
|
176
|
+
|
|
177
|
+
size_t argc = 1;
|
|
178
|
+
js_value_t *argv[1];
|
|
179
|
+
|
|
180
|
+
bare_ui_kit_state_t *state;
|
|
181
|
+
err = js_get_callback_info(env, info, &argc, argv, NULL, (void **) &state);
|
|
182
|
+
assert(err == 0);
|
|
183
|
+
|
|
184
|
+
assert(argc == 1);
|
|
185
|
+
|
|
186
|
+
void *handle;
|
|
187
|
+
if (bare_foundation_read_tag(env, state->registry, argv[0], "handle", &handle) < 0) return NULL;
|
|
188
|
+
|
|
189
|
+
js_value_t *result;
|
|
190
|
+
|
|
191
|
+
@autoreleasepool {
|
|
192
|
+
UIFont *font = (__bridge UIFont *) handle;
|
|
193
|
+
|
|
194
|
+
err = js_create_double(env, font.pointSize, &result);
|
|
195
|
+
assert(err == 0);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
return result;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
static js_value_t *
|
|
202
|
+
bare_ui_kit_font_ascender(js_env_t *env, js_callback_info_t *info) {
|
|
203
|
+
int err;
|
|
204
|
+
|
|
205
|
+
size_t argc = 1;
|
|
206
|
+
js_value_t *argv[1];
|
|
207
|
+
|
|
208
|
+
bare_ui_kit_state_t *state;
|
|
209
|
+
err = js_get_callback_info(env, info, &argc, argv, NULL, (void **) &state);
|
|
210
|
+
assert(err == 0);
|
|
211
|
+
|
|
212
|
+
assert(argc == 1);
|
|
213
|
+
|
|
214
|
+
void *handle;
|
|
215
|
+
if (bare_foundation_read_tag(env, state->registry, argv[0], "handle", &handle) < 0) return NULL;
|
|
216
|
+
|
|
217
|
+
js_value_t *result;
|
|
218
|
+
|
|
219
|
+
@autoreleasepool {
|
|
220
|
+
UIFont *font = (__bridge UIFont *) handle;
|
|
221
|
+
|
|
222
|
+
err = js_create_double(env, font.ascender, &result);
|
|
223
|
+
assert(err == 0);
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
return result;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
static js_value_t *
|
|
230
|
+
bare_ui_kit_font_descender(js_env_t *env, js_callback_info_t *info) {
|
|
231
|
+
int err;
|
|
232
|
+
|
|
233
|
+
size_t argc = 1;
|
|
234
|
+
js_value_t *argv[1];
|
|
235
|
+
|
|
236
|
+
bare_ui_kit_state_t *state;
|
|
237
|
+
err = js_get_callback_info(env, info, &argc, argv, NULL, (void **) &state);
|
|
238
|
+
assert(err == 0);
|
|
239
|
+
|
|
240
|
+
assert(argc == 1);
|
|
241
|
+
|
|
242
|
+
void *handle;
|
|
243
|
+
if (bare_foundation_read_tag(env, state->registry, argv[0], "handle", &handle) < 0) return NULL;
|
|
244
|
+
|
|
245
|
+
js_value_t *result;
|
|
246
|
+
|
|
247
|
+
@autoreleasepool {
|
|
248
|
+
UIFont *font = (__bridge UIFont *) handle;
|
|
249
|
+
|
|
250
|
+
err = js_create_double(env, font.descender, &result);
|
|
251
|
+
assert(err == 0);
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
return result;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
static js_value_t *
|
|
258
|
+
bare_ui_kit_font_cap_height(js_env_t *env, js_callback_info_t *info) {
|
|
259
|
+
int err;
|
|
260
|
+
|
|
261
|
+
size_t argc = 1;
|
|
262
|
+
js_value_t *argv[1];
|
|
263
|
+
|
|
264
|
+
bare_ui_kit_state_t *state;
|
|
265
|
+
err = js_get_callback_info(env, info, &argc, argv, NULL, (void **) &state);
|
|
266
|
+
assert(err == 0);
|
|
267
|
+
|
|
268
|
+
assert(argc == 1);
|
|
269
|
+
|
|
270
|
+
void *handle;
|
|
271
|
+
if (bare_foundation_read_tag(env, state->registry, argv[0], "handle", &handle) < 0) return NULL;
|
|
272
|
+
|
|
273
|
+
js_value_t *result;
|
|
274
|
+
|
|
275
|
+
@autoreleasepool {
|
|
276
|
+
UIFont *font = (__bridge UIFont *) handle;
|
|
277
|
+
|
|
278
|
+
err = js_create_double(env, font.capHeight, &result);
|
|
279
|
+
assert(err == 0);
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
return result;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
static js_value_t *
|
|
286
|
+
bare_ui_kit_font_x_height(js_env_t *env, js_callback_info_t *info) {
|
|
287
|
+
int err;
|
|
288
|
+
|
|
289
|
+
size_t argc = 1;
|
|
290
|
+
js_value_t *argv[1];
|
|
291
|
+
|
|
292
|
+
bare_ui_kit_state_t *state;
|
|
293
|
+
err = js_get_callback_info(env, info, &argc, argv, NULL, (void **) &state);
|
|
294
|
+
assert(err == 0);
|
|
295
|
+
|
|
296
|
+
assert(argc == 1);
|
|
297
|
+
|
|
298
|
+
void *handle;
|
|
299
|
+
if (bare_foundation_read_tag(env, state->registry, argv[0], "handle", &handle) < 0) return NULL;
|
|
300
|
+
|
|
301
|
+
js_value_t *result;
|
|
302
|
+
|
|
303
|
+
@autoreleasepool {
|
|
304
|
+
UIFont *font = (__bridge UIFont *) handle;
|
|
305
|
+
|
|
306
|
+
err = js_create_double(env, font.xHeight, &result);
|
|
307
|
+
assert(err == 0);
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
return result;
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
static js_value_t *
|
|
314
|
+
bare_ui_kit_font_leading(js_env_t *env, js_callback_info_t *info) {
|
|
315
|
+
int err;
|
|
316
|
+
|
|
317
|
+
size_t argc = 1;
|
|
318
|
+
js_value_t *argv[1];
|
|
319
|
+
|
|
320
|
+
bare_ui_kit_state_t *state;
|
|
321
|
+
err = js_get_callback_info(env, info, &argc, argv, NULL, (void **) &state);
|
|
322
|
+
assert(err == 0);
|
|
323
|
+
|
|
324
|
+
assert(argc == 1);
|
|
325
|
+
|
|
326
|
+
void *handle;
|
|
327
|
+
if (bare_foundation_read_tag(env, state->registry, argv[0], "handle", &handle) < 0) return NULL;
|
|
328
|
+
|
|
329
|
+
js_value_t *result;
|
|
330
|
+
|
|
331
|
+
@autoreleasepool {
|
|
332
|
+
UIFont *font = (__bridge UIFont *) handle;
|
|
333
|
+
|
|
334
|
+
err = js_create_double(env, font.leading, &result);
|
|
335
|
+
assert(err == 0);
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
return result;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
static js_value_t *
|
|
342
|
+
bare_ui_kit_font_line_height(js_env_t *env, js_callback_info_t *info) {
|
|
343
|
+
int err;
|
|
344
|
+
|
|
345
|
+
size_t argc = 1;
|
|
346
|
+
js_value_t *argv[1];
|
|
347
|
+
|
|
348
|
+
bare_ui_kit_state_t *state;
|
|
349
|
+
err = js_get_callback_info(env, info, &argc, argv, NULL, (void **) &state);
|
|
350
|
+
assert(err == 0);
|
|
351
|
+
|
|
352
|
+
assert(argc == 1);
|
|
353
|
+
|
|
354
|
+
void *handle;
|
|
355
|
+
if (bare_foundation_read_tag(env, state->registry, argv[0], "handle", &handle) < 0) return NULL;
|
|
356
|
+
|
|
357
|
+
js_value_t *result;
|
|
358
|
+
|
|
359
|
+
@autoreleasepool {
|
|
360
|
+
UIFont *font = (__bridge UIFont *) handle;
|
|
361
|
+
|
|
362
|
+
err = js_create_double(env, font.lineHeight, &result);
|
|
363
|
+
assert(err == 0);
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
return result;
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
static js_value_t *
|
|
370
|
+
bare_ui_kit_font_font_descriptor(js_env_t *env, js_callback_info_t *info) {
|
|
371
|
+
int err;
|
|
372
|
+
|
|
373
|
+
size_t argc = 1;
|
|
374
|
+
js_value_t *argv[1];
|
|
375
|
+
|
|
376
|
+
bare_ui_kit_state_t *state;
|
|
377
|
+
err = js_get_callback_info(env, info, &argc, argv, NULL, (void **) &state);
|
|
378
|
+
assert(err == 0);
|
|
379
|
+
|
|
380
|
+
assert(argc == 1);
|
|
381
|
+
|
|
382
|
+
void *handle;
|
|
383
|
+
if (bare_foundation_read_tag(env, state->registry, argv[0], "handle", &handle) < 0) return NULL;
|
|
384
|
+
|
|
385
|
+
js_value_t *result;
|
|
386
|
+
|
|
387
|
+
@autoreleasepool {
|
|
388
|
+
UIFont *font = (__bridge UIFont *) handle;
|
|
389
|
+
|
|
390
|
+
result = bare_foundation_bridge(env, state->registry, font.fontDescriptor);
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
return result;
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
static js_value_t *
|
|
397
|
+
bare_ui_kit_font_with_descriptor(js_env_t *env, js_callback_info_t *info) {
|
|
398
|
+
int err;
|
|
399
|
+
|
|
400
|
+
size_t argc = 2;
|
|
401
|
+
js_value_t *argv[2];
|
|
402
|
+
|
|
403
|
+
bare_ui_kit_state_t *state;
|
|
404
|
+
err = js_get_callback_info(env, info, &argc, argv, NULL, (void **) &state);
|
|
405
|
+
assert(err == 0);
|
|
406
|
+
|
|
407
|
+
assert(argc == 2);
|
|
408
|
+
|
|
409
|
+
void *handle;
|
|
410
|
+
if (bare_foundation_read_tag(env, state->registry, argv[0], "handle", &handle) < 0) return NULL;
|
|
411
|
+
|
|
412
|
+
double size;
|
|
413
|
+
if (!bare_ui_kit__read_double(env, argv[1], "size", &size)) return NULL;
|
|
414
|
+
|
|
415
|
+
js_value_t *result;
|
|
416
|
+
|
|
417
|
+
@autoreleasepool {
|
|
418
|
+
UIFontDescriptor *descriptor = (__bridge UIFontDescriptor *) handle;
|
|
419
|
+
|
|
420
|
+
result = bare_foundation_bridge(env, state->registry, [UIFont fontWithDescriptor:descriptor size:size]);
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
return result;
|
|
424
|
+
}
|