bare-gtk 0.2.1 → 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 +16 -2
- package/README.md +35 -1
- package/binding.c +350 -1
- package/index.d.ts +65 -0
- package/index.js +32 -0
- package/lib/adjustment.d.ts +21 -0
- package/lib/adjustment.h +112 -0
- package/lib/adjustment.js +24 -0
- package/lib/bridging.h +347 -0
- package/lib/clipboard.d.ts +22 -0
- package/lib/clipboard.h +176 -0
- package/lib/clipboard.js +18 -0
- package/lib/constants.d.ts +40 -0
- package/lib/constants.js +51 -0
- package/lib/css-provider.d.ts +13 -0
- package/lib/css-provider.h +56 -0
- package/lib/css-provider.js +14 -0
- package/lib/cursor.d.ts +35 -0
- package/lib/cursor.h +220 -0
- package/lib/cursor.js +45 -0
- package/lib/device.d.ts +13 -0
- package/lib/device.h +35 -0
- package/lib/device.js +8 -0
- package/lib/dialog.d.ts +41 -0
- package/lib/dialog.js +37 -0
- package/lib/display.d.ts +25 -0
- package/lib/display.h +86 -0
- package/lib/display.js +23 -0
- package/lib/editable.h +160 -0
- package/lib/entry.d.ts +93 -0
- package/lib/entry.h +340 -0
- package/lib/entry.js +118 -0
- package/lib/event-controller-focus.d.ts +17 -0
- package/lib/event-controller-focus.h +55 -0
- package/lib/event-controller-focus.js +13 -0
- package/lib/event-controller-motion.d.ts +18 -0
- package/lib/event-controller-motion.h +66 -0
- package/lib/event-controller-motion.js +14 -0
- package/lib/event-controller.d.ts +17 -0
- package/lib/event-controller.h +103 -0
- package/lib/event-controller.js +22 -0
- package/lib/events.js +23 -0
- package/lib/fixed.d.ts +10 -0
- package/lib/fixed.h +28 -0
- package/lib/fixed.js +8 -0
- package/lib/frame-fixed.d.ts +10 -0
- package/lib/frame-fixed.js +12 -0
- package/lib/frame-layout-child.d.ts +17 -0
- package/lib/frame-layout-child.js +16 -0
- package/lib/frame-layout.d.ts +27 -0
- package/lib/frame-layout.h +291 -0
- package/lib/frame-layout.js +19 -0
- package/lib/gesture-click.d.ts +19 -0
- package/lib/gesture-click.h +66 -0
- package/lib/gesture-click.js +14 -0
- package/lib/gesture-drag.d.ts +25 -0
- package/lib/gesture-drag.h +165 -0
- package/lib/gesture-drag.js +23 -0
- package/lib/gesture-single.d.ts +13 -0
- package/lib/gesture-single.js +12 -0
- package/lib/gesture.d.ts +13 -0
- package/lib/gesture.h +73 -0
- package/lib/gesture.js +8 -0
- package/lib/handle.d.ts +5 -0
- package/lib/handle.js +6 -0
- package/lib/label.d.ts +36 -0
- package/lib/label.h +269 -0
- package/lib/label.js +78 -0
- package/lib/layout-child.d.ts +13 -0
- package/lib/layout-child.h +35 -0
- package/lib/layout-child.js +10 -0
- package/lib/layout-manager.d.ts +15 -0
- package/lib/layout-manager.h +42 -0
- package/lib/layout-manager.js +15 -0
- package/lib/message-dialog.d.ts +26 -0
- package/lib/message-dialog.h +190 -0
- package/lib/message-dialog.js +22 -0
- package/lib/monitor.d.ts +32 -0
- package/lib/monitor.h +143 -0
- package/lib/monitor.js +40 -0
- package/lib/native.h +31 -0
- package/lib/object.d.ts +18 -0
- package/lib/object.js +38 -0
- package/lib/paintable.d.ts +10 -0
- package/lib/paintable.js +3 -0
- package/lib/picture.d.ts +22 -0
- package/lib/picture.h +127 -0
- package/lib/picture.js +35 -0
- package/lib/reachable.js +11 -0
- package/lib/runtime.c +21 -4
- package/lib/scrolled-window.d.ts +22 -0
- package/lib/scrolled-window.h +142 -0
- package/lib/scrolled-window.js +37 -0
- package/lib/settings.d.ts +25 -0
- package/lib/settings.h +163 -0
- package/lib/settings.js +34 -0
- package/lib/spinner.d.ts +12 -0
- package/lib/spinner.h +61 -0
- package/lib/spinner.js +22 -0
- package/lib/style-context.d.ts +15 -0
- package/lib/style-context.h +67 -0
- package/lib/style-context.js +9 -0
- package/lib/surface.d.ts +19 -0
- package/lib/surface.h +61 -0
- package/lib/surface.js +22 -0
- package/lib/switch.d.ts +19 -0
- package/lib/switch.h +114 -0
- package/lib/switch.js +30 -0
- package/lib/text-buffer.d.ts +31 -0
- package/lib/text-buffer.h +246 -0
- package/lib/text-buffer.js +33 -0
- package/lib/text-view.d.ts +39 -0
- package/lib/text-view.h +247 -0
- package/lib/text-view.js +63 -0
- package/lib/text.d.ts +18 -0
- package/lib/text.h +189 -0
- package/lib/text.js +31 -0
- package/lib/texture.d.ts +20 -0
- package/lib/texture.h +100 -0
- package/lib/texture.js +17 -0
- package/lib/viewport.d.ts +22 -0
- package/lib/viewport.h +151 -0
- package/lib/viewport.js +38 -0
- package/lib/widget.d.ts +102 -0
- package/lib/widget.h +695 -17
- package/lib/widget.js +176 -11
- package/lib/window.d.ts +31 -0
- package/lib/window.h +142 -61
- package/lib/window.js +32 -11
- package/lib/wrap.js +7 -0
- package/package.json +12 -3
- package/prebuilds/linux-arm64/bare +2 -2
- package/prebuilds/linux-arm64/bare-gtk.bare +0 -0
- package/prebuilds/linux-x64/bare +2 -2
- package/prebuilds/linux-x64/bare-gtk.bare +0 -0
package/lib/viewport.h
ADDED
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
#ifndef BARE_GTK_VIEWPORT_H
|
|
2
|
+
#define BARE_GTK_VIEWPORT_H
|
|
3
|
+
|
|
4
|
+
#include <assert.h>
|
|
5
|
+
#include <js.h>
|
|
6
|
+
|
|
7
|
+
#include <gtk/gtk.h>
|
|
8
|
+
|
|
9
|
+
#include "bridging.h"
|
|
10
|
+
|
|
11
|
+
static js_value_t *
|
|
12
|
+
bare_gtk_viewport_init(js_env_t *env, js_callback_info_t *info) {
|
|
13
|
+
int err;
|
|
14
|
+
|
|
15
|
+
bare_gtk_state_t *state;
|
|
16
|
+
err = js_get_callback_info(env, info, NULL, NULL, NULL, (void **) &state);
|
|
17
|
+
assert(err == 0);
|
|
18
|
+
|
|
19
|
+
GtkWidget *viewport = gtk_viewport_new(NULL, NULL);
|
|
20
|
+
|
|
21
|
+
js_value_t *result;
|
|
22
|
+
err = js_create_uint32(env, bare_gobject_tag(state->registry, viewport), &result);
|
|
23
|
+
assert(err == 0);
|
|
24
|
+
|
|
25
|
+
return result;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
static js_value_t *
|
|
29
|
+
bare_gtk_viewport_child(js_env_t *env, js_callback_info_t *info) {
|
|
30
|
+
int err;
|
|
31
|
+
|
|
32
|
+
size_t argc = 2;
|
|
33
|
+
js_value_t *argv[2];
|
|
34
|
+
|
|
35
|
+
bare_gtk_state_t *state;
|
|
36
|
+
err = js_get_callback_info(env, info, &argc, argv, NULL, (void **) &state);
|
|
37
|
+
assert(err == 0);
|
|
38
|
+
|
|
39
|
+
assert(argc == 1 || argc == 2);
|
|
40
|
+
|
|
41
|
+
GtkViewport *viewport;
|
|
42
|
+
err = bare_gobject_read_tag(env, state->registry, argv[0], "viewport", (gpointer *) &viewport);
|
|
43
|
+
if (err < 0) return NULL;
|
|
44
|
+
|
|
45
|
+
if (argc == 1) {
|
|
46
|
+
GtkWidget *child = gtk_viewport_get_child(viewport);
|
|
47
|
+
|
|
48
|
+
js_value_t *result;
|
|
49
|
+
|
|
50
|
+
if (child == NULL) {
|
|
51
|
+
err = js_get_null(env, &result);
|
|
52
|
+
assert(err == 0);
|
|
53
|
+
} else {
|
|
54
|
+
err = js_create_uint32(env, bare_gobject_tag(state->registry, child), &result);
|
|
55
|
+
assert(err == 0);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return result;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
js_value_type_t type;
|
|
62
|
+
err = js_typeof(env, argv[1], &type);
|
|
63
|
+
assert(err == 0);
|
|
64
|
+
|
|
65
|
+
if (type == js_null) {
|
|
66
|
+
gtk_viewport_set_child(viewport, NULL);
|
|
67
|
+
|
|
68
|
+
return NULL;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
GtkWidget *child;
|
|
72
|
+
err = bare_gobject_read_tag(env, state->registry, argv[1], "child", (gpointer *) &child);
|
|
73
|
+
if (err < 0) return NULL;
|
|
74
|
+
|
|
75
|
+
gtk_viewport_set_child(viewport, child);
|
|
76
|
+
|
|
77
|
+
return NULL;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// The scroll policy decides whether the child gets its minimum size along an
|
|
81
|
+
// axis or the size it asked for. A child that reports a minimum of zero, as a
|
|
82
|
+
// placed layout does, has nothing to scroll by default.
|
|
83
|
+
static js_value_t *
|
|
84
|
+
bare_gtk_viewport_hscroll_policy(js_env_t *env, js_callback_info_t *info) {
|
|
85
|
+
int err;
|
|
86
|
+
|
|
87
|
+
size_t argc = 2;
|
|
88
|
+
js_value_t *argv[2];
|
|
89
|
+
|
|
90
|
+
bare_gtk_state_t *state;
|
|
91
|
+
err = js_get_callback_info(env, info, &argc, argv, NULL, (void **) &state);
|
|
92
|
+
assert(err == 0);
|
|
93
|
+
|
|
94
|
+
assert(argc == 1 || argc == 2);
|
|
95
|
+
|
|
96
|
+
GtkViewport *viewport;
|
|
97
|
+
err = bare_gobject_read_tag(env, state->registry, argv[0], "viewport", (gpointer *) &viewport);
|
|
98
|
+
if (err < 0) return NULL;
|
|
99
|
+
|
|
100
|
+
if (argc == 1) {
|
|
101
|
+
js_value_t *result;
|
|
102
|
+
err = js_create_uint32(env, gtk_scrollable_get_hscroll_policy(GTK_SCROLLABLE(viewport)), &result);
|
|
103
|
+
assert(err == 0);
|
|
104
|
+
|
|
105
|
+
return result;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
uint32_t policy;
|
|
109
|
+
err = bare_gtk__read_uint32(env, argv[1], "policy", &policy);
|
|
110
|
+
if (err < 0) return NULL;
|
|
111
|
+
|
|
112
|
+
gtk_scrollable_set_hscroll_policy(GTK_SCROLLABLE(viewport), policy);
|
|
113
|
+
|
|
114
|
+
return NULL;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
static js_value_t *
|
|
118
|
+
bare_gtk_viewport_vscroll_policy(js_env_t *env, js_callback_info_t *info) {
|
|
119
|
+
int err;
|
|
120
|
+
|
|
121
|
+
size_t argc = 2;
|
|
122
|
+
js_value_t *argv[2];
|
|
123
|
+
|
|
124
|
+
bare_gtk_state_t *state;
|
|
125
|
+
err = js_get_callback_info(env, info, &argc, argv, NULL, (void **) &state);
|
|
126
|
+
assert(err == 0);
|
|
127
|
+
|
|
128
|
+
assert(argc == 1 || argc == 2);
|
|
129
|
+
|
|
130
|
+
GtkViewport *viewport;
|
|
131
|
+
err = bare_gobject_read_tag(env, state->registry, argv[0], "viewport", (gpointer *) &viewport);
|
|
132
|
+
if (err < 0) return NULL;
|
|
133
|
+
|
|
134
|
+
if (argc == 1) {
|
|
135
|
+
js_value_t *result;
|
|
136
|
+
err = js_create_uint32(env, gtk_scrollable_get_vscroll_policy(GTK_SCROLLABLE(viewport)), &result);
|
|
137
|
+
assert(err == 0);
|
|
138
|
+
|
|
139
|
+
return result;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
uint32_t policy;
|
|
143
|
+
err = bare_gtk__read_uint32(env, argv[1], "policy", &policy);
|
|
144
|
+
if (err < 0) return NULL;
|
|
145
|
+
|
|
146
|
+
gtk_scrollable_set_vscroll_policy(GTK_SCROLLABLE(viewport), policy);
|
|
147
|
+
|
|
148
|
+
return NULL;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
#endif // BARE_GTK_VIEWPORT_H
|
package/lib/viewport.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
const binding = require('../binding')
|
|
2
|
+
const GTKWidget = require('./widget')
|
|
3
|
+
const wrap = require('./wrap')
|
|
4
|
+
const { hold, drop } = require('./reachable')
|
|
5
|
+
|
|
6
|
+
module.exports = exports = class GTKViewport extends GTKWidget {
|
|
7
|
+
_init() {
|
|
8
|
+
return binding.viewportInit()
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
get child() {
|
|
12
|
+
return wrap(GTKWidget, binding.viewportChild(this._tag))
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
set child(child) {
|
|
16
|
+
drop(this, this.child)
|
|
17
|
+
|
|
18
|
+
binding.viewportChild(this._tag, child === null ? null : child._tag)
|
|
19
|
+
|
|
20
|
+
hold(this, child)
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
get hscrollPolicy() {
|
|
24
|
+
return binding.viewportHscrollPolicy(this._tag)
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
set hscrollPolicy(policy) {
|
|
28
|
+
binding.viewportHscrollPolicy(this._tag, policy)
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
get vscrollPolicy() {
|
|
32
|
+
return binding.viewportVscrollPolicy(this._tag)
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
set vscrollPolicy(policy) {
|
|
36
|
+
binding.viewportVscrollPolicy(this._tag, policy)
|
|
37
|
+
}
|
|
38
|
+
}
|
package/lib/widget.d.ts
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import GObject = require('./object')
|
|
2
|
+
import GDKCursor = require('./cursor')
|
|
3
|
+
import GTKEventController = require('./event-controller')
|
|
4
|
+
import GTKLayoutManager = require('./layout-manager')
|
|
5
|
+
|
|
6
|
+
/** The base of every widget, as a `GtkWidget`. */
|
|
7
|
+
interface GTKWidget<M extends Record<keyof M, unknown[]> = {}> extends GObject<M> {
|
|
8
|
+
/** Whether the widget is shown. */
|
|
9
|
+
visible: boolean
|
|
10
|
+
|
|
11
|
+
/** How opaque the widget is, from 0 to 1. */
|
|
12
|
+
opacity: number
|
|
13
|
+
|
|
14
|
+
/** Whether content that does not fit is shown or clipped, as an `OVERFLOW_*` constant. */
|
|
15
|
+
overflow: number
|
|
16
|
+
|
|
17
|
+
/** The smallest size the widget asks for, as `[width, height]`. -1 means no request. */
|
|
18
|
+
get sizeRequest(): [width: number, height: number]
|
|
19
|
+
set sizeRequest(size: [width: number, height: number])
|
|
20
|
+
|
|
21
|
+
/** How many device pixels the widget has per logical pixel. */
|
|
22
|
+
readonly scaleFactor: number
|
|
23
|
+
|
|
24
|
+
/** The nearest widget above this one with a surface of its own, such as a window, or `null`. */
|
|
25
|
+
readonly native: GTKWidget | null
|
|
26
|
+
|
|
27
|
+
readonly parent: GTKWidget | null
|
|
28
|
+
|
|
29
|
+
readonly firstChild: GTKWidget | null
|
|
30
|
+
|
|
31
|
+
readonly lastChild: GTKWidget | null
|
|
32
|
+
|
|
33
|
+
readonly nextSibling: GTKWidget | null
|
|
34
|
+
|
|
35
|
+
readonly prevSibling: GTKWidget | null
|
|
36
|
+
|
|
37
|
+
/** What places the children of the widget, or `null` for the default of its type. */
|
|
38
|
+
layoutManager: GTKLayoutManager | null
|
|
39
|
+
|
|
40
|
+
/** The width the widget was given in the last layout. */
|
|
41
|
+
readonly width: number
|
|
42
|
+
|
|
43
|
+
/** The height the widget was given in the last layout. */
|
|
44
|
+
readonly height: number
|
|
45
|
+
|
|
46
|
+
/** Whether the widget can be the target of pointer events. */
|
|
47
|
+
canTarget: boolean
|
|
48
|
+
|
|
49
|
+
/** The cursor shown over the widget, or `null` for the cursor of its parent. */
|
|
50
|
+
cursor: GDKCursor | null
|
|
51
|
+
|
|
52
|
+
/** Whether the widget responds to input. */
|
|
53
|
+
sensitive: boolean
|
|
54
|
+
|
|
55
|
+
/** Move the keyboard focus to the widget. Returns whether it took it. */
|
|
56
|
+
grabFocus(): boolean
|
|
57
|
+
|
|
58
|
+
/** Set which widget in this root has the focus, or `null` to take it away from all of them. */
|
|
59
|
+
setRootFocus(widget: GTKWidget | null): this
|
|
60
|
+
|
|
61
|
+
addCssClass(name: string): this
|
|
62
|
+
|
|
63
|
+
removeCssClass(name: string): this
|
|
64
|
+
|
|
65
|
+
hasCssClass(name: string): boolean
|
|
66
|
+
|
|
67
|
+
/** Show the cursor called `name`, such as `'pointer'` or `'text'`. */
|
|
68
|
+
setCursorFromName(name: string): this
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Ask how big the widget wants to be along `orientation`, an `ORIENTATION_*` constant, given
|
|
72
|
+
* `forSize` along the other axis. -1, the default, means any size.
|
|
73
|
+
*/
|
|
74
|
+
measure(
|
|
75
|
+
orientation: number,
|
|
76
|
+
forSize?: number
|
|
77
|
+
): [minimum: number, natural: number, minimumBaseline: number, naturalBaseline: number]
|
|
78
|
+
|
|
79
|
+
/** The bounds of the widget in the coordinates of `target`, or `null` if they are unrelated. */
|
|
80
|
+
computeBounds(target: GTKWidget): [x: number, y: number, width: number, height: number] | null
|
|
81
|
+
|
|
82
|
+
/** Add the widget to `parent`, after `previousSibling`, or first when that is `null`. */
|
|
83
|
+
insertAfter(parent: GTKWidget, previousSibling?: GTKWidget | null): this
|
|
84
|
+
|
|
85
|
+
/** Add the widget to `parent`, before `nextSibling`, or last when that is `null`. */
|
|
86
|
+
insertBefore(parent: GTKWidget, nextSibling?: GTKWidget | null): this
|
|
87
|
+
|
|
88
|
+
/** Add a controller that reports input on the widget. Returns `controller`. */
|
|
89
|
+
addController<C extends GTKEventController<any>>(controller: C): C
|
|
90
|
+
|
|
91
|
+
/** Remove a controller added with `addController()`. Returns `controller`. */
|
|
92
|
+
removeController<C extends GTKEventController<any>>(controller: C): C
|
|
93
|
+
|
|
94
|
+
/** Remove the widget from its parent. */
|
|
95
|
+
unparent(): this
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
declare class GTKWidget<M extends Record<keyof M, unknown[]> = {}> {
|
|
99
|
+
protected constructor()
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export = GTKWidget
|