@gtkx/react 0.18.9 → 0.20.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/dist/components/list.d.ts +35 -0
- package/dist/components/list.d.ts.map +1 -0
- package/dist/components/list.js +40 -0
- package/dist/components/list.js.map +1 -0
- package/dist/generated/internal.d.ts +8 -3
- package/dist/generated/internal.d.ts.map +1 -1
- package/dist/generated/internal.js +3553 -53
- package/dist/generated/internal.js.map +1 -1
- package/dist/generated/jsx.d.ts +178 -326
- package/dist/generated/jsx.d.ts.map +1 -1
- package/dist/generated/jsx.js +0 -324
- package/dist/generated/jsx.js.map +1 -1
- package/dist/host-config.d.ts.map +1 -1
- package/dist/host-config.js +48 -10
- package/dist/host-config.js.map +1 -1
- package/dist/jsx.d.ts +111 -54
- package/dist/jsx.d.ts.map +1 -1
- package/dist/jsx.js +3 -28
- package/dist/jsx.js.map +1 -1
- package/dist/metadata.d.ts +1 -0
- package/dist/metadata.d.ts.map +1 -1
- package/dist/metadata.js +7 -1
- package/dist/metadata.js.map +1 -1
- package/dist/node.d.ts +0 -2
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +19 -25
- package/dist/node.js.map +1 -1
- package/dist/nodes/application.d.ts.map +1 -1
- package/dist/nodes/application.js +4 -0
- package/dist/nodes/application.js.map +1 -1
- package/dist/nodes/column-view-column.d.ts +19 -16
- package/dist/nodes/column-view-column.d.ts.map +1 -1
- package/dist/nodes/column-view-column.js +129 -97
- package/dist/nodes/column-view-column.js.map +1 -1
- package/dist/nodes/event-controller.d.ts +1 -0
- package/dist/nodes/event-controller.d.ts.map +1 -1
- package/dist/nodes/event-controller.js +9 -7
- package/dist/nodes/event-controller.js.map +1 -1
- package/dist/nodes/fixed-child.d.ts +1 -2
- package/dist/nodes/fixed-child.d.ts.map +1 -1
- package/dist/nodes/fixed-child.js +21 -21
- package/dist/nodes/fixed-child.js.map +1 -1
- package/dist/nodes/font-dialog-button.d.ts +1 -1
- package/dist/nodes/font-dialog-button.d.ts.map +1 -1
- package/dist/nodes/font-dialog-button.js +8 -0
- package/dist/nodes/font-dialog-button.js.map +1 -1
- package/dist/nodes/internal/accessible.d.ts +5 -0
- package/dist/nodes/internal/accessible.d.ts.map +1 -0
- package/dist/nodes/internal/accessible.js +119 -0
- package/dist/nodes/internal/accessible.js.map +1 -0
- package/dist/nodes/internal/bound-item.d.ts +4 -0
- package/dist/nodes/internal/bound-item.d.ts.map +1 -0
- package/dist/nodes/internal/bound-item.js +2 -0
- package/dist/nodes/internal/bound-item.js.map +1 -0
- package/dist/nodes/internal/construct.d.ts +3 -0
- package/dist/nodes/internal/construct.d.ts.map +1 -0
- package/dist/nodes/internal/construct.js +44 -0
- package/dist/nodes/internal/construct.js.map +1 -0
- package/dist/nodes/internal/text-buffer-controller.d.ts +4 -0
- package/dist/nodes/internal/text-buffer-controller.d.ts.map +1 -1
- package/dist/nodes/internal/text-buffer-controller.js +49 -9
- package/dist/nodes/internal/text-buffer-controller.js.map +1 -1
- package/dist/nodes/internal/widget.d.ts.map +1 -1
- package/dist/nodes/internal/widget.js +4 -1
- package/dist/nodes/internal/widget.js.map +1 -1
- package/dist/nodes/list-item-node.d.ts +12 -0
- package/dist/nodes/list-item-node.d.ts.map +1 -0
- package/dist/nodes/list-item-node.js +23 -0
- package/dist/nodes/list-item-node.js.map +1 -0
- package/dist/nodes/list.d.ts +100 -0
- package/dist/nodes/list.d.ts.map +1 -0
- package/dist/nodes/list.js +950 -0
- package/dist/nodes/list.js.map +1 -0
- package/dist/nodes/notebook-page.d.ts.map +1 -1
- package/dist/nodes/notebook-page.js +4 -0
- package/dist/nodes/notebook-page.js.map +1 -1
- package/dist/nodes/shortcut.d.ts +3 -2
- package/dist/nodes/shortcut.d.ts.map +1 -1
- package/dist/nodes/shortcut.js +19 -4
- package/dist/nodes/shortcut.js.map +1 -1
- package/dist/nodes/text-anchor.d.ts.map +1 -1
- package/dist/nodes/text-anchor.js +7 -1
- package/dist/nodes/text-anchor.js.map +1 -1
- package/dist/nodes/text-tag.d.ts.map +1 -1
- package/dist/nodes/text-tag.js +5 -1
- package/dist/nodes/text-tag.js.map +1 -1
- package/dist/nodes/text-view.d.ts +1 -0
- package/dist/nodes/text-view.d.ts.map +1 -1
- package/dist/nodes/text-view.js +4 -0
- package/dist/nodes/text-view.js.map +1 -1
- package/dist/nodes/widget.d.ts +0 -2
- package/dist/nodes/widget.d.ts.map +1 -1
- package/dist/nodes/widget.js +51 -67
- package/dist/nodes/widget.js.map +1 -1
- package/dist/nodes/window.d.ts.map +1 -1
- package/dist/nodes/window.js +2 -2
- package/dist/nodes/window.js.map +1 -1
- package/dist/registry.d.ts +0 -2
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +4 -13
- package/dist/registry.js.map +1 -1
- package/dist/types.d.ts +2 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +5 -4
- package/src/components/list.tsx +83 -0
- package/src/generated/internal.ts +3559 -49
- package/src/generated/jsx.ts +178 -326
- package/src/host-config.ts +43 -10
- package/src/jsx.ts +121 -62
- package/src/metadata.ts +8 -1
- package/src/node.ts +23 -25
- package/src/nodes/application.ts +5 -0
- package/src/nodes/column-view-column.ts +125 -104
- package/src/nodes/event-controller.ts +8 -8
- package/src/nodes/fixed-child.ts +24 -23
- package/src/nodes/font-dialog-button.ts +10 -0
- package/src/nodes/internal/accessible.ts +155 -0
- package/src/nodes/internal/bound-item.ts +4 -0
- package/src/nodes/internal/construct.ts +60 -0
- package/src/nodes/internal/text-buffer-controller.ts +51 -8
- package/src/nodes/internal/widget.ts +3 -1
- package/src/nodes/list-item-node.ts +29 -0
- package/src/nodes/list.ts +1082 -0
- package/src/nodes/notebook-page.ts +4 -0
- package/src/nodes/shortcut.ts +22 -5
- package/src/nodes/text-anchor.ts +6 -1
- package/src/nodes/text-tag.ts +7 -1
- package/src/nodes/text-view.ts +5 -0
- package/src/nodes/widget.ts +47 -69
- package/src/nodes/window.ts +2 -2
- package/src/registry.ts +11 -17
- package/src/types.ts +7 -2
- package/dist/fiber-root.d.ts +0 -4
- package/dist/fiber-root.d.ts.map +0 -1
- package/dist/fiber-root.js +0 -6
- package/dist/fiber-root.js.map +0 -1
- package/dist/nodes/column-view.d.ts +0 -36
- package/dist/nodes/column-view.d.ts.map +0 -1
- package/dist/nodes/column-view.js +0 -175
- package/dist/nodes/column-view.js.map +0 -1
- package/dist/nodes/drop-down.d.ts +0 -27
- package/dist/nodes/drop-down.d.ts.map +0 -1
- package/dist/nodes/drop-down.js +0 -85
- package/dist/nodes/drop-down.js.map +0 -1
- package/dist/nodes/grid-view.d.ts +0 -29
- package/dist/nodes/grid-view.d.ts.map +0 -1
- package/dist/nodes/grid-view.js +0 -85
- package/dist/nodes/grid-view.js.map +0 -1
- package/dist/nodes/internal/base-item-renderer.d.ts +0 -28
- package/dist/nodes/internal/base-item-renderer.d.ts.map +0 -1
- package/dist/nodes/internal/base-item-renderer.js +0 -86
- package/dist/nodes/internal/base-item-renderer.js.map +0 -1
- package/dist/nodes/internal/grid-item-renderer.d.ts +0 -20
- package/dist/nodes/internal/grid-item-renderer.d.ts.map +0 -1
- package/dist/nodes/internal/grid-item-renderer.js +0 -66
- package/dist/nodes/internal/grid-item-renderer.js.map +0 -1
- package/dist/nodes/internal/list-item-renderer.d.ts +0 -27
- package/dist/nodes/internal/list-item-renderer.d.ts.map +0 -1
- package/dist/nodes/internal/list-item-renderer.js +0 -131
- package/dist/nodes/internal/list-item-renderer.js.map +0 -1
- package/dist/nodes/internal/list-store.d.ts +0 -22
- package/dist/nodes/internal/list-store.d.ts.map +0 -1
- package/dist/nodes/internal/list-store.js +0 -91
- package/dist/nodes/internal/list-store.js.map +0 -1
- package/dist/nodes/internal/selection-model-controller.d.ts +0 -26
- package/dist/nodes/internal/selection-model-controller.d.ts.map +0 -1
- package/dist/nodes/internal/selection-model-controller.js +0 -79
- package/dist/nodes/internal/selection-model-controller.js.map +0 -1
- package/dist/nodes/internal/simple-list-store.d.ts +0 -20
- package/dist/nodes/internal/simple-list-store.d.ts.map +0 -1
- package/dist/nodes/internal/simple-list-store.js +0 -87
- package/dist/nodes/internal/simple-list-store.js.map +0 -1
- package/dist/nodes/internal/tree-store.d.ts +0 -34
- package/dist/nodes/internal/tree-store.d.ts.map +0 -1
- package/dist/nodes/internal/tree-store.js +0 -208
- package/dist/nodes/internal/tree-store.js.map +0 -1
- package/dist/nodes/list-item.d.ts +0 -24
- package/dist/nodes/list-item.d.ts.map +0 -1
- package/dist/nodes/list-item.js +0 -83
- package/dist/nodes/list-item.js.map +0 -1
- package/dist/nodes/list-view.d.ts +0 -29
- package/dist/nodes/list-view.d.ts.map +0 -1
- package/dist/nodes/list-view.js +0 -83
- package/dist/nodes/list-view.js.map +0 -1
- package/dist/nodes/models/grid.d.ts +0 -28
- package/dist/nodes/models/grid.d.ts.map +0 -1
- package/dist/nodes/models/grid.js +0 -69
- package/dist/nodes/models/grid.js.map +0 -1
- package/dist/nodes/models/list.d.ts +0 -31
- package/dist/nodes/models/list.d.ts.map +0 -1
- package/dist/nodes/models/list.js +0 -93
- package/dist/nodes/models/list.js.map +0 -1
- package/dist/nodes/shortcut-controller.d.ts +0 -10
- package/dist/nodes/shortcut-controller.d.ts.map +0 -1
- package/dist/nodes/shortcut-controller.js +0 -23
- package/dist/nodes/shortcut-controller.js.map +0 -1
- package/src/fiber-root.ts +0 -20
- package/src/nodes/column-view.ts +0 -217
- package/src/nodes/drop-down.ts +0 -108
- package/src/nodes/grid-view.ts +0 -109
- package/src/nodes/internal/base-item-renderer.ts +0 -108
- package/src/nodes/internal/grid-item-renderer.ts +0 -78
- package/src/nodes/internal/list-item-renderer.ts +0 -162
- package/src/nodes/internal/list-store.ts +0 -105
- package/src/nodes/internal/selection-model-controller.ts +0 -115
- package/src/nodes/internal/simple-list-store.ts +0 -99
- package/src/nodes/internal/tree-store.ts +0 -237
- package/src/nodes/list-item.ts +0 -107
- package/src/nodes/list-view.ts +0 -113
- package/src/nodes/models/grid.ts +0 -105
- package/src/nodes/models/list.ts +0 -140
- package/src/nodes/shortcut-controller.ts +0 -27
|
@@ -18,6 +18,8 @@ type BufferProps = Pick<GtkTextViewProps, "enableUndo"> & BufferCallbackProps;
|
|
|
18
18
|
export class TextBufferController<TBuffer extends Gtk.TextBuffer = Gtk.TextBuffer> {
|
|
19
19
|
private buffer: TBuffer | null = null;
|
|
20
20
|
private textChildren: TextContentChild[] = [];
|
|
21
|
+
private initialMount = true;
|
|
22
|
+
private irreversibleStarted = false;
|
|
21
23
|
|
|
22
24
|
constructor(
|
|
23
25
|
private readonly owner: Node & TextContentParent,
|
|
@@ -41,6 +43,14 @@ export class TextBufferController<TBuffer extends Gtk.TextBuffer = Gtk.TextBuffe
|
|
|
41
43
|
return this.buffer;
|
|
42
44
|
}
|
|
43
45
|
|
|
46
|
+
finalizeInitialMount(): void {
|
|
47
|
+
if (this.irreversibleStarted) {
|
|
48
|
+
this.buffer?.endIrreversibleAction();
|
|
49
|
+
this.irreversibleStarted = false;
|
|
50
|
+
}
|
|
51
|
+
this.initialMount = false;
|
|
52
|
+
}
|
|
53
|
+
|
|
44
54
|
applyOwnProps(oldProps: BufferProps | null, newProps: BufferProps): void {
|
|
45
55
|
const hasBufferProps =
|
|
46
56
|
newProps.enableUndo !== undefined ||
|
|
@@ -130,6 +140,11 @@ export class TextBufferController<TBuffer extends Gtk.TextBuffer = Gtk.TextBuffe
|
|
|
130
140
|
appendChild(child: TextContentChild): void {
|
|
131
141
|
const buffer = this.ensureBuffer();
|
|
132
142
|
|
|
143
|
+
if (this.initialMount && !this.irreversibleStarted) {
|
|
144
|
+
buffer.beginIrreversibleAction();
|
|
145
|
+
this.irreversibleStarted = true;
|
|
146
|
+
}
|
|
147
|
+
|
|
133
148
|
const wasMoved = this.textChildren.indexOf(child) !== -1;
|
|
134
149
|
if (wasMoved) {
|
|
135
150
|
const existingIndex = this.textChildren.indexOf(child);
|
|
@@ -158,6 +173,7 @@ export class TextBufferController<TBuffer extends Gtk.TextBuffer = Gtk.TextBuffe
|
|
|
158
173
|
if (!child.hasBuffer()) {
|
|
159
174
|
child.setBuffer(buffer);
|
|
160
175
|
}
|
|
176
|
+
this.setupEmbeddedObjects(child);
|
|
161
177
|
} else if (child instanceof TextAnchorNode) {
|
|
162
178
|
child.setTextViewAndBuffer(this.container, buffer);
|
|
163
179
|
} else if (child instanceof TextPaintableNode) {
|
|
@@ -173,6 +189,11 @@ export class TextBufferController<TBuffer extends Gtk.TextBuffer = Gtk.TextBuffe
|
|
|
173
189
|
insertBefore(child: TextContentChild, before: TextContentChild): void {
|
|
174
190
|
const buffer = this.ensureBuffer();
|
|
175
191
|
|
|
192
|
+
if (this.initialMount && !this.irreversibleStarted) {
|
|
193
|
+
buffer.beginIrreversibleAction();
|
|
194
|
+
this.irreversibleStarted = true;
|
|
195
|
+
}
|
|
196
|
+
|
|
176
197
|
const existingIndex = this.textChildren.indexOf(child);
|
|
177
198
|
if (existingIndex !== -1) {
|
|
178
199
|
const oldOffset = child.getBufferOffset();
|
|
@@ -207,6 +228,7 @@ export class TextBufferController<TBuffer extends Gtk.TextBuffer = Gtk.TextBuffe
|
|
|
207
228
|
if (!child.hasBuffer()) {
|
|
208
229
|
child.setBuffer(buffer);
|
|
209
230
|
}
|
|
231
|
+
this.setupEmbeddedObjects(child);
|
|
210
232
|
} else if (child instanceof TextAnchorNode) {
|
|
211
233
|
child.setTextViewAndBuffer(this.container, buffer);
|
|
212
234
|
} else if (child instanceof TextPaintableNode) {
|
|
@@ -234,6 +256,21 @@ export class TextBufferController<TBuffer extends Gtk.TextBuffer = Gtk.TextBuffe
|
|
|
234
256
|
this.reapplyTagsFromOffset(offset);
|
|
235
257
|
}
|
|
236
258
|
|
|
259
|
+
private setupEmbeddedObjects(tag: TextTagNode): void {
|
|
260
|
+
if (!this.buffer) return;
|
|
261
|
+
|
|
262
|
+
for (const child of tag.children) {
|
|
263
|
+
if (child instanceof TextPaintableNode || child instanceof TextAnchorNode) {
|
|
264
|
+
this.deleteTextAtRange(child.getBufferOffset(), child.getBufferOffset() + 1);
|
|
265
|
+
child.setTextViewAndBuffer(this.container, this.buffer);
|
|
266
|
+
} else if (child instanceof TextTagNode) {
|
|
267
|
+
this.setupEmbeddedObjects(child);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
tag.reapplyTag();
|
|
272
|
+
}
|
|
273
|
+
|
|
237
274
|
private getTotalLength(): number {
|
|
238
275
|
let length = 0;
|
|
239
276
|
for (const child of this.textChildren) {
|
|
@@ -248,7 +285,7 @@ export class TextBufferController<TBuffer extends Gtk.TextBuffer = Gtk.TextBuffe
|
|
|
248
285
|
|
|
249
286
|
const iter = new Gtk.TextIter();
|
|
250
287
|
buffer.getIterAtOffset(iter, offset);
|
|
251
|
-
buffer.insert(iter, text,
|
|
288
|
+
buffer.insert(iter, text, -1);
|
|
252
289
|
}
|
|
253
290
|
|
|
254
291
|
private deleteTextAtRange(start: number, end: number): void {
|
|
@@ -292,10 +329,7 @@ export class TextBufferController<TBuffer extends Gtk.TextBuffer = Gtk.TextBuffe
|
|
|
292
329
|
private reapplyTagsFromOffset(fromOffset: number): void {
|
|
293
330
|
for (const child of this.textChildren) {
|
|
294
331
|
if (child instanceof TextTagNode) {
|
|
295
|
-
if (child.getBufferOffset()
|
|
296
|
-
child.reapplyTag();
|
|
297
|
-
this.reapplyAllTagsRecursive(child.children);
|
|
298
|
-
} else if (child.getBufferOffset() + child.getLength() > fromOffset) {
|
|
332
|
+
if (child.getBufferOffset() + child.getLength() > fromOffset) {
|
|
299
333
|
child.reapplyTag();
|
|
300
334
|
this.reapplyAllTagsRecursive(child.children);
|
|
301
335
|
}
|
|
@@ -320,9 +354,18 @@ export class TextBufferController<TBuffer extends Gtk.TextBuffer = Gtk.TextBuffe
|
|
|
320
354
|
onChildInserted(child: TextContentChild): void {
|
|
321
355
|
if (!this.buffer) return;
|
|
322
356
|
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
357
|
+
if (child instanceof TextPaintableNode) {
|
|
358
|
+
child.setTextViewAndBuffer(this.container, this.buffer);
|
|
359
|
+
} else if (child instanceof TextAnchorNode) {
|
|
360
|
+
child.setTextViewAndBuffer(this.container, this.buffer);
|
|
361
|
+
} else {
|
|
362
|
+
const text = child.getText();
|
|
363
|
+
if (text.length > 0) {
|
|
364
|
+
this.insertTextAtOffset(text, child.getBufferOffset());
|
|
365
|
+
}
|
|
366
|
+
if (child instanceof TextTagNode) {
|
|
367
|
+
this.setupEmbeddedObjects(child);
|
|
368
|
+
}
|
|
326
369
|
}
|
|
327
370
|
|
|
328
371
|
const containingIndex = this.findDirectChildContaining(child.getBufferOffset());
|
|
@@ -14,6 +14,8 @@ export function detachChild(child: Gtk.Widget, container: Gtk.Widget): void {
|
|
|
14
14
|
container.setChild(null);
|
|
15
15
|
} else if (isRemovable(container)) {
|
|
16
16
|
container.remove(child);
|
|
17
|
+
} else {
|
|
18
|
+
child.unparent();
|
|
17
19
|
}
|
|
18
20
|
}
|
|
19
21
|
|
|
@@ -27,7 +29,7 @@ export function attachChild(child: Gtk.Widget, container: Gtk.Widget): void {
|
|
|
27
29
|
} else if (isSingleChild(container)) {
|
|
28
30
|
container.setChild(child);
|
|
29
31
|
} else {
|
|
30
|
-
|
|
32
|
+
child.setParent(container);
|
|
31
33
|
}
|
|
32
34
|
}
|
|
33
35
|
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type * as Gtk from "@gtkx/ffi/gtk";
|
|
2
|
+
import { Node } from "../node.js";
|
|
3
|
+
import type { Container, Props } from "../types.js";
|
|
4
|
+
import { WidgetNode } from "./widget.js";
|
|
5
|
+
|
|
6
|
+
export class ListItemNode extends Node<Gtk.ListItem | Gtk.ListHeader, Props, Node, WidgetNode> {
|
|
7
|
+
public override isValidChild(child: Node): boolean {
|
|
8
|
+
return child instanceof WidgetNode;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
public override appendChild(child: WidgetNode): void {
|
|
12
|
+
super.appendChild(child);
|
|
13
|
+
this.container.setChild(child.container);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
public override removeChild(child: WidgetNode): void {
|
|
17
|
+
this.container.setChild(null);
|
|
18
|
+
super.removeChild(child);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
public override insertBefore(child: WidgetNode, before: WidgetNode): void {
|
|
22
|
+
super.insertBefore(child, before);
|
|
23
|
+
this.container.setChild(child.container);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
public static override createContainer(): Container {
|
|
27
|
+
throw new Error("ListItemNode does not support container creation");
|
|
28
|
+
}
|
|
29
|
+
}
|