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.
Files changed (135) hide show
  1. package/CMakeLists.txt +16 -2
  2. package/README.md +35 -1
  3. package/binding.c +350 -1
  4. package/index.d.ts +65 -0
  5. package/index.js +32 -0
  6. package/lib/adjustment.d.ts +21 -0
  7. package/lib/adjustment.h +112 -0
  8. package/lib/adjustment.js +24 -0
  9. package/lib/bridging.h +347 -0
  10. package/lib/clipboard.d.ts +22 -0
  11. package/lib/clipboard.h +176 -0
  12. package/lib/clipboard.js +18 -0
  13. package/lib/constants.d.ts +40 -0
  14. package/lib/constants.js +51 -0
  15. package/lib/css-provider.d.ts +13 -0
  16. package/lib/css-provider.h +56 -0
  17. package/lib/css-provider.js +14 -0
  18. package/lib/cursor.d.ts +35 -0
  19. package/lib/cursor.h +220 -0
  20. package/lib/cursor.js +45 -0
  21. package/lib/device.d.ts +13 -0
  22. package/lib/device.h +35 -0
  23. package/lib/device.js +8 -0
  24. package/lib/dialog.d.ts +41 -0
  25. package/lib/dialog.js +37 -0
  26. package/lib/display.d.ts +25 -0
  27. package/lib/display.h +86 -0
  28. package/lib/display.js +23 -0
  29. package/lib/editable.h +160 -0
  30. package/lib/entry.d.ts +93 -0
  31. package/lib/entry.h +340 -0
  32. package/lib/entry.js +118 -0
  33. package/lib/event-controller-focus.d.ts +17 -0
  34. package/lib/event-controller-focus.h +55 -0
  35. package/lib/event-controller-focus.js +13 -0
  36. package/lib/event-controller-motion.d.ts +18 -0
  37. package/lib/event-controller-motion.h +66 -0
  38. package/lib/event-controller-motion.js +14 -0
  39. package/lib/event-controller.d.ts +17 -0
  40. package/lib/event-controller.h +103 -0
  41. package/lib/event-controller.js +22 -0
  42. package/lib/events.js +23 -0
  43. package/lib/fixed.d.ts +10 -0
  44. package/lib/fixed.h +28 -0
  45. package/lib/fixed.js +8 -0
  46. package/lib/frame-fixed.d.ts +10 -0
  47. package/lib/frame-fixed.js +12 -0
  48. package/lib/frame-layout-child.d.ts +17 -0
  49. package/lib/frame-layout-child.js +16 -0
  50. package/lib/frame-layout.d.ts +27 -0
  51. package/lib/frame-layout.h +291 -0
  52. package/lib/frame-layout.js +19 -0
  53. package/lib/gesture-click.d.ts +19 -0
  54. package/lib/gesture-click.h +66 -0
  55. package/lib/gesture-click.js +14 -0
  56. package/lib/gesture-drag.d.ts +25 -0
  57. package/lib/gesture-drag.h +165 -0
  58. package/lib/gesture-drag.js +23 -0
  59. package/lib/gesture-single.d.ts +13 -0
  60. package/lib/gesture-single.js +12 -0
  61. package/lib/gesture.d.ts +13 -0
  62. package/lib/gesture.h +73 -0
  63. package/lib/gesture.js +8 -0
  64. package/lib/handle.d.ts +5 -0
  65. package/lib/handle.js +6 -0
  66. package/lib/label.d.ts +36 -0
  67. package/lib/label.h +269 -0
  68. package/lib/label.js +78 -0
  69. package/lib/layout-child.d.ts +13 -0
  70. package/lib/layout-child.h +35 -0
  71. package/lib/layout-child.js +10 -0
  72. package/lib/layout-manager.d.ts +15 -0
  73. package/lib/layout-manager.h +42 -0
  74. package/lib/layout-manager.js +15 -0
  75. package/lib/message-dialog.d.ts +26 -0
  76. package/lib/message-dialog.h +190 -0
  77. package/lib/message-dialog.js +22 -0
  78. package/lib/monitor.d.ts +32 -0
  79. package/lib/monitor.h +143 -0
  80. package/lib/monitor.js +40 -0
  81. package/lib/native.h +31 -0
  82. package/lib/object.d.ts +18 -0
  83. package/lib/object.js +38 -0
  84. package/lib/paintable.d.ts +10 -0
  85. package/lib/paintable.js +3 -0
  86. package/lib/picture.d.ts +22 -0
  87. package/lib/picture.h +127 -0
  88. package/lib/picture.js +35 -0
  89. package/lib/reachable.js +11 -0
  90. package/lib/runtime.c +21 -4
  91. package/lib/scrolled-window.d.ts +22 -0
  92. package/lib/scrolled-window.h +142 -0
  93. package/lib/scrolled-window.js +37 -0
  94. package/lib/settings.d.ts +25 -0
  95. package/lib/settings.h +163 -0
  96. package/lib/settings.js +34 -0
  97. package/lib/spinner.d.ts +12 -0
  98. package/lib/spinner.h +61 -0
  99. package/lib/spinner.js +22 -0
  100. package/lib/style-context.d.ts +15 -0
  101. package/lib/style-context.h +67 -0
  102. package/lib/style-context.js +9 -0
  103. package/lib/surface.d.ts +19 -0
  104. package/lib/surface.h +61 -0
  105. package/lib/surface.js +22 -0
  106. package/lib/switch.d.ts +19 -0
  107. package/lib/switch.h +114 -0
  108. package/lib/switch.js +30 -0
  109. package/lib/text-buffer.d.ts +31 -0
  110. package/lib/text-buffer.h +246 -0
  111. package/lib/text-buffer.js +33 -0
  112. package/lib/text-view.d.ts +39 -0
  113. package/lib/text-view.h +247 -0
  114. package/lib/text-view.js +63 -0
  115. package/lib/text.d.ts +18 -0
  116. package/lib/text.h +189 -0
  117. package/lib/text.js +31 -0
  118. package/lib/texture.d.ts +20 -0
  119. package/lib/texture.h +100 -0
  120. package/lib/texture.js +17 -0
  121. package/lib/viewport.d.ts +22 -0
  122. package/lib/viewport.h +151 -0
  123. package/lib/viewport.js +38 -0
  124. package/lib/widget.d.ts +102 -0
  125. package/lib/widget.h +695 -17
  126. package/lib/widget.js +176 -11
  127. package/lib/window.d.ts +31 -0
  128. package/lib/window.h +142 -61
  129. package/lib/window.js +32 -11
  130. package/lib/wrap.js +7 -0
  131. package/package.json +12 -3
  132. package/prebuilds/linux-arm64/bare +2 -2
  133. package/prebuilds/linux-arm64/bare-gtk.bare +0 -0
  134. package/prebuilds/linux-x64/bare +2 -2
  135. package/prebuilds/linux-x64/bare-gtk.bare +0 -0
package/CMakeLists.txt CHANGED
@@ -7,10 +7,18 @@ find_package(PkgConfig REQUIRED)
7
7
 
8
8
  project(bare_gtk C)
9
9
 
10
- fetch_package("github:holepunchto/bare@1.29.4")
10
+ fetch_package("github:holepunchto/bare@1.33.5")
11
11
  fetch_package("github:holepunchto/libpath")
12
12
 
13
- pkg_check_modules(GTK REQUIRED IMPORTED_TARGET GLOBAL gtk4)
13
+ pkg_check_modules(GTK REQUIRED IMPORTED_TARGET GLOBAL gtk4>=4.6)
14
+
15
+ # The version the prebuilds are built against.
16
+ target_compile_definitions(
17
+ PkgConfig::GTK
18
+ INTERFACE
19
+ GDK_VERSION_MIN_REQUIRED=GDK_VERSION_4_6
20
+ GDK_VERSION_MAX_ALLOWED=GDK_VERSION_4_6
21
+ )
14
22
 
15
23
  add_bare_module(bare_gtk)
16
24
 
@@ -20,6 +28,12 @@ target_sources(
20
28
  binding.c
21
29
  )
22
30
 
31
+ target_include_directories(
32
+ ${bare_gtk}
33
+ PRIVATE
34
+ node_modules/bare-gobject-registry/lib
35
+ )
36
+
23
37
  target_link_libraries(
24
38
  ${bare_gtk}
25
39
  PUBLIC
package/README.md CHANGED
@@ -1,11 +1,45 @@
1
1
  # bare-gtk
2
2
 
3
- GTK bindings and runtime for Bare.
3
+ GTK 4 for Bare on Linux. It gives you GTK widgets in JavaScript, along with a runtime that starts GTK for you, so a Bare app can have a native Linux window.
4
4
 
5
5
  ```
6
6
  npm i bare-gtk
7
7
  ```
8
8
 
9
+ ## Usage
10
+
11
+ ```js
12
+ const { Window, Label, GestureClick } = require('bare-gtk')
13
+
14
+ const window = new Window()
15
+
16
+ window.title = 'Hello'
17
+ window.defaultSize = [400, 300]
18
+
19
+ const label = new Label()
20
+
21
+ label.text = 'Click me'
22
+
23
+ const click = label.addController(new GestureClick())
24
+
25
+ let clicks = 0
26
+
27
+ click.on('pressed', () => {
28
+ label.text = `Clicked ${++clicks} times`
29
+ })
30
+
31
+ window.child = label
32
+ window.visible = true
33
+ ```
34
+
35
+ Build the app with `bare-build` and this runtime. GTK needs an application ID, which `--identifier` sets:
36
+
37
+ ```console
38
+ bare-build --host linux-x64 --runtime bare-gtk/runtime --identifier com.example.Hello index.js
39
+ ```
40
+
41
+ Objects that have events, such as windows, entries and gestures, emit them as ordinary events. GTK is only asked to report an event while something listens to it.
42
+
9
43
  ## License
10
44
 
11
45
  Apache-2.0
package/binding.c CHANGED
@@ -5,6 +5,41 @@
5
5
 
6
6
  #include <gtk/gtk.h>
7
7
 
8
+ #include "lib/bridging.h"
9
+ #include "lib/css-provider.h"
10
+ #include "lib/cursor.h"
11
+ #include "lib/clipboard.h"
12
+ #include "lib/display.h"
13
+ #include "lib/message-dialog.h"
14
+ #include "lib/monitor.h"
15
+ #include "lib/native.h"
16
+ #include "lib/surface.h"
17
+ #include "lib/fixed.h"
18
+ #include "lib/frame-layout.h"
19
+ #include "lib/editable.h"
20
+ #include "lib/entry.h"
21
+ #include "lib/spinner.h"
22
+ #include "lib/switch.h"
23
+ #include "lib/text-buffer.h"
24
+ #include "lib/text-view.h"
25
+ #include "lib/label.h"
26
+ #include "lib/layout-child.h"
27
+ #include "lib/layout-manager.h"
28
+ #include "lib/picture.h"
29
+ #include "lib/style-context.h"
30
+ #include "lib/texture.h"
31
+ #include "lib/text.h"
32
+ #include "lib/adjustment.h"
33
+ #include "lib/device.h"
34
+ #include "lib/event-controller-focus.h"
35
+ #include "lib/event-controller-motion.h"
36
+ #include "lib/event-controller.h"
37
+ #include "lib/gesture-click.h"
38
+ #include "lib/gesture-drag.h"
39
+ #include "lib/gesture.h"
40
+ #include "lib/settings.h"
41
+ #include "lib/scrolled-window.h"
42
+ #include "lib/viewport.h"
8
43
  #include "lib/widget.h"
9
44
  #include "lib/window.h"
10
45
 
@@ -12,21 +47,223 @@ static js_value_t *
12
47
  bare_gtk_exports(js_env_t *env, js_value_t *exports) {
13
48
  int err;
14
49
 
50
+ bare_gtk_state_t *state = bare_gtk_state_create(env, exports);
51
+
15
52
  #define V(name, fn) \
16
53
  { \
17
54
  js_value_t *val; \
18
- err = js_create_function(env, name, -1, fn, NULL, &val); \
55
+ err = js_create_function(env, name, -1, fn, state, &val); \
19
56
  assert(err == 0); \
20
57
  err = js_set_named_property(env, exports, name, val); \
21
58
  assert(err == 0); \
22
59
  }
23
60
 
61
+ // The registry's own functions take the registry, not the state around it.
62
+ #define R(name, fn) \
63
+ { \
64
+ js_value_t *val; \
65
+ err = js_create_function(env, name, -1, fn, state->registry, &val); \
66
+ assert(err == 0); \
67
+ err = js_set_named_property(env, exports, name, val); \
68
+ assert(err == 0); \
69
+ }
70
+
71
+ R("claim", bare_gobject_claim)
72
+ R("wrapper", bare_gobject_wrapper)
73
+ R("registrySize", bare_gobject_registry_size)
74
+ R("handle", bare_gobject_handle)
75
+ R("adopt", bare_gobject_adopt)
76
+
24
77
  V("widgetVisible", bare_gtk_widget_visible)
25
78
  V("widgetSizeRequest", bare_gtk_widget_size_request)
79
+ V("widgetOpacity", bare_gtk_widget_opacity)
80
+ V("widgetOverflow", bare_gtk_widget_overflow)
81
+ V("widgetParent", bare_gtk_widget_parent)
82
+ V("widgetInsertAfter", bare_gtk_widget_insert_after)
83
+ V("widgetInsertBefore", bare_gtk_widget_insert_before)
84
+ V("widgetUnparent", bare_gtk_widget_unparent)
85
+ V("widgetAddController", bare_gtk_widget_add_controller)
86
+ V("widgetRemoveController", bare_gtk_widget_remove_controller)
87
+
88
+ V("eventControllerEventMask", bare_gtk_event_controller_event_mask)
89
+ V("eventControllerPropagationPhase", bare_gtk_event_controller_propagation_phase)
90
+ V("eventControllerCurrentEventDevice", bare_gtk_event_controller_current_event_device)
91
+ V("eventControllerFocusInit", bare_gtk_event_controller_focus_init)
92
+ V("eventControllerMotionInit", bare_gtk_event_controller_motion_init)
93
+
94
+ V("gestureSetState", bare_gtk_gesture_set_state)
95
+ V("gestureSingleButton", bare_gtk_gesture_single_button)
96
+ V("gestureClickInit", bare_gtk_gesture_click_init)
97
+ V("gestureDragInit", bare_gtk_gesture_drag_init)
98
+ V("gestureDragStartPoint", bare_gtk_gesture_drag_start_point)
99
+ V("gestureDragOffset", bare_gtk_gesture_drag_offset)
100
+
101
+ V("deviceSource", bare_gtk_device_source)
102
+
103
+ V("adjustmentEventMask", bare_gtk_adjustment_event_mask)
104
+ V("adjustmentValue", bare_gtk_adjustment_value)
105
+ V("adjustmentUpper", bare_gtk_adjustment_upper)
106
+
107
+ V("scrolledWindowInit", bare_gtk_scrolled_window_init)
108
+ V("scrolledWindowChild", bare_gtk_scrolled_window_child)
109
+ V("scrolledWindowPolicy", bare_gtk_scrolled_window_policy)
110
+ V("scrolledWindowAdjustment", bare_gtk_scrolled_window_adjustment)
111
+
112
+ V("viewportInit", bare_gtk_viewport_init)
113
+ V("viewportChild", bare_gtk_viewport_child)
114
+ V("viewportHscrollPolicy", bare_gtk_viewport_hscroll_policy)
115
+ V("viewportVscrollPolicy", bare_gtk_viewport_vscroll_policy)
116
+ V("widgetFirstChild", bare_gtk_widget_first_child)
117
+ V("widgetLastChild", bare_gtk_widget_last_child)
118
+ V("widgetNextSibling", bare_gtk_widget_next_sibling)
119
+ V("widgetPrevSibling", bare_gtk_widget_prev_sibling)
120
+ V("widgetWidth", bare_gtk_widget_width)
121
+ V("widgetHeight", bare_gtk_widget_height)
122
+ V("widgetScaleFactor", bare_gtk_widget_scale_factor)
123
+ V("widgetNative", bare_gtk_widget_native)
124
+ V("widgetComputeBounds", bare_gtk_widget_compute_bounds)
125
+ V("widgetMeasure", bare_gtk_widget_measure)
126
+ V("widgetAddCssClass", bare_gtk_widget_add_css_class)
127
+ V("widgetRemoveCssClass", bare_gtk_widget_remove_css_class)
128
+ V("widgetHasCssClass", bare_gtk_widget_has_css_class)
129
+
130
+ V("widgetLayoutManager", bare_gtk_widget_layout_manager)
131
+
132
+ V("fixedInit", bare_gtk_fixed_init)
133
+
134
+ V("layoutManagerLayoutChild", bare_gtk_layout_manager_layout_child)
135
+
136
+ V("layoutChildChildWidget", bare_gtk_layout_child_child_widget)
137
+
138
+ V("frameLayoutInit", bare_gtk_frame_layout_init)
139
+ V("frameLayoutEventMask", bare_gtk_frame_layout_event_mask)
140
+ V("frameLayoutChildFrame", bare_gtk_frame_layout_child_frame)
141
+ V("frameLayoutChildTransform", bare_gtk_frame_layout_child_transform)
142
+
143
+ V("textureNewFromFilename", bare_gtk_texture_new_from_filename)
144
+ V("textureWidth", bare_gtk_texture_width)
145
+ V("textureHeight", bare_gtk_texture_height)
146
+
147
+ V("pictureInit", bare_gtk_picture_init)
148
+ V("picturePaintable", bare_gtk_picture_paintable)
149
+ V("pictureKeepAspectRatio", bare_gtk_picture_keep_aspect_ratio)
150
+ V("pictureCanShrink", bare_gtk_picture_can_shrink)
151
+
152
+ V("widgetGrabFocus", bare_gtk_widget_grab_focus)
153
+ V("widgetSetRootFocus", bare_gtk_widget_set_root_focus)
154
+
155
+ V("widgetCanTarget", bare_gtk_widget_can_target)
156
+ V("widgetCursor", bare_gtk_widget_cursor)
157
+ V("widgetSetCursorFromName", bare_gtk_widget_set_cursor_from_name)
158
+
159
+ V("cursorNewFromName", bare_gtk_cursor_new_from_name)
160
+ V("cursorNewFromTexture", bare_gtk_cursor_new_from_texture)
161
+ V("cursorName", bare_gtk_cursor_name)
162
+ V("cursorFallback", bare_gtk_cursor_fallback)
163
+ V("cursorTexture", bare_gtk_cursor_texture)
164
+ V("cursorHotspotX", bare_gtk_cursor_hotspot_x)
165
+ V("cursorHotspotY", bare_gtk_cursor_hotspot_y)
166
+ V("widgetSensitive", bare_gtk_widget_sensitive)
167
+
168
+ V("spinnerInit", bare_gtk_spinner_init)
169
+ V("spinnerSpinning", bare_gtk_spinner_spinning)
170
+
171
+ V("switchInit", bare_gtk_switch_init)
172
+ V("switchEventMask", bare_gtk_switch_event_mask)
173
+ V("switchActive", bare_gtk_switch_active)
174
+
175
+ V("entryInit", bare_gtk_entry_init)
176
+ V("entryEventMask", bare_gtk_entry_event_mask)
177
+ V("entryGrabFocusWithoutSelecting", bare_gtk_entry_grab_focus_without_selecting)
178
+ V("entryPlaceholderText", bare_gtk_entry_placeholder_text)
179
+ V("entryVisibility", bare_gtk_entry_visibility)
180
+ V("entryInputPurpose", bare_gtk_entry_input_purpose)
181
+ V("entryInputHints", bare_gtk_entry_input_hints)
182
+
183
+ V("editableText", bare_gtk_editable_text)
184
+ V("editableEditable", bare_gtk_editable_editable)
185
+ V("editableSelectionBounds", bare_gtk_editable_selection_bounds)
186
+ V("editableSelectRegion", bare_gtk_editable_select_region)
187
+
188
+ V("textViewInit", bare_gtk_text_view_init)
189
+ V("textViewJustification", bare_gtk_text_view_justification)
190
+ V("textViewEventMask", bare_gtk_text_view_event_mask)
191
+ V("textViewBuffer", bare_gtk_text_view_buffer)
192
+ V("textViewEditable", bare_gtk_text_view_editable)
193
+ V("textViewWrapMode", bare_gtk_text_view_wrap_mode)
194
+ V("textViewInputPurpose", bare_gtk_text_view_input_purpose)
195
+ V("textViewInputHints", bare_gtk_text_view_input_hints)
196
+
197
+ V("textBufferEventMask", bare_gtk_text_buffer_event_mask)
198
+ V("textBufferText", bare_gtk_text_buffer_text)
199
+ V("textBufferSelectionBounds", bare_gtk_text_buffer_selection_bounds)
200
+ V("textBufferSelectRange", bare_gtk_text_buffer_select_range)
201
+
202
+ V("labelInit", bare_gtk_label_init)
203
+ V("labelText", bare_gtk_label_text)
204
+ V("labelSetMarkup", bare_gtk_label_set_markup)
205
+ V("labelWrap", bare_gtk_label_wrap)
206
+ V("labelWrapMode", bare_gtk_label_wrap_mode)
207
+ V("entryAlignment", bare_gtk_entry_alignment)
208
+ V("labelLines", bare_gtk_label_lines)
209
+ V("labelEllipsize", bare_gtk_label_ellipsize)
210
+ V("labelXalign", bare_gtk_label_xalign)
211
+ V("labelYalign", bare_gtk_label_yalign)
212
+ V("labelJustify", bare_gtk_label_justify)
213
+
214
+ V("cssProviderInit", bare_gtk_css_provider_init)
215
+ V("cssProviderLoadFromData", bare_gtk_css_provider_load_from_data)
216
+
217
+ V("displayGetDefault", bare_gtk_display_get_default)
218
+ V("displayGetMonitorAtSurface", bare_gtk_display_get_monitor_at_surface)
219
+ V("displayGetClipboard", bare_gtk_display_get_clipboard)
220
+ V("displayGetPrimaryClipboard", bare_gtk_display_get_primary_clipboard)
221
+
222
+ V("messageDialogNew", bare_gtk_message_dialog_new)
223
+ V("messageDialogSecondaryText", bare_gtk_message_dialog_secondary_text)
224
+
225
+ V("dialogEventMask", bare_gtk_dialog_event_mask)
226
+ V("dialogAddButton", bare_gtk_dialog_add_button)
227
+ V("dialogResponse", bare_gtk_dialog_response)
228
+
229
+ V("clipboardReadTextAsync", bare_gtk_clipboard_read_text_async)
230
+ V("clipboardSetText", bare_gtk_clipboard_set_text)
231
+ V("clipboardFormats", bare_gtk_clipboard_formats)
232
+
233
+ V("monitorGeometry", bare_gtk_monitor_geometry)
234
+ V("monitorScaleFactor", bare_gtk_monitor_scale_factor)
235
+ V("monitorWidthMm", bare_gtk_monitor_width_mm)
236
+ V("monitorHeightMm", bare_gtk_monitor_height_mm)
237
+ V("monitorRefreshRate", bare_gtk_monitor_refresh_rate)
238
+ V("monitorConnector", bare_gtk_monitor_connector)
239
+ V("monitorManufacturer", bare_gtk_monitor_manufacturer)
240
+ V("monitorModel", bare_gtk_monitor_model)
241
+ V("monitorValid", bare_gtk_monitor_valid)
242
+
243
+ V("nativeSurface", bare_gtk_native_surface)
244
+
245
+ V("surfaceWidth", bare_gtk_surface_width)
246
+ V("surfaceHeight", bare_gtk_surface_height)
247
+ V("surfaceScaleFactor", bare_gtk_surface_scale_factor)
248
+ V("surfaceDisplay", bare_gtk_surface_display)
249
+
250
+ V("settingsGetDefault", bare_gtk_settings_get_default)
251
+ V("settingsEventMask", bare_gtk_settings_event_mask)
252
+ V("settingsPreferDarkTheme", bare_gtk_settings_prefer_dark_theme)
253
+ V("settingsXftDpi", bare_gtk_settings_xft_dpi)
254
+
255
+ V("styleContextAddProviderForDisplay", bare_gtk_style_context_add_provider_for_display)
256
+ V("styleContextRemoveProviderForDisplay", bare_gtk_style_context_remove_provider_for_display)
257
+
258
+ V("textMeasure", bare_gtk_text_measure)
259
+ V("textMeasureMarkup", bare_gtk_text_measure_markup)
26
260
 
27
261
  V("windowInit", bare_gtk_window_init)
262
+ V("windowTitle", bare_gtk_window_title)
28
263
  V("windowDefaultSize", bare_gtk_window_default_size)
29
264
  V("windowChild", bare_gtk_window_child)
265
+ V("windowEventMask", bare_gtk_window_event_mask)
266
+ #undef R
30
267
  #undef V
31
268
 
32
269
  #define V(name, n) \
@@ -37,6 +274,118 @@ bare_gtk_exports(js_env_t *env, js_value_t *exports) {
37
274
  err = js_set_named_property(env, exports, name, val); \
38
275
  assert(err == 0); \
39
276
  }
277
+
278
+ V("ORIENTATION_HORIZONTAL", GTK_ORIENTATION_HORIZONTAL)
279
+ V("ORIENTATION_VERTICAL", GTK_ORIENTATION_VERTICAL)
280
+
281
+ V("OVERFLOW_VISIBLE", GTK_OVERFLOW_VISIBLE)
282
+ V("OVERFLOW_HIDDEN", GTK_OVERFLOW_HIDDEN)
283
+
284
+ V("ELLIPSIZE_NONE", PANGO_ELLIPSIZE_NONE)
285
+ V("ELLIPSIZE_START", PANGO_ELLIPSIZE_START)
286
+ V("ELLIPSIZE_MIDDLE", PANGO_ELLIPSIZE_MIDDLE)
287
+ V("ELLIPSIZE_END", PANGO_ELLIPSIZE_END)
288
+ V("JUSTIFY_LEFT", GTK_JUSTIFY_LEFT)
289
+ V("JUSTIFY_RIGHT", GTK_JUSTIFY_RIGHT)
290
+ V("JUSTIFY_CENTER", GTK_JUSTIFY_CENTER)
291
+ V("JUSTIFY_FILL", GTK_JUSTIFY_FILL)
292
+
293
+ V("STYLE_PROVIDER_PRIORITY_FALLBACK", GTK_STYLE_PROVIDER_PRIORITY_FALLBACK)
294
+ V("STYLE_PROVIDER_PRIORITY_THEME", GTK_STYLE_PROVIDER_PRIORITY_THEME)
295
+ V("STYLE_PROVIDER_PRIORITY_SETTINGS", GTK_STYLE_PROVIDER_PRIORITY_SETTINGS)
296
+ V("STYLE_PROVIDER_PRIORITY_APPLICATION", GTK_STYLE_PROVIDER_PRIORITY_APPLICATION)
297
+ V("STYLE_PROVIDER_PRIORITY_USER", GTK_STYLE_PROVIDER_PRIORITY_USER)
298
+
299
+ V("WRAP_WORD", PANGO_WRAP_WORD)
300
+ V("WRAP_CHAR", PANGO_WRAP_CHAR)
301
+ V("WRAP_WORD_CHAR", PANGO_WRAP_WORD_CHAR)
302
+
303
+ V("FRAME_LAYOUT_EVENT_RESIZE", bare_gtk_frame_layout_event_resize)
304
+
305
+ V("ADJUSTMENT_EVENT_VALUE_CHANGED", bare_gtk_adjustment_event_value_changed)
306
+
307
+ V("SCROLL_MINIMUM", GTK_SCROLL_MINIMUM)
308
+ V("SCROLL_NATURAL", GTK_SCROLL_NATURAL)
309
+
310
+ V("POLICY_ALWAYS", GTK_POLICY_ALWAYS)
311
+ V("POLICY_AUTOMATIC", GTK_POLICY_AUTOMATIC)
312
+ V("POLICY_NEVER", GTK_POLICY_NEVER)
313
+ V("POLICY_EXTERNAL", GTK_POLICY_EXTERNAL)
314
+
315
+ V("GESTURE_CLICK_EVENT_PRESSED", bare_gtk_gesture_click_event_pressed)
316
+ V("GESTURE_CLICK_EVENT_RELEASED", bare_gtk_gesture_click_event_released)
317
+ V("GESTURE_CLICK_EVENT_CANCEL", bare_gtk_gesture_click_event_cancel)
318
+
319
+ V("GESTURE_DRAG_EVENT_DRAG_BEGIN", bare_gtk_gesture_drag_event_drag_begin)
320
+ V("GESTURE_DRAG_EVENT_DRAG_UPDATE", bare_gtk_gesture_drag_event_drag_update)
321
+ V("GESTURE_DRAG_EVENT_DRAG_END", bare_gtk_gesture_drag_event_drag_end)
322
+ V("GESTURE_DRAG_EVENT_CANCEL", bare_gtk_gesture_drag_event_cancel)
323
+
324
+ V("SETTINGS_EVENT_PREFER_DARK_THEME", bare_gtk_settings_event_prefer_dark_theme)
325
+ V("SETTINGS_EVENT_XFT_DPI", bare_gtk_settings_event_xft_dpi)
326
+
327
+ V("DIALOG_EVENT_RESPONSE", bare_gtk_dialog_event_response)
328
+
329
+ V("DIALOG_RESPONSE_NONE", GTK_RESPONSE_NONE)
330
+ V("DIALOG_RESPONSE_REJECT", GTK_RESPONSE_REJECT)
331
+ V("DIALOG_RESPONSE_ACCEPT", GTK_RESPONSE_ACCEPT)
332
+ V("DIALOG_RESPONSE_DELETE_EVENT", GTK_RESPONSE_DELETE_EVENT)
333
+ V("DIALOG_RESPONSE_OK", GTK_RESPONSE_OK)
334
+ V("DIALOG_RESPONSE_CANCEL", GTK_RESPONSE_CANCEL)
335
+ V("DIALOG_RESPONSE_CLOSE", GTK_RESPONSE_CLOSE)
336
+ V("DIALOG_RESPONSE_YES", GTK_RESPONSE_YES)
337
+ V("DIALOG_RESPONSE_NO", GTK_RESPONSE_NO)
338
+ V("DIALOG_RESPONSE_APPLY", GTK_RESPONSE_APPLY)
339
+ V("DIALOG_RESPONSE_HELP", GTK_RESPONSE_HELP)
340
+
341
+ V("MESSAGE_DIALOG_MESSAGE_TYPE_INFO", GTK_MESSAGE_INFO)
342
+ V("MESSAGE_DIALOG_MESSAGE_TYPE_WARNING", GTK_MESSAGE_WARNING)
343
+ V("MESSAGE_DIALOG_MESSAGE_TYPE_QUESTION", GTK_MESSAGE_QUESTION)
344
+ V("MESSAGE_DIALOG_MESSAGE_TYPE_ERROR", GTK_MESSAGE_ERROR)
345
+ V("MESSAGE_DIALOG_MESSAGE_TYPE_OTHER", GTK_MESSAGE_OTHER)
346
+
347
+ V("EVENT_CONTROLLER_MOTION_EVENT_MOTION", bare_gtk_event_controller_motion_event_motion)
348
+ V("EVENT_CONTROLLER_MOTION_EVENT_ENTER", bare_gtk_event_controller_motion_event_enter)
349
+ V("EVENT_CONTROLLER_MOTION_EVENT_LEAVE", bare_gtk_event_controller_motion_event_leave)
350
+
351
+ V("PROPAGATION_PHASE_NONE", GTK_PHASE_NONE)
352
+ V("PROPAGATION_PHASE_CAPTURE", GTK_PHASE_CAPTURE)
353
+ V("PROPAGATION_PHASE_BUBBLE", GTK_PHASE_BUBBLE)
354
+ V("PROPAGATION_PHASE_TARGET", GTK_PHASE_TARGET)
355
+
356
+ V("EVENT_SEQUENCE_STATE_NONE", GTK_EVENT_SEQUENCE_NONE)
357
+ V("EVENT_SEQUENCE_STATE_CLAIMED", GTK_EVENT_SEQUENCE_CLAIMED)
358
+ V("EVENT_SEQUENCE_STATE_DENIED", GTK_EVENT_SEQUENCE_DENIED)
359
+
360
+ V("INPUT_SOURCE_MOUSE", GDK_SOURCE_MOUSE)
361
+ V("INPUT_SOURCE_PEN", GDK_SOURCE_PEN)
362
+ V("INPUT_SOURCE_KEYBOARD", GDK_SOURCE_KEYBOARD)
363
+ V("INPUT_SOURCE_TOUCHSCREEN", GDK_SOURCE_TOUCHSCREEN)
364
+ V("INPUT_SOURCE_TOUCHPAD", GDK_SOURCE_TOUCHPAD)
365
+ V("INPUT_SOURCE_TRACKPOINT", GDK_SOURCE_TRACKPOINT)
366
+ V("INPUT_SOURCE_TABLET_PAD", GDK_SOURCE_TABLET_PAD)
367
+ V("EVENT_CONTROLLER_FOCUS_EVENT_ENTER", bare_gtk_event_controller_focus_event_enter)
368
+ V("EVENT_CONTROLLER_FOCUS_EVENT_LEAVE", bare_gtk_event_controller_focus_event_leave)
369
+
370
+ V("SWITCH_EVENT_ACTIVE", bare_gtk_switch_event_active)
371
+
372
+ V("ENTRY_EVENT_CHANGED", bare_gtk_entry_event_changed)
373
+ V("ENTRY_EVENT_ACTIVATE", bare_gtk_entry_event_activate)
374
+ V("ENTRY_EVENT_CURSOR_POSITION", bare_gtk_entry_event_cursor_position)
375
+ V("ENTRY_EVENT_INSERT_TEXT", bare_gtk_entry_event_insert_text)
376
+ V("ENTRY_EVENT_DELETE_TEXT", bare_gtk_entry_event_delete_text)
377
+ V("ENTRY_EVENT_HAS_FOCUS", bare_gtk_entry_event_has_focus)
378
+ V("ENTRY_EVENT_IS_FOCUS", bare_gtk_entry_event_is_focus)
379
+
380
+ V("TEXT_VIEW_EVENT_HAS_FOCUS", bare_gtk_text_view_event_has_focus)
381
+ V("TEXT_VIEW_EVENT_IS_FOCUS", bare_gtk_text_view_event_is_focus)
382
+
383
+ V("TEXT_BUFFER_EVENT_CHANGED", bare_gtk_text_buffer_event_changed)
384
+ V("TEXT_BUFFER_EVENT_CURSOR_POSITION", bare_gtk_text_buffer_event_cursor_position)
385
+ V("TEXT_BUFFER_EVENT_INSERT_TEXT", bare_gtk_text_buffer_event_insert_text)
386
+ V("TEXT_BUFFER_EVENT_DELETE_RANGE", bare_gtk_text_buffer_event_delete_range)
387
+
388
+ V("WINDOW_EVENT_CLOSE_REQUEST", bare_gtk_window_event_close_request)
40
389
  #undef V
41
390
 
42
391
  return exports;
package/index.d.ts ADDED
@@ -0,0 +1,65 @@
1
+ import Adjustment = require('./lib/adjustment')
2
+ import CssProvider = require('./lib/css-provider')
3
+ import Device = require('./lib/device')
4
+ import Display = require('./lib/display')
5
+ import Entry = require('./lib/entry')
6
+ import Spinner = require('./lib/spinner')
7
+ import Switch = require('./lib/switch')
8
+ import EventController = require('./lib/event-controller')
9
+ import EventControllerFocus = require('./lib/event-controller-focus')
10
+ import EventControllerMotion = require('./lib/event-controller-motion')
11
+ import Fixed = require('./lib/fixed')
12
+ import Gesture = require('./lib/gesture')
13
+ import GestureClick = require('./lib/gesture-click')
14
+ import GestureSingle = require('./lib/gesture-single')
15
+ import FrameFixed = require('./lib/frame-fixed')
16
+ import FrameLayout = require('./lib/frame-layout')
17
+ import FrameLayoutChild = require('./lib/frame-layout-child')
18
+ import Label = require('./lib/label')
19
+ import LayoutChild = require('./lib/layout-child')
20
+ import LayoutManager = require('./lib/layout-manager')
21
+ import Paintable = require('./lib/paintable')
22
+ import Picture = require('./lib/picture')
23
+ import Viewport = require('./lib/viewport')
24
+ import Widget = require('./lib/widget')
25
+ import Window = require('./lib/window')
26
+ import ScrolledWindow = require('./lib/scrolled-window')
27
+ import * as StyleContext from './lib/style-context'
28
+ import TextBuffer = require('./lib/text-buffer')
29
+ import TextView = require('./lib/text-view')
30
+ import Texture = require('./lib/texture')
31
+ import * as constants from './lib/constants'
32
+
33
+ export {
34
+ Adjustment,
35
+ CssProvider,
36
+ Device,
37
+ Display,
38
+ Entry,
39
+ Spinner,
40
+ Switch,
41
+ EventController,
42
+ EventControllerFocus,
43
+ EventControllerMotion,
44
+ Fixed,
45
+ Gesture,
46
+ GestureClick,
47
+ GestureSingle,
48
+ FrameFixed,
49
+ FrameLayout,
50
+ FrameLayoutChild,
51
+ Label,
52
+ LayoutChild,
53
+ LayoutManager,
54
+ Paintable,
55
+ Picture,
56
+ Viewport,
57
+ Widget,
58
+ Window,
59
+ ScrolledWindow,
60
+ StyleContext,
61
+ TextBuffer,
62
+ TextView,
63
+ Texture,
64
+ constants
65
+ }
package/index.js CHANGED
@@ -1,2 +1,34 @@
1
+ exports.Adjustment = require('./lib/adjustment')
2
+ exports.CssProvider = require('./lib/css-provider')
3
+ exports.Device = require('./lib/device')
4
+ exports.Display = require('./lib/display')
5
+ exports.Entry = require('./lib/entry')
6
+ exports.Spinner = require('./lib/spinner')
7
+ exports.Switch = require('./lib/switch')
8
+ exports.EventController = require('./lib/event-controller')
9
+ exports.EventControllerFocus = require('./lib/event-controller-focus')
10
+ exports.EventControllerMotion = require('./lib/event-controller-motion')
11
+ exports.Fixed = require('./lib/fixed')
12
+ exports.Gesture = require('./lib/gesture')
13
+ exports.GestureClick = require('./lib/gesture-click')
14
+ exports.GestureSingle = require('./lib/gesture-single')
15
+ exports.FrameFixed = require('./lib/frame-fixed')
16
+ exports.FrameLayout = require('./lib/frame-layout')
17
+ exports.FrameLayoutChild = require('./lib/frame-layout-child')
18
+ exports.Label = require('./lib/label')
19
+ exports.LayoutChild = require('./lib/layout-child')
20
+ exports.LayoutManager = require('./lib/layout-manager')
21
+ exports.Paintable = require('./lib/paintable')
22
+ exports.Picture = require('./lib/picture')
23
+ exports.Viewport = require('./lib/viewport')
1
24
  exports.Widget = require('./lib/widget')
2
25
  exports.Window = require('./lib/window')
26
+
27
+ exports.ScrolledWindow = require('./lib/scrolled-window')
28
+
29
+ exports.StyleContext = require('./lib/style-context')
30
+ exports.TextBuffer = require('./lib/text-buffer')
31
+ exports.TextView = require('./lib/text-view')
32
+ exports.Texture = require('./lib/texture')
33
+
34
+ exports.constants = require('./lib/constants')
@@ -0,0 +1,21 @@
1
+ import GObject = require('./object')
2
+
3
+ /** A value within a range, as a `GtkAdjustment`. Scrolled windows scroll by moving one. */
4
+ interface GTKAdjustment extends GObject<GTKAdjustment.Events> {
5
+ value: number
6
+
7
+ /** The largest value. */
8
+ readonly upper: number
9
+ }
10
+
11
+ declare class GTKAdjustment {
12
+ protected constructor()
13
+ }
14
+
15
+ declare namespace GTKAdjustment {
16
+ export interface Events {
17
+ 'value-changed': [value: number]
18
+ }
19
+ }
20
+
21
+ export = GTKAdjustment