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
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export const ORIENTATION_HORIZONTAL: number
|
|
2
|
+
export const ORIENTATION_VERTICAL: number
|
|
3
|
+
export const OVERFLOW_VISIBLE: number
|
|
4
|
+
export const OVERFLOW_HIDDEN: number
|
|
5
|
+
export const WRAP_WORD: number
|
|
6
|
+
export const WRAP_CHAR: number
|
|
7
|
+
export const WRAP_WORD_CHAR: number
|
|
8
|
+
export const ELLIPSIZE_NONE: number
|
|
9
|
+
export const ELLIPSIZE_START: number
|
|
10
|
+
export const ELLIPSIZE_MIDDLE: number
|
|
11
|
+
export const ELLIPSIZE_END: number
|
|
12
|
+
export const JUSTIFY_LEFT: number
|
|
13
|
+
export const JUSTIFY_RIGHT: number
|
|
14
|
+
export const JUSTIFY_CENTER: number
|
|
15
|
+
export const JUSTIFY_FILL: number
|
|
16
|
+
export const STYLE_PROVIDER_PRIORITY_FALLBACK: number
|
|
17
|
+
export const STYLE_PROVIDER_PRIORITY_THEME: number
|
|
18
|
+
export const STYLE_PROVIDER_PRIORITY_SETTINGS: number
|
|
19
|
+
export const STYLE_PROVIDER_PRIORITY_APPLICATION: number
|
|
20
|
+
export const STYLE_PROVIDER_PRIORITY_USER: number
|
|
21
|
+
export const PROPAGATION_PHASE_NONE: number
|
|
22
|
+
export const PROPAGATION_PHASE_CAPTURE: number
|
|
23
|
+
export const PROPAGATION_PHASE_BUBBLE: number
|
|
24
|
+
export const PROPAGATION_PHASE_TARGET: number
|
|
25
|
+
export const EVENT_SEQUENCE_STATE_NONE: number
|
|
26
|
+
export const EVENT_SEQUENCE_STATE_CLAIMED: number
|
|
27
|
+
export const EVENT_SEQUENCE_STATE_DENIED: number
|
|
28
|
+
export const INPUT_SOURCE_MOUSE: number
|
|
29
|
+
export const INPUT_SOURCE_PEN: number
|
|
30
|
+
export const INPUT_SOURCE_KEYBOARD: number
|
|
31
|
+
export const INPUT_SOURCE_TOUCHSCREEN: number
|
|
32
|
+
export const INPUT_SOURCE_TOUCHPAD: number
|
|
33
|
+
export const INPUT_SOURCE_TRACKPOINT: number
|
|
34
|
+
export const INPUT_SOURCE_TABLET_PAD: number
|
|
35
|
+
export const POLICY_ALWAYS: number
|
|
36
|
+
export const POLICY_AUTOMATIC: number
|
|
37
|
+
export const POLICY_NEVER: number
|
|
38
|
+
export const POLICY_EXTERNAL: number
|
|
39
|
+
export const SCROLL_MINIMUM: number
|
|
40
|
+
export const SCROLL_NATURAL: number
|
package/lib/constants.js
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
const binding = require('../binding')
|
|
2
|
+
|
|
3
|
+
exports.ORIENTATION_HORIZONTAL = binding.ORIENTATION_HORIZONTAL
|
|
4
|
+
exports.ORIENTATION_VERTICAL = binding.ORIENTATION_VERTICAL
|
|
5
|
+
|
|
6
|
+
exports.OVERFLOW_VISIBLE = binding.OVERFLOW_VISIBLE
|
|
7
|
+
exports.OVERFLOW_HIDDEN = binding.OVERFLOW_HIDDEN
|
|
8
|
+
|
|
9
|
+
exports.WRAP_WORD = binding.WRAP_WORD
|
|
10
|
+
exports.WRAP_CHAR = binding.WRAP_CHAR
|
|
11
|
+
exports.WRAP_WORD_CHAR = binding.WRAP_WORD_CHAR
|
|
12
|
+
|
|
13
|
+
exports.ELLIPSIZE_NONE = binding.ELLIPSIZE_NONE
|
|
14
|
+
exports.ELLIPSIZE_START = binding.ELLIPSIZE_START
|
|
15
|
+
exports.ELLIPSIZE_MIDDLE = binding.ELLIPSIZE_MIDDLE
|
|
16
|
+
exports.ELLIPSIZE_END = binding.ELLIPSIZE_END
|
|
17
|
+
exports.JUSTIFY_LEFT = binding.JUSTIFY_LEFT
|
|
18
|
+
exports.JUSTIFY_RIGHT = binding.JUSTIFY_RIGHT
|
|
19
|
+
exports.JUSTIFY_CENTER = binding.JUSTIFY_CENTER
|
|
20
|
+
exports.JUSTIFY_FILL = binding.JUSTIFY_FILL
|
|
21
|
+
|
|
22
|
+
exports.STYLE_PROVIDER_PRIORITY_FALLBACK = binding.STYLE_PROVIDER_PRIORITY_FALLBACK
|
|
23
|
+
exports.STYLE_PROVIDER_PRIORITY_THEME = binding.STYLE_PROVIDER_PRIORITY_THEME
|
|
24
|
+
exports.STYLE_PROVIDER_PRIORITY_SETTINGS = binding.STYLE_PROVIDER_PRIORITY_SETTINGS
|
|
25
|
+
exports.STYLE_PROVIDER_PRIORITY_APPLICATION = binding.STYLE_PROVIDER_PRIORITY_APPLICATION
|
|
26
|
+
exports.STYLE_PROVIDER_PRIORITY_USER = binding.STYLE_PROVIDER_PRIORITY_USER
|
|
27
|
+
|
|
28
|
+
exports.PROPAGATION_PHASE_NONE = binding.PROPAGATION_PHASE_NONE
|
|
29
|
+
exports.PROPAGATION_PHASE_CAPTURE = binding.PROPAGATION_PHASE_CAPTURE
|
|
30
|
+
exports.PROPAGATION_PHASE_BUBBLE = binding.PROPAGATION_PHASE_BUBBLE
|
|
31
|
+
exports.PROPAGATION_PHASE_TARGET = binding.PROPAGATION_PHASE_TARGET
|
|
32
|
+
|
|
33
|
+
exports.EVENT_SEQUENCE_STATE_NONE = binding.EVENT_SEQUENCE_STATE_NONE
|
|
34
|
+
exports.EVENT_SEQUENCE_STATE_CLAIMED = binding.EVENT_SEQUENCE_STATE_CLAIMED
|
|
35
|
+
exports.EVENT_SEQUENCE_STATE_DENIED = binding.EVENT_SEQUENCE_STATE_DENIED
|
|
36
|
+
|
|
37
|
+
exports.INPUT_SOURCE_MOUSE = binding.INPUT_SOURCE_MOUSE
|
|
38
|
+
exports.INPUT_SOURCE_PEN = binding.INPUT_SOURCE_PEN
|
|
39
|
+
exports.INPUT_SOURCE_KEYBOARD = binding.INPUT_SOURCE_KEYBOARD
|
|
40
|
+
exports.INPUT_SOURCE_TOUCHSCREEN = binding.INPUT_SOURCE_TOUCHSCREEN
|
|
41
|
+
exports.INPUT_SOURCE_TOUCHPAD = binding.INPUT_SOURCE_TOUCHPAD
|
|
42
|
+
exports.INPUT_SOURCE_TRACKPOINT = binding.INPUT_SOURCE_TRACKPOINT
|
|
43
|
+
exports.INPUT_SOURCE_TABLET_PAD = binding.INPUT_SOURCE_TABLET_PAD
|
|
44
|
+
|
|
45
|
+
exports.POLICY_ALWAYS = binding.POLICY_ALWAYS
|
|
46
|
+
exports.POLICY_AUTOMATIC = binding.POLICY_AUTOMATIC
|
|
47
|
+
exports.POLICY_NEVER = binding.POLICY_NEVER
|
|
48
|
+
exports.POLICY_EXTERNAL = binding.POLICY_EXTERNAL
|
|
49
|
+
|
|
50
|
+
exports.SCROLL_MINIMUM = binding.SCROLL_MINIMUM
|
|
51
|
+
exports.SCROLL_NATURAL = binding.SCROLL_NATURAL
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import GObject = require('./object')
|
|
2
|
+
|
|
3
|
+
/** A style sheet, as a `GtkCssProvider`. Apply it with `StyleContext.addProviderForDisplay()`. */
|
|
4
|
+
interface GTKCssProvider extends GObject {
|
|
5
|
+
/** Load the style sheet from CSS source. */
|
|
6
|
+
loadFromData(data: string): this
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
declare class GTKCssProvider {
|
|
10
|
+
constructor()
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export = GTKCssProvider
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
#ifndef BARE_GTK_CSS_PROVIDER_H
|
|
2
|
+
#define BARE_GTK_CSS_PROVIDER_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_css_provider_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
|
+
GtkCssProvider *provider = gtk_css_provider_new();
|
|
20
|
+
|
|
21
|
+
js_value_t *result;
|
|
22
|
+
err = js_create_uint32(env, bare_gobject_tag(state->registry, provider), &result);
|
|
23
|
+
assert(err == 0);
|
|
24
|
+
|
|
25
|
+
return result;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
static js_value_t *
|
|
29
|
+
bare_gtk_css_provider_load_from_data(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 == 2);
|
|
40
|
+
|
|
41
|
+
GtkCssProvider *provider;
|
|
42
|
+
err = bare_gobject_read_tag(env, state->registry, argv[0], "cssProvider", (gpointer *) &provider);
|
|
43
|
+
if (err < 0) return NULL;
|
|
44
|
+
|
|
45
|
+
char *data;
|
|
46
|
+
err = bare_gtk__read_string(env, argv[1], "data", &data);
|
|
47
|
+
if (err < 0) return NULL;
|
|
48
|
+
|
|
49
|
+
gtk_css_provider_load_from_data(provider, data, -1);
|
|
50
|
+
|
|
51
|
+
g_free(data);
|
|
52
|
+
|
|
53
|
+
return NULL;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
#endif // BARE_GTK_CSS_PROVIDER_H
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
const binding = require('../binding')
|
|
2
|
+
const GObject = require('./object')
|
|
3
|
+
|
|
4
|
+
module.exports = exports = class GTKCssProvider extends GObject {
|
|
5
|
+
_init(opts) {
|
|
6
|
+
return binding.cssProviderInit()
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
loadFromData(data) {
|
|
10
|
+
binding.cssProviderLoadFromData(this._tag, data)
|
|
11
|
+
|
|
12
|
+
return this
|
|
13
|
+
}
|
|
14
|
+
}
|
package/lib/cursor.d.ts
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import GObject = require('./object')
|
|
2
|
+
import GDKTexture = require('./texture')
|
|
3
|
+
|
|
4
|
+
/** A mouse cursor, as a `GdkCursor`. */
|
|
5
|
+
interface GDKCursor extends GObject {
|
|
6
|
+
readonly name: string | null
|
|
7
|
+
|
|
8
|
+
readonly fallback: GDKCursor | null
|
|
9
|
+
|
|
10
|
+
readonly texture: GDKTexture | null
|
|
11
|
+
|
|
12
|
+
readonly hotspotX: number
|
|
13
|
+
|
|
14
|
+
readonly hotspotY: number
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
declare class GDKCursor {
|
|
18
|
+
protected constructor()
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Create the cursor called `name`, such as `'pointer'`. `fallback` is shown where that cursor
|
|
22
|
+
* does not exist.
|
|
23
|
+
*/
|
|
24
|
+
static newFromName(name: string, fallback?: GDKCursor | null): GDKCursor | null
|
|
25
|
+
|
|
26
|
+
/** Create a cursor from a texture, with its hotspot at `hotspotX`, `hotspotY`. */
|
|
27
|
+
static newFromTexture(
|
|
28
|
+
texture: GDKTexture,
|
|
29
|
+
hotspotX: number,
|
|
30
|
+
hotspotY: number,
|
|
31
|
+
fallback?: GDKCursor | null
|
|
32
|
+
): GDKCursor | null
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export = GDKCursor
|
package/lib/cursor.h
ADDED
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
#ifndef BARE_GTK_CURSOR_H
|
|
2
|
+
#define BARE_GTK_CURSOR_H
|
|
3
|
+
|
|
4
|
+
#include <assert.h>
|
|
5
|
+
#include <js.h>
|
|
6
|
+
#include <utf.h>
|
|
7
|
+
|
|
8
|
+
#include <gtk/gtk.h>
|
|
9
|
+
|
|
10
|
+
#include "bridging.h"
|
|
11
|
+
|
|
12
|
+
// A new cursor is not floating, so the registry takes its own reference and the
|
|
13
|
+
// one from this call is dropped.
|
|
14
|
+
static js_value_t *
|
|
15
|
+
bare_gtk_cursor_new_from_name(js_env_t *env, js_callback_info_t *info) {
|
|
16
|
+
int err;
|
|
17
|
+
|
|
18
|
+
size_t argc = 2;
|
|
19
|
+
js_value_t *argv[2];
|
|
20
|
+
|
|
21
|
+
bare_gtk_state_t *state;
|
|
22
|
+
err = js_get_callback_info(env, info, &argc, argv, NULL, (void **) &state);
|
|
23
|
+
assert(err == 0);
|
|
24
|
+
|
|
25
|
+
assert(argc == 2);
|
|
26
|
+
|
|
27
|
+
char *name;
|
|
28
|
+
err = bare_gtk__read_string(env, argv[0], "name", &name);
|
|
29
|
+
if (err < 0) return NULL;
|
|
30
|
+
|
|
31
|
+
GdkCursor *fallback;
|
|
32
|
+
err = bare_gtk__read_tag_or_null(env, state->registry, argv[1], "fallback", (gpointer *) &fallback);
|
|
33
|
+
if (err < 0) {
|
|
34
|
+
g_free(name);
|
|
35
|
+
|
|
36
|
+
return NULL;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
GdkCursor *cursor = gdk_cursor_new_from_name(name, fallback);
|
|
40
|
+
|
|
41
|
+
g_free(name);
|
|
42
|
+
|
|
43
|
+
js_value_t *result;
|
|
44
|
+
|
|
45
|
+
if (cursor == NULL) {
|
|
46
|
+
err = js_get_null(env, &result);
|
|
47
|
+
assert(err == 0);
|
|
48
|
+
|
|
49
|
+
return result;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
err = js_create_uint32(env, bare_gobject_tag(state->registry, cursor), &result);
|
|
53
|
+
assert(err == 0);
|
|
54
|
+
|
|
55
|
+
g_object_unref(cursor);
|
|
56
|
+
|
|
57
|
+
return result;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
static js_value_t *
|
|
61
|
+
bare_gtk_cursor_new_from_texture(js_env_t *env, js_callback_info_t *info) {
|
|
62
|
+
int err;
|
|
63
|
+
|
|
64
|
+
size_t argc = 4;
|
|
65
|
+
js_value_t *argv[4];
|
|
66
|
+
|
|
67
|
+
bare_gtk_state_t *state;
|
|
68
|
+
err = js_get_callback_info(env, info, &argc, argv, NULL, (void **) &state);
|
|
69
|
+
assert(err == 0);
|
|
70
|
+
|
|
71
|
+
assert(argc == 4);
|
|
72
|
+
|
|
73
|
+
GdkTexture *texture;
|
|
74
|
+
err = bare_gobject_read_tag(env, state->registry, argv[0], "texture", (gpointer *) &texture);
|
|
75
|
+
if (err < 0) return NULL;
|
|
76
|
+
|
|
77
|
+
int32_t hotspot_x;
|
|
78
|
+
err = bare_gtk__read_int32(env, argv[1], "hotspot_x", &hotspot_x);
|
|
79
|
+
if (err < 0) return NULL;
|
|
80
|
+
|
|
81
|
+
int32_t hotspot_y;
|
|
82
|
+
err = bare_gtk__read_int32(env, argv[2], "hotspot_y", &hotspot_y);
|
|
83
|
+
if (err < 0) return NULL;
|
|
84
|
+
|
|
85
|
+
GdkCursor *fallback;
|
|
86
|
+
err = bare_gtk__read_tag_or_null(env, state->registry, argv[3], "fallback", (gpointer *) &fallback);
|
|
87
|
+
if (err < 0) return NULL;
|
|
88
|
+
|
|
89
|
+
GdkCursor *cursor = gdk_cursor_new_from_texture(texture, hotspot_x, hotspot_y, fallback);
|
|
90
|
+
|
|
91
|
+
js_value_t *result;
|
|
92
|
+
err = js_create_uint32(env, bare_gobject_tag(state->registry, cursor), &result);
|
|
93
|
+
assert(err == 0);
|
|
94
|
+
|
|
95
|
+
g_object_unref(cursor);
|
|
96
|
+
|
|
97
|
+
return result;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
static js_value_t *
|
|
101
|
+
bare_gtk_cursor_name(js_env_t *env, js_callback_info_t *info) {
|
|
102
|
+
int err;
|
|
103
|
+
|
|
104
|
+
size_t argc = 1;
|
|
105
|
+
js_value_t *argv[1];
|
|
106
|
+
|
|
107
|
+
bare_gtk_state_t *state;
|
|
108
|
+
err = js_get_callback_info(env, info, &argc, argv, NULL, (void **) &state);
|
|
109
|
+
assert(err == 0);
|
|
110
|
+
|
|
111
|
+
assert(argc == 1);
|
|
112
|
+
|
|
113
|
+
GdkCursor *cursor;
|
|
114
|
+
err = bare_gobject_read_tag(env, state->registry, argv[0], "cursor", (gpointer *) &cursor);
|
|
115
|
+
if (err < 0) return NULL;
|
|
116
|
+
|
|
117
|
+
const char *name = gdk_cursor_get_name(cursor);
|
|
118
|
+
|
|
119
|
+
js_value_t *result;
|
|
120
|
+
|
|
121
|
+
if (name == NULL) {
|
|
122
|
+
err = js_get_null(env, &result);
|
|
123
|
+
assert(err == 0);
|
|
124
|
+
} else {
|
|
125
|
+
err = js_create_string_utf8(env, (const utf8_t *) name, (size_t) -1, &result);
|
|
126
|
+
assert(err == 0);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
return result;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
static js_value_t *
|
|
133
|
+
bare_gtk_cursor_fallback(js_env_t *env, js_callback_info_t *info) {
|
|
134
|
+
int err;
|
|
135
|
+
|
|
136
|
+
size_t argc = 1;
|
|
137
|
+
js_value_t *argv[1];
|
|
138
|
+
|
|
139
|
+
bare_gtk_state_t *state;
|
|
140
|
+
err = js_get_callback_info(env, info, &argc, argv, NULL, (void **) &state);
|
|
141
|
+
assert(err == 0);
|
|
142
|
+
|
|
143
|
+
assert(argc == 1);
|
|
144
|
+
|
|
145
|
+
GdkCursor *cursor;
|
|
146
|
+
err = bare_gobject_read_tag(env, state->registry, argv[0], "cursor", (gpointer *) &cursor);
|
|
147
|
+
if (err < 0) return NULL;
|
|
148
|
+
|
|
149
|
+
return bare_gtk__create_tag(env, state, gdk_cursor_get_fallback(cursor));
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
static js_value_t *
|
|
153
|
+
bare_gtk_cursor_texture(js_env_t *env, js_callback_info_t *info) {
|
|
154
|
+
int err;
|
|
155
|
+
|
|
156
|
+
size_t argc = 1;
|
|
157
|
+
js_value_t *argv[1];
|
|
158
|
+
|
|
159
|
+
bare_gtk_state_t *state;
|
|
160
|
+
err = js_get_callback_info(env, info, &argc, argv, NULL, (void **) &state);
|
|
161
|
+
assert(err == 0);
|
|
162
|
+
|
|
163
|
+
assert(argc == 1);
|
|
164
|
+
|
|
165
|
+
GdkCursor *cursor;
|
|
166
|
+
err = bare_gobject_read_tag(env, state->registry, argv[0], "cursor", (gpointer *) &cursor);
|
|
167
|
+
if (err < 0) return NULL;
|
|
168
|
+
|
|
169
|
+
return bare_gtk__create_tag(env, state, gdk_cursor_get_texture(cursor));
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
static js_value_t *
|
|
173
|
+
bare_gtk_cursor_hotspot_x(js_env_t *env, js_callback_info_t *info) {
|
|
174
|
+
int err;
|
|
175
|
+
|
|
176
|
+
size_t argc = 1;
|
|
177
|
+
js_value_t *argv[1];
|
|
178
|
+
|
|
179
|
+
bare_gtk_state_t *state;
|
|
180
|
+
err = js_get_callback_info(env, info, &argc, argv, NULL, (void **) &state);
|
|
181
|
+
assert(err == 0);
|
|
182
|
+
|
|
183
|
+
assert(argc == 1);
|
|
184
|
+
|
|
185
|
+
GdkCursor *cursor;
|
|
186
|
+
err = bare_gobject_read_tag(env, state->registry, argv[0], "cursor", (gpointer *) &cursor);
|
|
187
|
+
if (err < 0) return NULL;
|
|
188
|
+
|
|
189
|
+
js_value_t *result;
|
|
190
|
+
err = js_create_int32(env, gdk_cursor_get_hotspot_x(cursor), &result);
|
|
191
|
+
assert(err == 0);
|
|
192
|
+
|
|
193
|
+
return result;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
static js_value_t *
|
|
197
|
+
bare_gtk_cursor_hotspot_y(js_env_t *env, js_callback_info_t *info) {
|
|
198
|
+
int err;
|
|
199
|
+
|
|
200
|
+
size_t argc = 1;
|
|
201
|
+
js_value_t *argv[1];
|
|
202
|
+
|
|
203
|
+
bare_gtk_state_t *state;
|
|
204
|
+
err = js_get_callback_info(env, info, &argc, argv, NULL, (void **) &state);
|
|
205
|
+
assert(err == 0);
|
|
206
|
+
|
|
207
|
+
assert(argc == 1);
|
|
208
|
+
|
|
209
|
+
GdkCursor *cursor;
|
|
210
|
+
err = bare_gobject_read_tag(env, state->registry, argv[0], "cursor", (gpointer *) &cursor);
|
|
211
|
+
if (err < 0) return NULL;
|
|
212
|
+
|
|
213
|
+
js_value_t *result;
|
|
214
|
+
err = js_create_int32(env, gdk_cursor_get_hotspot_y(cursor), &result);
|
|
215
|
+
assert(err == 0);
|
|
216
|
+
|
|
217
|
+
return result;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
#endif // BARE_GTK_CURSOR_H
|
package/lib/cursor.js
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
const binding = require('../binding')
|
|
2
|
+
const wrap = require('./wrap')
|
|
3
|
+
const GObject = require('./object')
|
|
4
|
+
const GDKTexture = require('./texture')
|
|
5
|
+
|
|
6
|
+
module.exports = exports = class GDKCursor extends GObject {
|
|
7
|
+
static newFromName(name, fallback = null) {
|
|
8
|
+
return wrap(
|
|
9
|
+
GDKCursor,
|
|
10
|
+
binding.cursorNewFromName(name, fallback === null ? null : fallback._tag)
|
|
11
|
+
)
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
static newFromTexture(texture, hotspotX, hotspotY, fallback = null) {
|
|
15
|
+
return wrap(
|
|
16
|
+
GDKCursor,
|
|
17
|
+
binding.cursorNewFromTexture(
|
|
18
|
+
texture._tag,
|
|
19
|
+
hotspotX,
|
|
20
|
+
hotspotY,
|
|
21
|
+
fallback === null ? null : fallback._tag
|
|
22
|
+
)
|
|
23
|
+
)
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
get name() {
|
|
27
|
+
return binding.cursorName(this._tag)
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
get fallback() {
|
|
31
|
+
return wrap(GDKCursor, binding.cursorFallback(this._tag))
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
get texture() {
|
|
35
|
+
return wrap(GDKTexture, binding.cursorTexture(this._tag))
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
get hotspotX() {
|
|
39
|
+
return binding.cursorHotspotX(this._tag)
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
get hotspotY() {
|
|
43
|
+
return binding.cursorHotspotY(this._tag)
|
|
44
|
+
}
|
|
45
|
+
}
|
package/lib/device.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import GObject = require('./object')
|
|
2
|
+
|
|
3
|
+
/** An input device, as a `GdkDevice`. */
|
|
4
|
+
interface GTKDevice extends GObject {
|
|
5
|
+
/** What kind of device it is, as an `INPUT_SOURCE_*` constant. */
|
|
6
|
+
readonly source: number
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
declare class GTKDevice {
|
|
10
|
+
protected constructor()
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export = GTKDevice
|
package/lib/device.h
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
#ifndef BARE_GTK_DEVICE_H
|
|
2
|
+
#define BARE_GTK_DEVICE_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_device_source(js_env_t *env, js_callback_info_t *info) {
|
|
13
|
+
int err;
|
|
14
|
+
|
|
15
|
+
size_t argc = 1;
|
|
16
|
+
js_value_t *argv[1];
|
|
17
|
+
|
|
18
|
+
bare_gtk_state_t *state;
|
|
19
|
+
err = js_get_callback_info(env, info, &argc, argv, NULL, (void **) &state);
|
|
20
|
+
assert(err == 0);
|
|
21
|
+
|
|
22
|
+
assert(argc == 1);
|
|
23
|
+
|
|
24
|
+
GdkDevice *device;
|
|
25
|
+
err = bare_gobject_read_tag(env, state->registry, argv[0], "device", (gpointer *) &device);
|
|
26
|
+
if (err < 0) return NULL;
|
|
27
|
+
|
|
28
|
+
js_value_t *result;
|
|
29
|
+
err = js_create_uint32(env, gdk_device_get_source(device), &result);
|
|
30
|
+
assert(err == 0);
|
|
31
|
+
|
|
32
|
+
return result;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
#endif // BARE_GTK_DEVICE_H
|
package/lib/device.js
ADDED
package/lib/dialog.d.ts
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import GTKWidget = require('./widget')
|
|
2
|
+
|
|
3
|
+
/** A dialog window, as a `GtkDialog`. */
|
|
4
|
+
interface GTKDialog<M extends Record<keyof M, unknown[]> = GTKDialog.Events> extends GTKWidget<M> {
|
|
5
|
+
/**
|
|
6
|
+
* Add a button that closes the dialog with `response`. Use 0 and up for your own buttons; the
|
|
7
|
+
* negative values are the `RESPONSE` constants. Returns the button.
|
|
8
|
+
*/
|
|
9
|
+
addButton(label: string, response: number): GTKWidget
|
|
10
|
+
|
|
11
|
+
/** Close the dialog with `response`, as if a button with that response was pressed. */
|
|
12
|
+
response(response: number): this
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
declare class GTKDialog<M extends Record<keyof M, unknown[]> = GTKDialog.Events> {
|
|
16
|
+
protected constructor()
|
|
17
|
+
|
|
18
|
+
/** The responses GTK defines. They are all negative. */
|
|
19
|
+
static readonly RESPONSE: {
|
|
20
|
+
readonly NONE: number
|
|
21
|
+
readonly REJECT: number
|
|
22
|
+
readonly ACCEPT: number
|
|
23
|
+
readonly DELETE_EVENT: number
|
|
24
|
+
readonly OK: number
|
|
25
|
+
readonly CANCEL: number
|
|
26
|
+
readonly CLOSE: number
|
|
27
|
+
readonly YES: number
|
|
28
|
+
readonly NO: number
|
|
29
|
+
readonly APPLY: number
|
|
30
|
+
readonly HELP: number
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
declare namespace GTKDialog {
|
|
35
|
+
export interface Events {
|
|
36
|
+
/** A button was pressed or the dialog was closed. */
|
|
37
|
+
response: [response: number]
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export = GTKDialog
|
package/lib/dialog.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
const binding = require('../binding')
|
|
2
|
+
const wrap = require('./wrap')
|
|
3
|
+
const GTKWidget = require('./widget')
|
|
4
|
+
|
|
5
|
+
module.exports = exports = class GTKDialog extends GTKWidget {
|
|
6
|
+
static _events = {
|
|
7
|
+
response: binding.DIALOG_EVENT_RESPONSE
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
_eventMask(mask) {
|
|
11
|
+
binding.dialogEventMask(this._tag, mask)
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
addButton(label, response) {
|
|
15
|
+
return wrap(GTKWidget, binding.dialogAddButton(this._tag, label, response))
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
response(response) {
|
|
19
|
+
binding.dialogResponse(this._tag, response)
|
|
20
|
+
|
|
21
|
+
return this
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
exports.RESPONSE = {
|
|
26
|
+
NONE: binding.DIALOG_RESPONSE_NONE,
|
|
27
|
+
REJECT: binding.DIALOG_RESPONSE_REJECT,
|
|
28
|
+
ACCEPT: binding.DIALOG_RESPONSE_ACCEPT,
|
|
29
|
+
DELETE_EVENT: binding.DIALOG_RESPONSE_DELETE_EVENT,
|
|
30
|
+
OK: binding.DIALOG_RESPONSE_OK,
|
|
31
|
+
CANCEL: binding.DIALOG_RESPONSE_CANCEL,
|
|
32
|
+
CLOSE: binding.DIALOG_RESPONSE_CLOSE,
|
|
33
|
+
YES: binding.DIALOG_RESPONSE_YES,
|
|
34
|
+
NO: binding.DIALOG_RESPONSE_NO,
|
|
35
|
+
APPLY: binding.DIALOG_RESPONSE_APPLY,
|
|
36
|
+
HELP: binding.DIALOG_RESPONSE_HELP
|
|
37
|
+
}
|
package/lib/display.d.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import GObject = require('./object')
|
|
2
|
+
import GDKClipboard = require('./clipboard')
|
|
3
|
+
import GDKMonitor = require('./monitor')
|
|
4
|
+
import GDKSurface = require('./surface')
|
|
5
|
+
|
|
6
|
+
/** A connection to the display server, as a `GdkDisplay`. */
|
|
7
|
+
interface GDKDisplay extends GObject {
|
|
8
|
+
/** The monitor that most of `surface` is on, or `null`. */
|
|
9
|
+
getMonitorAtSurface(surface: GDKSurface): GDKMonitor | null
|
|
10
|
+
|
|
11
|
+
/** The clipboard used for copy and paste. */
|
|
12
|
+
getClipboard(): GDKClipboard
|
|
13
|
+
|
|
14
|
+
/** The selection that middle click pastes. */
|
|
15
|
+
getPrimaryClipboard(): GDKClipboard
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
declare class GDKDisplay {
|
|
19
|
+
protected constructor()
|
|
20
|
+
|
|
21
|
+
/** The display the app opened, or `null` before GTK is initialised. */
|
|
22
|
+
static getDefault(): GDKDisplay | null
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export = GDKDisplay
|