@gtkx/ffi 0.14.0 → 0.15.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 (206) hide show
  1. package/README.md +27 -27
  2. package/dist/generated/adw/breakpoint.js +3 -2
  3. package/dist/generated/adw/callback-animation-target.d.ts +14 -0
  4. package/dist/generated/adw/callback-animation-target.js +45 -0
  5. package/dist/generated/adw/index.d.ts +1 -0
  6. package/dist/generated/adw/index.js +1 -0
  7. package/dist/generated/adw/navigation-view.js +1 -1
  8. package/dist/generated/adw/spinner-paintable.js +1 -1
  9. package/dist/generated/adw/tab-page.js +6 -3
  10. package/dist/generated/adw/view-stack-page.js +6 -3
  11. package/dist/generated/appstream/functions.js +2 -2
  12. package/dist/generated/appstream/relation.js +1 -1
  13. package/dist/generated/atspi/accessible.js +1 -1
  14. package/dist/generated/atspi/document.js +1 -1
  15. package/dist/generated/atspi/functions.js +2 -2
  16. package/dist/generated/gdk/content-provider.js +1 -1
  17. package/dist/generated/gdk/device.js +1 -3
  18. package/dist/generated/gdk/file-list.js +2 -2
  19. package/dist/generated/gdk/toplevel.js +1 -1
  20. package/dist/generated/gio/action-map.js +2 -2
  21. package/dist/generated/gio/app-info.js +1 -1
  22. package/dist/generated/gio/app-launch-context.js +2 -2
  23. package/dist/generated/gio/application.js +4 -4
  24. package/dist/generated/gio/converter-output-stream.js +1 -1
  25. package/dist/generated/gio/d-bus-annotation-info.js +1 -1
  26. package/dist/generated/gio/d-bus-object-skeleton.js +1 -3
  27. package/dist/generated/gio/d-bus-proxy.js +1 -3
  28. package/dist/generated/gio/datagram-based.js +2 -2
  29. package/dist/generated/gio/dtls-client-connection.js +2 -2
  30. package/dist/generated/gio/dtls-connection.js +2 -2
  31. package/dist/generated/gio/dtls-server-connection.js +2 -2
  32. package/dist/generated/gio/functions.js +3 -3
  33. package/dist/generated/gio/inet-address-mask.js +2 -6
  34. package/dist/generated/gio/list-store.js +1 -1
  35. package/dist/generated/gio/memory-output-stream.js +1 -1
  36. package/dist/generated/gio/output-stream.js +4 -4
  37. package/dist/generated/gio/pollable-output-stream.js +1 -1
  38. package/dist/generated/gio/proxy-address-enumerator.js +1 -3
  39. package/dist/generated/gio/simple-action-group.js +3 -3
  40. package/dist/generated/gio/socket-listener.js +1 -3
  41. package/dist/generated/gio/socket-service.js +1 -3
  42. package/dist/generated/gio/socket.js +7 -7
  43. package/dist/generated/giounix/desktop-app-info.js +1 -1
  44. package/dist/generated/giounix/output-stream.js +1 -1
  45. package/dist/generated/glib/functions.d.ts +1 -1
  46. package/dist/generated/glib/functions.js +13 -18
  47. package/dist/generated/glib/main-context.js +1 -1
  48. package/dist/generated/glib/option-group.js +1 -1
  49. package/dist/generated/glib/variant-type.js +1 -1
  50. package/dist/generated/glib/variant.js +2 -2
  51. package/dist/generated/gobject/closure.js +2 -1
  52. package/dist/generated/gobject/functions.d.ts +1 -1
  53. package/dist/generated/gobject/functions.js +15 -18
  54. package/dist/generated/gobject/object.js +3 -2
  55. package/dist/generated/gobject/type-module.js +2 -2
  56. package/dist/generated/graphene/box.js +2 -2
  57. package/dist/generated/graphene/quad.js +1 -1
  58. package/dist/generated/graphene/sphere.js +2 -2
  59. package/dist/generated/gsk/border-node.js +1 -1
  60. package/dist/generated/gsk/conic-gradient-node.js +1 -1
  61. package/dist/generated/gsk/container-node.js +1 -1
  62. package/dist/generated/gsk/gl-shader-node.js +1 -1
  63. package/dist/generated/gsk/linear-gradient-node.js +1 -1
  64. package/dist/generated/gsk/radial-gradient-node.js +1 -1
  65. package/dist/generated/gsk/repeating-linear-gradient-node.js +1 -1
  66. package/dist/generated/gsk/repeating-radial-gradient-node.js +1 -1
  67. package/dist/generated/gsk/shadow-node.js +1 -1
  68. package/dist/generated/gst/bin.js +2 -6
  69. package/dist/generated/gst/buffer-list.d.ts +2 -3
  70. package/dist/generated/gst/buffer-list.js +14 -26
  71. package/dist/generated/gst/clock.js +2 -6
  72. package/dist/generated/gst/context.d.ts +1 -2
  73. package/dist/generated/gst/context.js +7 -13
  74. package/dist/generated/gst/control-binding.js +2 -1
  75. package/dist/generated/gst/device-monitor.js +1 -3
  76. package/dist/generated/gst/element-factory.js +5 -3
  77. package/dist/generated/gst/functions.d.ts +10 -10
  78. package/dist/generated/gst/functions.js +70 -136
  79. package/dist/generated/gst/message.d.ts +1 -1
  80. package/dist/generated/gst/message.js +7 -13
  81. package/dist/generated/gst/mini-object.d.ts +2 -3
  82. package/dist/generated/gst/mini-object.js +14 -27
  83. package/dist/generated/gst/object.d.ts +1 -2
  84. package/dist/generated/gst/object.js +7 -12
  85. package/dist/generated/gst/pad.js +1 -3
  86. package/dist/generated/gst/plugin-feature.js +3 -3
  87. package/dist/generated/gst/plugin.js +1 -1
  88. package/dist/generated/gst/query.d.ts +1 -1
  89. package/dist/generated/gst/query.js +7 -13
  90. package/dist/generated/gst/stream-collection.js +1 -3
  91. package/dist/generated/gst/structure.d.ts +1 -1
  92. package/dist/generated/gst/structure.js +7 -13
  93. package/dist/generated/gst/tag-list.d.ts +2 -2
  94. package/dist/generated/gst/tag-list.js +14 -26
  95. package/dist/generated/gst/tracer.js +1 -3
  96. package/dist/generated/gstbase/aggregator-pad.js +1 -3
  97. package/dist/generated/gstbase/aggregator.js +3 -9
  98. package/dist/generated/gstbase/base-parse.js +1 -3
  99. package/dist/generated/gstbase/base-sink.js +3 -9
  100. package/dist/generated/gstbase/base-src.js +2 -6
  101. package/dist/generated/gstbase/base-transform.js +1 -3
  102. package/dist/generated/gtk/accessible-list.js +2 -2
  103. package/dist/generated/gtk/accessible-range.js +6 -3
  104. package/dist/generated/gtk/accessible-text.js +6 -3
  105. package/dist/generated/gtk/accessible.js +6 -3
  106. package/dist/generated/gtk/application-window.js +2 -2
  107. package/dist/generated/gtk/application.js +1 -3
  108. package/dist/generated/gtk/assistant-page.js +2 -6
  109. package/dist/generated/gtk/at-context.js +1 -3
  110. package/dist/generated/gtk/cell-renderer-accel.js +2 -6
  111. package/dist/generated/gtk/cell-renderer-combo.js +3 -9
  112. package/dist/generated/gtk/cell-renderer-pixbuf.js +6 -18
  113. package/dist/generated/gtk/cell-renderer-progress.js +6 -18
  114. package/dist/generated/gtk/cell-renderer-spin.js +3 -9
  115. package/dist/generated/gtk/cell-renderer-spinner.js +2 -6
  116. package/dist/generated/gtk/cell-renderer-text.js +35 -105
  117. package/dist/generated/gtk/cell-renderer-toggle.js +1 -3
  118. package/dist/generated/gtk/cell-renderer.js +8 -24
  119. package/dist/generated/gtk/closure-expression.js +1 -1
  120. package/dist/generated/gtk/color-button.js +2 -4
  121. package/dist/generated/gtk/color-chooser-dialog.js +2 -4
  122. package/dist/generated/gtk/color-chooser-widget.js +2 -4
  123. package/dist/generated/gtk/color-chooser.js +1 -1
  124. package/dist/generated/gtk/combo-box.js +2 -6
  125. package/dist/generated/gtk/constraint-guide.js +6 -18
  126. package/dist/generated/gtk/editable-label.js +1 -3
  127. package/dist/generated/gtk/entry.js +22 -66
  128. package/dist/generated/gtk/file-chooser-widget.js +1 -3
  129. package/dist/generated/gtk/flow-box.js +1 -3
  130. package/dist/generated/gtk/functions.js +1 -1
  131. package/dist/generated/gtk/icon-paintable.js +4 -10
  132. package/dist/generated/gtk/icon-theme.js +1 -3
  133. package/dist/generated/gtk/image.js +1 -3
  134. package/dist/generated/gtk/list-box.js +1 -3
  135. package/dist/generated/gtk/list-store.js +4 -2
  136. package/dist/generated/gtk/lock-button.js +5 -15
  137. package/dist/generated/gtk/message-dialog.js +4 -12
  138. package/dist/generated/gtk/native-dialog.js +1 -3
  139. package/dist/generated/gtk/notebook-page.js +7 -21
  140. package/dist/generated/gtk/notebook.js +1 -3
  141. package/dist/generated/gtk/pad-controller.js +1 -1
  142. package/dist/generated/gtk/paned.js +1 -3
  143. package/dist/generated/gtk/password-entry.js +2 -6
  144. package/dist/generated/gtk/popover-menu.js +1 -3
  145. package/dist/generated/gtk/print-job.js +1 -1
  146. package/dist/generated/gtk/print-settings.js +1 -1
  147. package/dist/generated/gtk/search-entry.js +1 -3
  148. package/dist/generated/gtk/settings.js +51 -153
  149. package/dist/generated/gtk/shortcuts-group.js +4 -12
  150. package/dist/generated/gtk/shortcuts-section.js +4 -12
  151. package/dist/generated/gtk/shortcuts-shortcut.js +9 -27
  152. package/dist/generated/gtk/shortcuts-window.js +2 -6
  153. package/dist/generated/gtk/snapshot.js +7 -7
  154. package/dist/generated/gtk/spin-button.js +1 -3
  155. package/dist/generated/gtk/stack-page.js +6 -3
  156. package/dist/generated/gtk/symbolic-paintable.js +1 -1
  157. package/dist/generated/gtk/text-tag.js +70 -210
  158. package/dist/generated/gtk/text-view.js +1 -3
  159. package/dist/generated/gtk/text.js +2 -6
  160. package/dist/generated/gtk/tree-store.js +4 -2
  161. package/dist/generated/gtk/volume-button.js +1 -3
  162. package/dist/generated/gtk/widget.d.ts +29 -0
  163. package/dist/generated/gtk/widget.js +74 -9
  164. package/dist/generated/gtk/window.js +4 -12
  165. package/dist/generated/gtksource/buffer.d.ts +4 -5
  166. package/dist/generated/gtksource/buffer.js +28 -52
  167. package/dist/generated/gtksource/completion-snippets.js +2 -6
  168. package/dist/generated/gtksource/completion-words.js +5 -15
  169. package/dist/generated/gtksource/completion.js +3 -9
  170. package/dist/generated/gtksource/file-loader.js +1 -1
  171. package/dist/generated/gtksource/hover.js +1 -3
  172. package/dist/generated/gtksource/indenter.d.ts +1 -2
  173. package/dist/generated/gtksource/indenter.js +6 -13
  174. package/dist/generated/gtksource/tag.js +2 -6
  175. package/dist/generated/gtksource/view.d.ts +1 -2
  176. package/dist/generated/gtksource/view.js +6 -9
  177. package/dist/generated/harfbuzz/functions.d.ts +1 -1
  178. package/dist/generated/harfbuzz/functions.js +12 -10
  179. package/dist/generated/javascriptcore/value.js +4 -4
  180. package/dist/generated/pango/font.js +1 -1
  181. package/dist/generated/pango/functions.d.ts +1 -1
  182. package/dist/generated/pango/functions.js +11 -15
  183. package/dist/generated/pango/glyph-item.js +1 -1
  184. package/dist/generated/pango/matrix.d.ts +2 -2
  185. package/dist/generated/pango/matrix.js +10 -14
  186. package/dist/generated/secret/collection.js +2 -6
  187. package/dist/generated/secret/item.js +4 -8
  188. package/dist/generated/secret/service.js +4 -4
  189. package/dist/generated/soup/auth.js +3 -9
  190. package/dist/generated/soup/functions.d.ts +1 -1
  191. package/dist/generated/soup/functions.js +11 -14
  192. package/dist/generated/soup/server.js +1 -3
  193. package/dist/generated/soup/websocket-connection.js +1 -1
  194. package/dist/generated/vte/terminal.js +3 -5
  195. package/dist/generated/webkit/context-menu.js +1 -1
  196. package/dist/generated/webkit/cookie-manager.js +1 -1
  197. package/dist/generated/webkit/web-context.js +2 -2
  198. package/dist/generated/webkit/website-data-manager.js +1 -1
  199. package/dist/generated/webkitwebprocessextension/context-menu.js +1 -1
  200. package/dist/gobject/index.d.ts +3 -0
  201. package/dist/gobject/index.js +3 -0
  202. package/dist/gobject/types.d.ts +38 -0
  203. package/dist/gobject/types.js +127 -0
  204. package/dist/gobject/value.d.ts +83 -6
  205. package/dist/gobject/value.js +94 -1
  206. package/package.json +7 -3
@@ -163,7 +163,7 @@ export class Terminal extends Gtk.Widget {
163
163
  lengthParamIndex: 3,
164
164
  ownership: "borrowed",
165
165
  },
166
- value: regexes,
166
+ value: regexes.map((item) => item.handle),
167
167
  },
168
168
  {
169
169
  type: {
@@ -3579,7 +3579,7 @@ export class Terminal extends Gtk.Widget {
3579
3579
  lengthParamIndex: 3,
3580
3580
  ownership: "borrowed",
3581
3581
  },
3582
- value: palette,
3582
+ value: palette?.map((item) => item.handle),
3583
3583
  optional: true,
3584
3584
  },
3585
3585
  {
@@ -5600,9 +5600,7 @@ export class Terminal extends Gtk.Widget {
5600
5600
  * shown when the user moves the mouse.
5601
5601
  */
5602
5602
  setPointerAutohide(value) {
5603
- const gvalue = new GObject.Value();
5604
- gvalue.init(GObject.typeFromName("gboolean"));
5605
- gvalue.setBoolean(value);
5603
+ const gvalue = GObject.Value.newFromBoolean(value);
5606
5604
  call("libgobject-2.0.so.0", "g_object_set_property", [
5607
5605
  { type: { type: "gobject", ownership: "borrowed" }, value: this.handle },
5608
5606
  { type: { type: "string", ownership: "borrowed" }, value: "pointer-autohide" },
@@ -69,7 +69,7 @@ export class ContextMenu extends GObject.GObject {
69
69
  listType: "glist",
70
70
  ownership: "borrowed",
71
71
  },
72
- value: items,
72
+ value: items.map((item) => item.handle),
73
73
  optional: false,
74
74
  },
75
75
  ], {
@@ -541,7 +541,7 @@ export class CookieManager extends GObject.GObject {
541
541
  listType: "glist",
542
542
  ownership: "borrowed",
543
543
  },
544
- value: cookies,
544
+ value: cookies.map((item) => item.handle),
545
545
  optional: false,
546
546
  },
547
547
  {
@@ -267,7 +267,7 @@ export class WebContext extends GObject.GObject {
267
267
  listType: "glist",
268
268
  ownership: "borrowed",
269
269
  },
270
- value: allowedOrigins,
270
+ value: allowedOrigins.map((item) => item.handle),
271
271
  },
272
272
  {
273
273
  type: {
@@ -282,7 +282,7 @@ export class WebContext extends GObject.GObject {
282
282
  listType: "glist",
283
283
  ownership: "borrowed",
284
284
  },
285
- value: disallowedOrigins,
285
+ value: disallowedOrigins.map((item) => item.handle),
286
286
  },
287
287
  ], {
288
288
  type: "undefined",
@@ -455,7 +455,7 @@ export class WebsiteDataManager extends GObject.GObject {
455
455
  listType: "glist",
456
456
  ownership: "borrowed",
457
457
  },
458
- value: websiteData,
458
+ value: websiteData.map((item) => item.handle),
459
459
  optional: false,
460
460
  },
461
461
  {
@@ -69,7 +69,7 @@ export class ContextMenu extends GObject.GObject {
69
69
  listType: "glist",
70
70
  ownership: "borrowed",
71
71
  },
72
- value: items,
72
+ value: items.map((item) => item.handle),
73
73
  optional: false,
74
74
  },
75
75
  ], {
@@ -0,0 +1,3 @@
1
+ export * from "../generated/gobject/index.js";
2
+ export * from "./types.js";
3
+ import "./value.js";
@@ -0,0 +1,3 @@
1
+ export * from "../generated/gobject/index.js";
2
+ export * from "./types.js";
3
+ import "./value.js";
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Fundamental GLib type constants.
3
+ *
4
+ * Provides lazy-loaded GType identifiers for primitive and object types.
5
+ * Use with {@link Value} factory methods that require explicit type specification.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * import { Type, Value } from "@gtkx/ffi/gobject";
10
+ *
11
+ * const enumValue = Value.newFromEnum(myEnumGType, 0);
12
+ * console.log(Type.STRING); // GType for gchararray
13
+ * ```
14
+ */
15
+ export declare const Type: {
16
+ readonly INVALID: number;
17
+ readonly NONE: number;
18
+ readonly INTERFACE: number;
19
+ readonly CHAR: number;
20
+ readonly UCHAR: number;
21
+ readonly BOOLEAN: number;
22
+ readonly INT: number;
23
+ readonly UINT: number;
24
+ readonly LONG: number;
25
+ readonly ULONG: number;
26
+ readonly INT64: number;
27
+ readonly UINT64: number;
28
+ readonly ENUM: number;
29
+ readonly FLAGS: number;
30
+ readonly FLOAT: number;
31
+ readonly DOUBLE: number;
32
+ readonly STRING: number;
33
+ readonly POINTER: number;
34
+ readonly BOXED: number;
35
+ readonly PARAM: number;
36
+ readonly OBJECT: number;
37
+ readonly VARIANT: number;
38
+ };
@@ -0,0 +1,127 @@
1
+ import { typeFromName } from "../generated/gobject/functions.js";
2
+ let invalidType;
3
+ let noneType;
4
+ let interfaceType;
5
+ let charType;
6
+ let ucharType;
7
+ let booleanType;
8
+ let intType;
9
+ let uintType;
10
+ let longType;
11
+ let ulongType;
12
+ let int64Type;
13
+ let uint64Type;
14
+ let enumType;
15
+ let flagsType;
16
+ let floatType;
17
+ let doubleType;
18
+ let stringType;
19
+ let pointerType;
20
+ let boxedType;
21
+ let paramType;
22
+ let objectType;
23
+ let variantType;
24
+ /**
25
+ * Fundamental GLib type constants.
26
+ *
27
+ * Provides lazy-loaded GType identifiers for primitive and object types.
28
+ * Use with {@link Value} factory methods that require explicit type specification.
29
+ *
30
+ * @example
31
+ * ```ts
32
+ * import { Type, Value } from "@gtkx/ffi/gobject";
33
+ *
34
+ * const enumValue = Value.newFromEnum(myEnumGType, 0);
35
+ * console.log(Type.STRING); // GType for gchararray
36
+ * ```
37
+ */
38
+ export const Type = {
39
+ get INVALID() {
40
+ invalidType ??= typeFromName("void");
41
+ return invalidType;
42
+ },
43
+ get NONE() {
44
+ noneType ??= typeFromName("void");
45
+ return noneType;
46
+ },
47
+ get INTERFACE() {
48
+ interfaceType ??= typeFromName("GInterface");
49
+ return interfaceType;
50
+ },
51
+ get CHAR() {
52
+ charType ??= typeFromName("gchar");
53
+ return charType;
54
+ },
55
+ get UCHAR() {
56
+ ucharType ??= typeFromName("guchar");
57
+ return ucharType;
58
+ },
59
+ get BOOLEAN() {
60
+ booleanType ??= typeFromName("gboolean");
61
+ return booleanType;
62
+ },
63
+ get INT() {
64
+ intType ??= typeFromName("gint");
65
+ return intType;
66
+ },
67
+ get UINT() {
68
+ uintType ??= typeFromName("guint");
69
+ return uintType;
70
+ },
71
+ get LONG() {
72
+ longType ??= typeFromName("glong");
73
+ return longType;
74
+ },
75
+ get ULONG() {
76
+ ulongType ??= typeFromName("gulong");
77
+ return ulongType;
78
+ },
79
+ get INT64() {
80
+ int64Type ??= typeFromName("gint64");
81
+ return int64Type;
82
+ },
83
+ get UINT64() {
84
+ uint64Type ??= typeFromName("guint64");
85
+ return uint64Type;
86
+ },
87
+ get ENUM() {
88
+ enumType ??= typeFromName("GEnum");
89
+ return enumType;
90
+ },
91
+ get FLAGS() {
92
+ flagsType ??= typeFromName("GFlags");
93
+ return flagsType;
94
+ },
95
+ get FLOAT() {
96
+ floatType ??= typeFromName("gfloat");
97
+ return floatType;
98
+ },
99
+ get DOUBLE() {
100
+ doubleType ??= typeFromName("gdouble");
101
+ return doubleType;
102
+ },
103
+ get STRING() {
104
+ stringType ??= typeFromName("gchararray");
105
+ return stringType;
106
+ },
107
+ get POINTER() {
108
+ pointerType ??= typeFromName("gpointer");
109
+ return pointerType;
110
+ },
111
+ get BOXED() {
112
+ boxedType ??= typeFromName("GBoxed");
113
+ return boxedType;
114
+ },
115
+ get PARAM() {
116
+ paramType ??= typeFromName("GParam");
117
+ return paramType;
118
+ },
119
+ get OBJECT() {
120
+ objectType ??= typeFromName("GObject");
121
+ return objectType;
122
+ },
123
+ get VARIANT() {
124
+ variantType ??= typeFromName("GVariant");
125
+ return variantType;
126
+ },
127
+ };
@@ -1,24 +1,101 @@
1
+ import type { GObject } from "../generated/gobject/object.js";
2
+ import type { NativeObject } from "../native/base.js";
1
3
  declare module "../generated/gobject/value.js" {
2
4
  interface Value {
3
5
  /**
4
- * Gets the GType of the value stored in this GValue.
6
+ * Gets the Type of the value stored in this GValue.
5
7
  * This is equivalent to the C macro G_VALUE_TYPE(value).
6
- * @returns The GType identifier
8
+ * @returns The Type identifier
7
9
  */
8
10
  getType(): number;
9
11
  /**
10
- * Gets the name of the GType stored in this GValue.
12
+ * Gets the name of the Type stored in this GValue.
11
13
  * This is equivalent to G_VALUE_TYPE_NAME(value).
12
14
  * @returns The type name string
13
15
  */
14
16
  getTypeName(): string;
15
17
  /**
16
- * Checks if this GValue holds a value of the specified GType.
18
+ * Checks if this GValue holds a value of the specified Type.
17
19
  * This is equivalent to G_VALUE_HOLDS(value, type).
18
- * @param gtype - The GType to check against
20
+ * @param gtype - The Type to check against
19
21
  * @returns true if the value holds the specified type
20
22
  */
21
23
  holds(gtype: number): boolean;
22
24
  }
25
+ namespace Value {
26
+ /**
27
+ * Creates a GValue initialized with a boolean.
28
+ * @param value - The boolean value
29
+ */
30
+ function newFromBoolean(value: boolean): Value;
31
+ /**
32
+ * Creates a GValue initialized with a signed 32-bit integer.
33
+ * @param value - The integer value
34
+ */
35
+ function newFromInt(value: number): Value;
36
+ /**
37
+ * Creates a GValue initialized with an unsigned 32-bit integer.
38
+ * @param value - The unsigned integer value
39
+ */
40
+ function newFromUint(value: number): Value;
41
+ /**
42
+ * Creates a GValue initialized with a signed long integer.
43
+ * @param value - The long value
44
+ */
45
+ function newFromLong(value: number): Value;
46
+ /**
47
+ * Creates a GValue initialized with an unsigned long integer.
48
+ * @param value - The unsigned long value
49
+ */
50
+ function newFromUlong(value: number): Value;
51
+ /**
52
+ * Creates a GValue initialized with a signed 64-bit integer.
53
+ * @param value - The 64-bit integer value
54
+ */
55
+ function newFromInt64(value: number): Value;
56
+ /**
57
+ * Creates a GValue initialized with an unsigned 64-bit integer.
58
+ * @param value - The unsigned 64-bit integer value
59
+ */
60
+ function newFromUint64(value: number): Value;
61
+ /**
62
+ * Creates a GValue initialized with a 32-bit float.
63
+ * @param value - The float value
64
+ */
65
+ function newFromFloat(value: number): Value;
66
+ /**
67
+ * Creates a GValue initialized with a 64-bit double.
68
+ * @param value - The double value
69
+ */
70
+ function newFromDouble(value: number): Value;
71
+ /**
72
+ * Creates a GValue initialized with a string.
73
+ * @param value - The string value, or null
74
+ */
75
+ function newFromString(value: string | null): Value;
76
+ /**
77
+ * Creates a GValue initialized with a GObject instance.
78
+ * The GType is automatically determined from the object's class.
79
+ * @param value - The GObject instance, or null
80
+ */
81
+ function newFromObject(value: GObject | null): Value;
82
+ /**
83
+ * Creates a GValue initialized with a boxed type instance.
84
+ * The GType is automatically determined from the object's class.
85
+ * @param value - The boxed type instance (e.g., Gdk.RGBA, Graphene.Rect)
86
+ */
87
+ function newFromBoxed(value: NativeObject): Value;
88
+ /**
89
+ * Creates a GValue initialized with an enum value.
90
+ * @param gtype - The GType of the enum
91
+ * @param value - The enum value
92
+ */
93
+ function newFromEnum(gtype: number, value: number): Value;
94
+ /**
95
+ * Creates a GValue initialized with a flags value.
96
+ * @param gtype - The GType of the flags
97
+ * @param value - The flags value (can be combined with bitwise OR)
98
+ */
99
+ function newFromFlags(gtype: number, value: number): Value;
100
+ }
23
101
  }
24
- export {};
@@ -1,6 +1,7 @@
1
1
  import { read } from "@gtkx/native";
2
- import { typeName } from "../generated/gobject/functions.js";
2
+ import { typeFromName, typeName } from "../generated/gobject/functions.js";
3
3
  import { Value } from "../generated/gobject/value.js";
4
+ import { Type } from "./types.js";
4
5
  Value.prototype.getType = function () {
5
6
  return read(this.handle, { type: "int", size: 64, unsigned: true }, 0);
6
7
  };
@@ -11,3 +12,95 @@ Value.prototype.getTypeName = function () {
11
12
  Value.prototype.holds = function (gtype) {
12
13
  return this.getType() === gtype;
13
14
  };
15
+ const ValueWithStatics = Value;
16
+ ValueWithStatics.newFromBoolean = (value) => {
17
+ const v = new Value();
18
+ v.init(Type.BOOLEAN);
19
+ v.setBoolean(value);
20
+ return v;
21
+ };
22
+ ValueWithStatics.newFromInt = (value) => {
23
+ const v = new Value();
24
+ v.init(Type.INT);
25
+ v.setInt(value);
26
+ return v;
27
+ };
28
+ ValueWithStatics.newFromUint = (value) => {
29
+ const v = new Value();
30
+ v.init(Type.UINT);
31
+ v.setUint(value);
32
+ return v;
33
+ };
34
+ ValueWithStatics.newFromLong = (value) => {
35
+ const v = new Value();
36
+ v.init(Type.LONG);
37
+ v.setLong(value);
38
+ return v;
39
+ };
40
+ ValueWithStatics.newFromUlong = (value) => {
41
+ const v = new Value();
42
+ v.init(Type.ULONG);
43
+ v.setUlong(value);
44
+ return v;
45
+ };
46
+ ValueWithStatics.newFromInt64 = (value) => {
47
+ const v = new Value();
48
+ v.init(Type.INT64);
49
+ v.setInt64(value);
50
+ return v;
51
+ };
52
+ ValueWithStatics.newFromUint64 = (value) => {
53
+ const v = new Value();
54
+ v.init(Type.UINT64);
55
+ v.setUint64(value);
56
+ return v;
57
+ };
58
+ ValueWithStatics.newFromFloat = (value) => {
59
+ const v = new Value();
60
+ v.init(Type.FLOAT);
61
+ v.setFloat(value);
62
+ return v;
63
+ };
64
+ ValueWithStatics.newFromDouble = (value) => {
65
+ const v = new Value();
66
+ v.init(Type.DOUBLE);
67
+ v.setDouble(value);
68
+ return v;
69
+ };
70
+ ValueWithStatics.newFromString = (value) => {
71
+ const v = new Value();
72
+ v.init(Type.STRING);
73
+ v.setString(value);
74
+ return v;
75
+ };
76
+ ValueWithStatics.newFromObject = (value) => {
77
+ const v = new Value();
78
+ if (value) {
79
+ const gtype = typeFromName(value.constructor.glibTypeName);
80
+ v.init(gtype);
81
+ }
82
+ else {
83
+ v.init(Type.OBJECT);
84
+ }
85
+ v.setObject(value);
86
+ return v;
87
+ };
88
+ ValueWithStatics.newFromBoxed = (value) => {
89
+ const v = new Value();
90
+ const gtype = typeFromName(value.constructor.glibTypeName);
91
+ v.init(gtype);
92
+ v.setBoxed(value.handle);
93
+ return v;
94
+ };
95
+ ValueWithStatics.newFromEnum = (gtype, value) => {
96
+ const v = new Value();
97
+ v.init(gtype);
98
+ v.setEnum(value);
99
+ return v;
100
+ };
101
+ ValueWithStatics.newFromFlags = (gtype, value) => {
102
+ const v = new Value();
103
+ v.init(gtype);
104
+ v.setFlags(value);
105
+ return v;
106
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gtkx/ffi",
3
- "version": "0.14.0",
3
+ "version": "0.15.0",
4
4
  "description": "Generated TypeScript FFI bindings for GTKX",
5
5
  "keywords": [
6
6
  "gtkx",
@@ -38,6 +38,10 @@
38
38
  "types": "./dist/cairo/index.d.ts",
39
39
  "default": "./dist/cairo/index.js"
40
40
  },
41
+ "./gobject": {
42
+ "types": "./dist/gobject/index.d.ts",
43
+ "default": "./dist/gobject/index.js"
44
+ },
41
45
  "./*": {
42
46
  "types": "./dist/generated/*/index.d.ts",
43
47
  "default": "./dist/generated/*/index.js"
@@ -47,10 +51,10 @@
47
51
  "dist"
48
52
  ],
49
53
  "dependencies": {
50
- "@gtkx/native": "0.14.0"
54
+ "@gtkx/native": "0.15.0"
51
55
  },
52
56
  "devDependencies": {
53
- "@gtkx/vitest": "0.14.0"
57
+ "@gtkx/vitest": "0.15.0"
54
58
  },
55
59
  "scripts": {
56
60
  "build": "tsc -b && cp ../../README.md .",