@gtkx/react 0.18.8 → 0.19.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 (184) hide show
  1. package/dist/generated/internal.d.ts +6 -0
  2. package/dist/generated/internal.d.ts.map +1 -1
  3. package/dist/generated/internal.js +331 -44
  4. package/dist/generated/internal.js.map +1 -1
  5. package/dist/generated/jsx.d.ts +178 -2
  6. package/dist/generated/jsx.d.ts.map +1 -1
  7. package/dist/generated/jsx.js.map +1 -1
  8. package/dist/host-config.d.ts.map +1 -1
  9. package/dist/host-config.js +46 -10
  10. package/dist/host-config.js.map +1 -1
  11. package/dist/jsx.d.ts +133 -13
  12. package/dist/jsx.d.ts.map +1 -1
  13. package/dist/jsx.js +41 -2
  14. package/dist/jsx.js.map +1 -1
  15. package/dist/metadata.d.ts +1 -0
  16. package/dist/metadata.d.ts.map +1 -1
  17. package/dist/metadata.js +3 -1
  18. package/dist/metadata.js.map +1 -1
  19. package/dist/node.d.ts +2 -0
  20. package/dist/node.d.ts.map +1 -1
  21. package/dist/node.js +22 -6
  22. package/dist/node.js.map +1 -1
  23. package/dist/nodes/column-view-column.d.ts +5 -1
  24. package/dist/nodes/column-view-column.d.ts.map +1 -1
  25. package/dist/nodes/column-view-column.js +31 -7
  26. package/dist/nodes/column-view-column.js.map +1 -1
  27. package/dist/nodes/column-view.d.ts +4 -3
  28. package/dist/nodes/column-view.d.ts.map +1 -1
  29. package/dist/nodes/column-view.js +47 -12
  30. package/dist/nodes/column-view.js.map +1 -1
  31. package/dist/nodes/drop-down.d.ts +12 -2
  32. package/dist/nodes/drop-down.d.ts.map +1 -1
  33. package/dist/nodes/drop-down.js +151 -5
  34. package/dist/nodes/drop-down.js.map +1 -1
  35. package/dist/nodes/event-controller.d.ts +1 -0
  36. package/dist/nodes/event-controller.d.ts.map +1 -1
  37. package/dist/nodes/event-controller.js +11 -3
  38. package/dist/nodes/event-controller.js.map +1 -1
  39. package/dist/nodes/fixed-child.d.ts +1 -2
  40. package/dist/nodes/fixed-child.d.ts.map +1 -1
  41. package/dist/nodes/fixed-child.js +21 -21
  42. package/dist/nodes/fixed-child.js.map +1 -1
  43. package/dist/nodes/font-dialog-button.d.ts +1 -1
  44. package/dist/nodes/font-dialog-button.d.ts.map +1 -1
  45. package/dist/nodes/font-dialog-button.js +8 -0
  46. package/dist/nodes/font-dialog-button.js.map +1 -1
  47. package/dist/nodes/grid-view.d.ts +6 -5
  48. package/dist/nodes/grid-view.d.ts.map +1 -1
  49. package/dist/nodes/grid-view.js +23 -18
  50. package/dist/nodes/grid-view.js.map +1 -1
  51. package/dist/nodes/internal/accessible.d.ts +5 -0
  52. package/dist/nodes/internal/accessible.d.ts.map +1 -0
  53. package/dist/nodes/internal/accessible.js +119 -0
  54. package/dist/nodes/internal/accessible.js.map +1 -0
  55. package/dist/nodes/internal/base-item-renderer.d.ts.map +1 -1
  56. package/dist/nodes/internal/base-item-renderer.js +0 -1
  57. package/dist/nodes/internal/base-item-renderer.js.map +1 -1
  58. package/dist/nodes/internal/construct.d.ts +10 -0
  59. package/dist/nodes/internal/construct.d.ts.map +1 -0
  60. package/dist/nodes/internal/construct.js +68 -0
  61. package/dist/nodes/internal/construct.js.map +1 -0
  62. package/dist/nodes/internal/grid-item-renderer.d.ts +1 -0
  63. package/dist/nodes/internal/grid-item-renderer.d.ts.map +1 -1
  64. package/dist/nodes/internal/grid-item-renderer.js +6 -0
  65. package/dist/nodes/internal/grid-item-renderer.js.map +1 -1
  66. package/dist/nodes/internal/header-item-renderer.d.ts +23 -0
  67. package/dist/nodes/internal/header-item-renderer.d.ts.map +1 -0
  68. package/dist/nodes/internal/header-item-renderer.js +87 -0
  69. package/dist/nodes/internal/header-item-renderer.js.map +1 -0
  70. package/dist/nodes/internal/header-renderer-manager.d.ts +13 -0
  71. package/dist/nodes/internal/header-renderer-manager.d.ts.map +1 -0
  72. package/dist/nodes/internal/header-renderer-manager.js +20 -0
  73. package/dist/nodes/internal/header-renderer-manager.js.map +1 -0
  74. package/dist/nodes/internal/list-item-renderer.d.ts +1 -0
  75. package/dist/nodes/internal/list-item-renderer.d.ts.map +1 -1
  76. package/dist/nodes/internal/list-item-renderer.js +6 -0
  77. package/dist/nodes/internal/list-item-renderer.js.map +1 -1
  78. package/dist/nodes/internal/list-store.d.ts +10 -11
  79. package/dist/nodes/internal/list-store.d.ts.map +1 -1
  80. package/dist/nodes/internal/list-store.js +28 -29
  81. package/dist/nodes/internal/list-store.js.map +1 -1
  82. package/dist/nodes/internal/sectioned-list-store.d.ts +50 -0
  83. package/dist/nodes/internal/sectioned-list-store.d.ts.map +1 -0
  84. package/dist/nodes/internal/sectioned-list-store.js +250 -0
  85. package/dist/nodes/internal/sectioned-list-store.js.map +1 -0
  86. package/dist/nodes/internal/selection-helpers.d.ts +12 -0
  87. package/dist/nodes/internal/selection-helpers.d.ts.map +1 -0
  88. package/dist/nodes/internal/selection-helpers.js +25 -0
  89. package/dist/nodes/internal/selection-helpers.js.map +1 -0
  90. package/dist/nodes/internal/selection-model-controller.d.ts.map +1 -1
  91. package/dist/nodes/internal/selection-model-controller.js +3 -0
  92. package/dist/nodes/internal/selection-model-controller.js.map +1 -1
  93. package/dist/nodes/internal/simple-list-store.d.ts +7 -12
  94. package/dist/nodes/internal/simple-list-store.d.ts.map +1 -1
  95. package/dist/nodes/internal/simple-list-store.js +58 -35
  96. package/dist/nodes/internal/simple-list-store.js.map +1 -1
  97. package/dist/nodes/internal/text-buffer-controller.d.ts +4 -0
  98. package/dist/nodes/internal/text-buffer-controller.d.ts.map +1 -1
  99. package/dist/nodes/internal/text-buffer-controller.js +49 -9
  100. package/dist/nodes/internal/text-buffer-controller.js.map +1 -1
  101. package/dist/nodes/internal/tree-store.d.ts +3 -0
  102. package/dist/nodes/internal/tree-store.d.ts.map +1 -1
  103. package/dist/nodes/internal/tree-store.js +55 -10
  104. package/dist/nodes/internal/tree-store.js.map +1 -1
  105. package/dist/nodes/list-section.d.ts +27 -0
  106. package/dist/nodes/list-section.d.ts.map +1 -0
  107. package/dist/nodes/list-section.js +43 -0
  108. package/dist/nodes/list-section.js.map +1 -0
  109. package/dist/nodes/list-view.d.ts +6 -3
  110. package/dist/nodes/list-view.d.ts.map +1 -1
  111. package/dist/nodes/list-view.js +54 -14
  112. package/dist/nodes/list-view.js.map +1 -1
  113. package/dist/nodes/models/list.d.ts +13 -5
  114. package/dist/nodes/models/list.d.ts.map +1 -1
  115. package/dist/nodes/models/list.js +135 -21
  116. package/dist/nodes/models/list.js.map +1 -1
  117. package/dist/nodes/shortcut.d.ts +3 -2
  118. package/dist/nodes/shortcut.d.ts.map +1 -1
  119. package/dist/nodes/shortcut.js +19 -4
  120. package/dist/nodes/shortcut.js.map +1 -1
  121. package/dist/nodes/text-anchor.d.ts.map +1 -1
  122. package/dist/nodes/text-anchor.js +7 -1
  123. package/dist/nodes/text-anchor.js.map +1 -1
  124. package/dist/nodes/text-tag.d.ts.map +1 -1
  125. package/dist/nodes/text-tag.js +5 -1
  126. package/dist/nodes/text-tag.js.map +1 -1
  127. package/dist/nodes/text-view.d.ts +1 -0
  128. package/dist/nodes/text-view.d.ts.map +1 -1
  129. package/dist/nodes/text-view.js +4 -0
  130. package/dist/nodes/text-view.js.map +1 -1
  131. package/dist/nodes/widget.d.ts +0 -2
  132. package/dist/nodes/widget.d.ts.map +1 -1
  133. package/dist/nodes/widget.js +44 -61
  134. package/dist/nodes/widget.js.map +1 -1
  135. package/dist/registry.d.ts.map +1 -1
  136. package/dist/registry.js +2 -2
  137. package/dist/registry.js.map +1 -1
  138. package/package.json +3 -3
  139. package/src/generated/internal.ts +333 -44
  140. package/src/generated/jsx.ts +178 -2
  141. package/src/host-config.ts +41 -10
  142. package/src/jsx.ts +166 -15
  143. package/src/metadata.ts +5 -1
  144. package/src/node.ts +20 -6
  145. package/src/nodes/column-view-column.ts +35 -7
  146. package/src/nodes/column-view.ts +63 -13
  147. package/src/nodes/drop-down.ts +182 -6
  148. package/src/nodes/event-controller.ts +11 -3
  149. package/src/nodes/fixed-child.ts +24 -23
  150. package/src/nodes/font-dialog-button.ts +10 -0
  151. package/src/nodes/grid-view.ts +29 -19
  152. package/src/nodes/internal/accessible.ts +156 -0
  153. package/src/nodes/internal/base-item-renderer.ts +0 -1
  154. package/src/nodes/internal/construct.ts +90 -0
  155. package/src/nodes/internal/grid-item-renderer.ts +7 -0
  156. package/src/nodes/internal/header-item-renderer.ts +105 -0
  157. package/src/nodes/internal/header-renderer-manager.ts +33 -0
  158. package/src/nodes/internal/list-item-renderer.ts +7 -0
  159. package/src/nodes/internal/list-store.ts +32 -30
  160. package/src/nodes/internal/sectioned-list-store.ts +287 -0
  161. package/src/nodes/internal/selection-helpers.ts +35 -0
  162. package/src/nodes/internal/selection-model-controller.ts +4 -0
  163. package/src/nodes/internal/simple-list-store.ts +60 -43
  164. package/src/nodes/internal/text-buffer-controller.ts +51 -8
  165. package/src/nodes/internal/tree-store.ts +61 -9
  166. package/src/nodes/list-section.ts +64 -0
  167. package/src/nodes/list-view.ts +65 -14
  168. package/src/nodes/models/list.ts +147 -37
  169. package/src/nodes/shortcut.ts +22 -5
  170. package/src/nodes/text-anchor.ts +6 -1
  171. package/src/nodes/text-tag.ts +7 -1
  172. package/src/nodes/text-view.ts +5 -0
  173. package/src/nodes/widget.ts +45 -62
  174. package/src/registry.ts +4 -2
  175. package/dist/nodes/models/grid.d.ts +0 -28
  176. package/dist/nodes/models/grid.d.ts.map +0 -1
  177. package/dist/nodes/models/grid.js +0 -69
  178. package/dist/nodes/models/grid.js.map +0 -1
  179. package/dist/nodes/shortcut-controller.d.ts +0 -10
  180. package/dist/nodes/shortcut-controller.d.ts.map +0 -1
  181. package/dist/nodes/shortcut-controller.js +0 -23
  182. package/dist/nodes/shortcut-controller.js.map +0 -1
  183. package/src/nodes/models/grid.ts +0 -105
  184. package/src/nodes/shortcut-controller.ts +0 -27
@@ -1,16 +1,27 @@
1
+ import * as Gtk from "@gtkx/ffi/gtk";
2
+ import { createFiberRoot } from "../fiber-root.js";
3
+ import { reconciler } from "../reconciler.js";
1
4
  import { ContainerSlotNode } from "./container-slot.js";
2
5
  import { EventControllerNode } from "./event-controller.js";
6
+ import { updateHeaderRenderer } from "./internal/header-renderer-manager.js";
3
7
  import { filterProps, hasChanged } from "./internal/props.js";
4
8
  import { SimpleListStore } from "./internal/simple-list-store.js";
5
9
  import { ListItemNode } from "./list-item.js";
10
+ import { ListSectionNode } from "./list-section.js";
6
11
  import { SlotNode } from "./slot.js";
7
12
  import { WidgetNode } from "./widget.js";
8
- const OWN_PROPS = ["selectedId", "onSelectionChanged"];
13
+ const OWN_PROPS = ["selectedId", "onSelectionChanged", "renderItem", "renderListItem", "renderHeader"];
9
14
  export class DropDownNode extends WidgetNode {
10
15
  store = new SimpleListStore();
11
16
  initialSelectedId;
17
+ itemState = null;
18
+ renderItemFn = null;
19
+ listItemState = null;
20
+ renderListItemFn = null;
21
+ headerRenderer = null;
12
22
  isValidChild(child) {
13
23
  return (child instanceof ListItemNode ||
24
+ child instanceof ListSectionNode ||
14
25
  child instanceof EventControllerNode ||
15
26
  child instanceof SlotNode ||
16
27
  child instanceof ContainerSlotNode);
@@ -19,11 +30,11 @@ export class DropDownNode extends WidgetNode {
19
30
  super(typeName, props, container, rootContainer);
20
31
  this.store.beginBatch();
21
32
  this.initialSelectedId = props.selectedId;
22
- this.container.setModel(this.store.getModel());
23
33
  }
24
34
  finalizeInitialChildren(props) {
25
35
  super.finalizeInitialChildren(props);
26
36
  this.store.flushBatch();
37
+ this.container.setModel(this.store.getModel());
27
38
  this.reapplyInitialSelectedId();
28
39
  return false;
29
40
  }
@@ -38,21 +49,38 @@ export class DropDownNode extends WidgetNode {
38
49
  }
39
50
  appendChild(child) {
40
51
  super.appendChild(child);
41
- if (child instanceof ListItemNode) {
52
+ if (child instanceof ListSectionNode) {
53
+ this.store.addSection(child.props.id, child.props.value);
54
+ child.setStore(this.store);
55
+ }
56
+ else if (child instanceof ListItemNode) {
42
57
  child.setStore(this.store);
43
58
  this.store.addItem(child.props.id, child.props.value);
44
59
  }
45
60
  }
46
61
  insertBefore(child, before) {
47
62
  super.insertBefore(child, before);
48
- if (child instanceof ListItemNode && before instanceof ListItemNode) {
63
+ if (child instanceof ListSectionNode) {
64
+ this.store.addSection(child.props.id, child.props.value);
65
+ child.setStore(this.store);
66
+ }
67
+ else if (child instanceof ListItemNode && before instanceof ListItemNode) {
49
68
  child.setStore(this.store);
50
69
  this.store.insertItemBefore(child.props.id, before.props.id, child.props.value);
51
70
  }
71
+ else if (child instanceof ListItemNode) {
72
+ child.setStore(this.store);
73
+ this.store.addItem(child.props.id, child.props.value);
74
+ }
52
75
  }
53
76
  removeChild(child) {
54
- if (child instanceof ListItemNode) {
77
+ if (child instanceof ListSectionNode) {
78
+ this.store.removeSection(child.props.id);
79
+ child.setStore(null);
80
+ }
81
+ else if (child instanceof ListItemNode) {
55
82
  this.store.removeItem(child.props.id);
83
+ child.setStore(null);
56
84
  }
57
85
  super.removeChild(child);
58
86
  }
@@ -60,6 +88,14 @@ export class DropDownNode extends WidgetNode {
60
88
  super.commitUpdate(oldProps ? filterProps(oldProps, OWN_PROPS) : null, filterProps(newProps, OWN_PROPS));
61
89
  this.applyOwnProps(oldProps, newProps);
62
90
  }
91
+ detachDeletedInstance() {
92
+ this.disposeFactory(this.itemState);
93
+ this.itemState = null;
94
+ this.disposeFactory(this.listItemState);
95
+ this.listItemState = null;
96
+ this.headerRenderer?.dispose();
97
+ super.detachDeletedInstance();
98
+ }
63
99
  applyOwnProps(oldProps, newProps) {
64
100
  if (hasChanged(oldProps, newProps, "onSelectionChanged")) {
65
101
  const onSelectionChanged = newProps.onSelectionChanged;
@@ -80,6 +116,116 @@ export class DropDownNode extends WidgetNode {
80
116
  this.container.setSelected(index);
81
117
  }
82
118
  }
119
+ if (hasChanged(oldProps, newProps, "renderItem")) {
120
+ if (newProps.renderItem) {
121
+ if (!this.itemState) {
122
+ this.itemState = this.createFactory(() => this.renderItemFn, (f) => this.container.setFactory(f));
123
+ }
124
+ this.renderItemFn = newProps.renderItem;
125
+ this.rebindAll(this.itemState, this.renderItemFn);
126
+ }
127
+ else if (this.itemState) {
128
+ this.disposeFactory(this.itemState);
129
+ this.itemState = null;
130
+ this.container.setFactory(null);
131
+ this.renderItemFn = null;
132
+ }
133
+ }
134
+ if (hasChanged(oldProps, newProps, "renderListItem")) {
135
+ if (newProps.renderListItem) {
136
+ if (!this.listItemState) {
137
+ this.listItemState = this.createFactory(() => this.renderListItemFn, (f) => this.container.setListFactory(f));
138
+ }
139
+ this.renderListItemFn = newProps.renderListItem;
140
+ this.rebindAll(this.listItemState, this.renderListItemFn);
141
+ }
142
+ else if (this.listItemState) {
143
+ this.disposeFactory(this.listItemState);
144
+ this.listItemState = null;
145
+ this.container.setListFactory(null);
146
+ this.renderListItemFn = null;
147
+ }
148
+ }
149
+ if (hasChanged(oldProps, newProps, "renderHeader")) {
150
+ this.headerRenderer = updateHeaderRenderer(this.headerRenderer, {
151
+ signalStore: this.signalStore,
152
+ isEnabled: () => this.store.isSectioned(),
153
+ resolveItem: (label) => this.store.getHeaderValueByLabel(label),
154
+ setFactory: (factory) => this.container.setHeaderFactory(factory),
155
+ }, newProps.renderHeader);
156
+ }
157
+ }
158
+ createFactory(getRenderFn, applyFactory) {
159
+ const state = {
160
+ factory: new Gtk.SignalListItemFactory(),
161
+ fiberRoots: new Map(),
162
+ tornDown: new Set(),
163
+ boundLabels: new Map(),
164
+ };
165
+ this.signalStore.set(this, state.factory, "setup", (listItem) => {
166
+ const box = new Gtk.Box(Gtk.Orientation.HORIZONTAL);
167
+ box.setValign(Gtk.Align.CENTER);
168
+ listItem.setChild(box);
169
+ const fiberRoot = createFiberRoot(box);
170
+ state.fiberRoots.set(listItem, fiberRoot);
171
+ const element = getRenderFn()?.(null);
172
+ reconciler.getInstance().updateContainer(element, fiberRoot, null, () => { });
173
+ });
174
+ this.signalStore.set(this, state.factory, "bind", (listItem) => {
175
+ const fiberRoot = state.fiberRoots.get(listItem);
176
+ if (!fiberRoot)
177
+ return;
178
+ const stringObject = listItem.getItem();
179
+ const label = stringObject instanceof Gtk.StringObject ? stringObject.getString() : null;
180
+ if (label !== null)
181
+ state.boundLabels.set(label, listItem);
182
+ const element = getRenderFn()?.(label);
183
+ reconciler.getInstance().updateContainer(element, fiberRoot, null, () => { });
184
+ });
185
+ this.signalStore.set(this, state.factory, "unbind", (listItem) => {
186
+ const stringObject = listItem.getItem();
187
+ if (stringObject instanceof Gtk.StringObject) {
188
+ state.boundLabels.delete(stringObject.getString());
189
+ }
190
+ });
191
+ this.signalStore.set(this, state.factory, "teardown", (listItem) => {
192
+ const fiberRoot = state.fiberRoots.get(listItem);
193
+ if (fiberRoot) {
194
+ state.tornDown.add(listItem);
195
+ reconciler.getInstance().updateContainer(null, fiberRoot, null, () => { });
196
+ queueMicrotask(() => {
197
+ state.fiberRoots.delete(listItem);
198
+ state.tornDown.delete(listItem);
199
+ });
200
+ }
201
+ });
202
+ applyFactory(state.factory);
203
+ return state;
204
+ }
205
+ rebindAll(state, renderFn) {
206
+ for (const [label, listItem] of state.boundLabels) {
207
+ const fiberRoot = state.fiberRoots.get(listItem);
208
+ if (!fiberRoot)
209
+ continue;
210
+ const element = renderFn(label);
211
+ reconciler.getInstance().updateContainer(element, fiberRoot, null, () => { });
212
+ }
213
+ }
214
+ disposeFactory(state) {
215
+ if (!state)
216
+ return;
217
+ this.signalStore.set(this, state.factory, "setup", undefined);
218
+ this.signalStore.set(this, state.factory, "bind", undefined);
219
+ this.signalStore.set(this, state.factory, "unbind", undefined);
220
+ this.signalStore.set(this, state.factory, "teardown", undefined);
221
+ for (const [listItem, fiberRoot] of state.fiberRoots) {
222
+ if (!state.tornDown.has(listItem)) {
223
+ reconciler.getInstance().updateContainer(null, fiberRoot, null, () => { });
224
+ }
225
+ }
226
+ state.fiberRoots.clear();
227
+ state.tornDown.clear();
228
+ state.boundLabels.clear();
83
229
  }
84
230
  }
85
231
  //# sourceMappingURL=drop-down.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"drop-down.js","sourceRoot":"","sources":["../../src/nodes/drop-down.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,SAAS,GAAG,CAAC,YAAY,EAAE,oBAAoB,CAAU,CAAC;AAMhE,MAAM,OAAO,YAAa,SAAQ,UAAwD;IAC9E,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;IAC9B,iBAAiB,CAA4B;IAErC,YAAY,CAAC,KAAW;QACpC,OAAO,CACH,KAAK,YAAY,YAAY;YAC7B,KAAK,YAAY,mBAAmB;YACpC,KAAK,YAAY,QAAQ;YACzB,KAAK,YAAY,iBAAiB,CACrC,CAAC;IACN,CAAC;IAED,YAAY,QAAgB,EAAE,KAAoB,EAAE,SAAyB,EAAE,aAAwB;QACnG,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACxB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,UAAU,CAAC;QAC1C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IACnD,CAAC;IAEe,uBAAuB,CAAC,KAAoB;QACxD,KAAK,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACxB,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,wBAAwB;QAC5B,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI;YAAE,OAAO;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9D,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;QACnC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACjB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;IACL,CAAC;IAEe,WAAW,CAAC,KAAoB;QAC5C,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACzB,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;YAChC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,KAAe,CAAC,CAAC;QACpE,CAAC;IACL,CAAC;IAEe,YAAY,CAAC,KAAoB,EAAE,MAAqB;QACpE,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAClC,IAAI,KAAK,YAAY,YAAY,IAAI,MAAM,YAAY,YAAY,EAAE,CAAC;YAClE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,KAAe,CAAC,CAAC;QAC9F,CAAC;IACL,CAAC;IAEe,WAAW,CAAC,KAAoB;QAC5C,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;YAChC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1C,CAAC;QACD,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAEe,YAAY,CAAC,QAA8B,EAAE,QAAuB;QAChF,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;QACzG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAEO,aAAa,CAAC,QAA8B,EAAE,QAAuB;QACzE,IAAI,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,oBAAoB,CAAC,EAAE,CAAC;YACvD,MAAM,kBAAkB,GAAG,QAAQ,CAAC,kBAAkB,CAAC;YAEvD,MAAM,qBAAqB,GAAG,kBAAkB;gBAC5C,CAAC,CAAC,GAAG,EAAE;oBACD,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;oBACnD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;oBAClD,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;wBACd,kBAAkB,CAAC,EAAE,CAAC,CAAC;oBAC3B,CAAC;gBACL,CAAC;gBACH,CAAC,CAAC,SAAS,CAAC;YAEhB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,kBAAkB,EAAE,qBAAqB,CAAC,CAAC;QAC1F,CAAC;QAED,IAAI,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,CAAC;YAC/C,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAEhG,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACjB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACtC,CAAC;QACL,CAAC;IACL,CAAC;CACJ"}
1
+ {"version":3,"file":"drop-down.js","sourceRoot":"","sources":["../../src/nodes/drop-down.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import type { Props } from "../types.js";
4
4
  import { WidgetNode } from "./widget.js";
5
5
  export declare class EventControllerNode<T extends Gtk.EventController = Gtk.EventController, TChild extends Node = any> extends Node<T, Props, WidgetNode, TChild> {
6
6
  static createContainer(props: Props, containerClass: typeof Gtk.EventController): Gtk.EventController;
7
+ isValidChild(child: Node): boolean;
7
8
  isValidParent(parent: Node): boolean;
8
9
  setParent(parent: WidgetNode | null): void;
9
10
  commitUpdate(oldProps: Props | null, newProps: Props): void;
@@ -1 +1 @@
1
- {"version":3,"file":"event-controller.d.ts","sourceRoot":"","sources":["../../src/nodes/event-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,eAAe,CAAC;AAGrC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIzC,qBAAa,mBAAmB,CAC5B,CAAC,SAAS,GAAG,CAAC,eAAe,GAAG,GAAG,CAAC,eAAe,EAEnD,MAAM,SAAS,IAAI,GAAG,GAAG,CAC3B,SAAQ,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC;WACjB,eAAe,CAClC,KAAK,EAAE,KAAK,EACZ,cAAc,EAAE,OAAO,GAAG,CAAC,eAAe,GAC3C,GAAG,CAAC,eAAe;IAcN,aAAa,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO;IAIpC,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI;IAY1C,YAAY,CAAC,QAAQ,EAAE,KAAK,GAAG,IAAI,EAAE,QAAQ,EAAE,KAAK,GAAG,IAAI;IAK3D,qBAAqB,IAAI,IAAI;IAO7C,OAAO,CAAC,aAAa;IAsBrB,OAAO,CAAC,WAAW;CAiBtB"}
1
+ {"version":3,"file":"event-controller.d.ts","sourceRoot":"","sources":["../../src/nodes/event-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,eAAe,CAAC;AAGrC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIzC,qBAAa,mBAAmB,CAC5B,CAAC,SAAS,GAAG,CAAC,eAAe,GAAG,GAAG,CAAC,eAAe,EAEnD,MAAM,SAAS,IAAI,GAAG,GAAG,CAC3B,SAAQ,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC;WACjB,eAAe,CAClC,KAAK,EAAE,KAAK,EACZ,cAAc,EAAE,OAAO,GAAG,CAAC,eAAe,GAC3C,GAAG,CAAC,eAAe;IAgBN,YAAY,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;IAIlC,aAAa,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO;IAIpC,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI;IAY1C,YAAY,CAAC,QAAQ,EAAE,KAAK,GAAG,IAAI,EAAE,QAAQ,EAAE,KAAK,GAAG,IAAI;IAK3D,qBAAqB,IAAI,IAAI;IAO7C,OAAO,CAAC,aAAa;IAuBrB,OAAO,CAAC,WAAW;CAiBtB"}
@@ -1,7 +1,8 @@
1
1
  import * as Gtk from "@gtkx/ffi/gtk";
2
2
  import { CONSTRUCTOR_PROPS } from "../generated/internal.js";
3
- import { resolvePropMeta, resolveSignal } from "../metadata.js";
3
+ import { isConstructOnlyProp, resolvePropMeta, resolveSignal } from "../metadata.js";
4
4
  import { Node } from "../node.js";
5
+ import { createContainerWithConstructOnly } from "./internal/construct.js";
5
6
  import { WidgetNode } from "./widget.js";
6
7
  const G_TYPE_INVALID = 0;
7
8
  export class EventControllerNode extends Node {
@@ -12,8 +13,13 @@ export class EventControllerNode extends Node {
12
13
  return new Gtk.DropTarget(G_TYPE_INVALID, actions);
13
14
  }
14
15
  const args = (CONSTRUCTOR_PROPS[typeName] ?? []).map((name) => props[name]);
15
- // biome-ignore lint/suspicious/noExplicitAny: Dynamic constructor invocation
16
- return new containerClass(...args);
16
+ return createContainerWithConstructOnly(containerClass, props, () => {
17
+ // biome-ignore lint/suspicious/noExplicitAny: Dynamic constructor invocation
18
+ return new containerClass(...args);
19
+ });
20
+ }
21
+ isValidChild(child) {
22
+ return this.container instanceof Gtk.ShortcutController && child.typeName === "Shortcut";
17
23
  }
18
24
  isValidParent(parent) {
19
25
  return parent instanceof WidgetNode;
@@ -42,6 +48,8 @@ export class EventControllerNode extends Node {
42
48
  for (const name of propNames) {
43
49
  if (name === "children")
44
50
  continue;
51
+ if (isConstructOnlyProp(this.container, name))
52
+ continue;
45
53
  const oldValue = oldProps?.[name];
46
54
  const newValue = newProps[name];
47
55
  if (oldValue === newValue)
@@ -1 +1 @@
1
- {"version":3,"file":"event-controller.js","sourceRoot":"","sources":["../../src/nodes/event-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event-controller.js","sourceRoot":"","sources":["../../src/nodes/event-controller.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,6 @@ export declare class FixedChildNode extends VirtualNode<FixedChildProps, WidgetN
13
13
  detachDeletedInstance(): void;
14
14
  private attachToParent;
15
15
  private detachFromParent;
16
- private repositionChild;
17
- private applyTransform;
16
+ private applyLayoutTransform;
18
17
  }
19
18
  //# sourceMappingURL=fixed-child.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fixed-child.d.ts","sourceRoot":"","sources":["../../src/nodes/fixed-child.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,qBAAa,cAAe,SAAQ,WAAW,CAAC,eAAe,EAAE,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAC/E,YAAY,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;IAIlC,aAAa,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO;IAIpC,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI;IAarD,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IASpC,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAQpC,YAAY,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI;IAgB/E,qBAAqB,IAAI,IAAI;IAO7C,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,cAAc;CAczB"}
1
+ {"version":3,"file":"fixed-child.d.ts","sourceRoot":"","sources":["../../src/nodes/fixed-child.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,GAAG,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,qBAAa,cAAe,SAAQ,WAAW,CAAC,eAAe,EAAE,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAC/E,YAAY,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;IAIlC,aAAa,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO;IAIpC,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI;IAarD,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IASpC,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAQpC,YAAY,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI;IAgB/E,qBAAqB,IAAI,IAAI;IAO7C,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,oBAAoB;CAwB/B"}
@@ -1,3 +1,5 @@
1
+ import * as Graphene from "@gtkx/ffi/graphene";
2
+ import * as Gsk from "@gtkx/ffi/gsk";
1
3
  import * as Gtk from "@gtkx/ffi/gtk";
2
4
  import { hasChanged } from "./internal/props.js";
3
5
  import { VirtualNode } from "./virtual.js";
@@ -16,14 +18,14 @@ export class FixedChildNode extends VirtualNode {
16
18
  super.setParent(parent);
17
19
  if (parent && this.children[0]) {
18
20
  this.attachToParent(parent.container, this.children[0].container);
19
- this.applyTransform();
21
+ this.applyLayoutTransform();
20
22
  }
21
23
  }
22
24
  appendChild(child) {
23
25
  super.appendChild(child);
24
26
  if (this.parent) {
25
27
  this.attachToParent(this.parent.container, child.container);
26
- this.applyTransform();
28
+ this.applyLayoutTransform();
27
29
  }
28
30
  }
29
31
  removeChild(child) {
@@ -37,12 +39,10 @@ export class FixedChildNode extends VirtualNode {
37
39
  if (!this.parent || !this.children[0]) {
38
40
  return;
39
41
  }
40
- const positionChanged = hasChanged(oldProps, newProps, "x") || hasChanged(oldProps, newProps, "y");
41
- if (positionChanged) {
42
- this.repositionChild();
43
- }
44
- else if (hasChanged(oldProps, newProps, "transform")) {
45
- this.applyTransform();
42
+ if (hasChanged(oldProps, newProps, "x") ||
43
+ hasChanged(oldProps, newProps, "y") ||
44
+ hasChanged(oldProps, newProps, "transform")) {
45
+ this.applyLayoutTransform();
46
46
  }
47
47
  }
48
48
  detachDeletedInstance() {
@@ -62,25 +62,25 @@ export class FixedChildNode extends VirtualNode {
62
62
  parent.remove(child);
63
63
  }
64
64
  }
65
- repositionChild() {
65
+ applyLayoutTransform() {
66
66
  if (!this.parent || !this.children[0])
67
67
  return;
68
+ const layoutManager = this.parent.container.getLayoutManager();
69
+ if (!layoutManager)
70
+ return;
71
+ const layoutChild = layoutManager.getLayoutChild(this.children[0].container);
68
72
  const x = this.props.x ?? 0;
69
73
  const y = this.props.y ?? 0;
70
- this.parent.container.remove(this.children[0].container);
71
- this.parent.container.put(this.children[0].container, x, y);
72
- this.applyTransform();
73
- }
74
- applyTransform() {
75
- if (!this.parent || !this.children[0] || !this.props.transform) {
76
- return;
74
+ const position = new Graphene.Point();
75
+ position.init(x, y);
76
+ let transform = new Gsk.Transform();
77
+ transform = transform.translate(position);
78
+ if (this.props.transform && transform) {
79
+ transform = transform.transform(this.props.transform);
77
80
  }
78
- const layoutManager = this.parent.container.getLayoutManager();
79
- if (!layoutManager) {
80
- return;
81
+ if (transform) {
82
+ layoutChild.setTransform(transform);
81
83
  }
82
- const layoutChild = layoutManager.getLayoutChild(this.children[0].container);
83
- layoutChild.setTransform(this.props.transform);
84
84
  }
85
85
  }
86
86
  //# sourceMappingURL=fixed-child.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fixed-child.js","sourceRoot":"","sources":["../../src/nodes/fixed-child.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fixed-child.js","sourceRoot":"","sources":["../../src/nodes/fixed-child.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import * as Gtk from "@gtkx/ffi/gtk";
2
2
  import type { GtkFontDialogButtonProps } from "../jsx.js";
3
3
  import type { Container } from "../types.js";
4
4
  import { WidgetNode } from "./widget.js";
5
- declare const OWN_PROPS: readonly ["fontDesc", "onFontDescChanged", "title", "modal", "language", "useFont", "useSize", "level"];
5
+ declare const OWN_PROPS: readonly ["fontDesc", "onFontDescChanged", "title", "modal", "language", "filter", "fontMap", "useFont", "useSize", "level"];
6
6
  type FontDialogButtonProps = Pick<GtkFontDialogButtonProps, (typeof OWN_PROPS)[number]>;
7
7
  export declare class FontDialogButtonNode extends WidgetNode<Gtk.FontDialogButton, FontDialogButtonProps> {
8
8
  private dialog;
@@ -1 +1 @@
1
- {"version":3,"file":"font-dialog-button.d.ts","sourceRoot":"","sources":["../../src/nodes/font-dialog-button.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,QAAA,MAAM,SAAS,yGASL,CAAC;AAEX,KAAK,qBAAqB,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAExF,qBAAa,oBAAqB,SAAQ,UAAU,CAAC,GAAG,CAAC,gBAAgB,EAAE,qBAAqB,CAAC;IAC7F,OAAO,CAAC,MAAM,CAAiB;WAER,eAAe,CAClC,MAAM,EAAE,qBAAqB,EAC7B,cAAc,EAAE,OAAO,GAAG,CAAC,MAAM,GAClC,SAAS,GAAG,IAAI;gBAOf,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,qBAAqB,EAC5B,SAAS,EAAE,GAAG,CAAC,gBAAgB,EAC/B,aAAa,EAAE,SAAS;IAUZ,YAAY,CAAC,QAAQ,EAAE,qBAAqB,GAAG,IAAI,EAAE,QAAQ,EAAE,qBAAqB,GAAG,IAAI;IAK3G,OAAO,CAAC,aAAa;CA8CxB"}
1
+ {"version":3,"file":"font-dialog-button.d.ts","sourceRoot":"","sources":["../../src/nodes/font-dialog-button.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,QAAA,MAAM,SAAS,8HAWL,CAAC;AAEX,KAAK,qBAAqB,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAExF,qBAAa,oBAAqB,SAAQ,UAAU,CAAC,GAAG,CAAC,gBAAgB,EAAE,qBAAqB,CAAC;IAC7F,OAAO,CAAC,MAAM,CAAiB;WAER,eAAe,CAClC,MAAM,EAAE,qBAAqB,EAC7B,cAAc,EAAE,OAAO,GAAG,CAAC,MAAM,GAClC,SAAS,GAAG,IAAI;gBAOf,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,qBAAqB,EAC5B,SAAS,EAAE,GAAG,CAAC,gBAAgB,EAC/B,aAAa,EAAE,SAAS;IAUZ,YAAY,CAAC,QAAQ,EAAE,qBAAqB,GAAG,IAAI,EAAE,QAAQ,EAAE,qBAAqB,GAAG,IAAI;IAK3G,OAAO,CAAC,aAAa;CAsDxB"}
@@ -7,6 +7,8 @@ const OWN_PROPS = [
7
7
  "title",
8
8
  "modal",
9
9
  "language",
10
+ "filter",
11
+ "fontMap",
10
12
  "useFont",
11
13
  "useSize",
12
14
  "level",
@@ -40,6 +42,12 @@ export class FontDialogButtonNode extends WidgetNode {
40
42
  if (hasChanged(oldProps, newProps, "language") && newProps.language) {
41
43
  this.dialog.setLanguage(newProps.language);
42
44
  }
45
+ if (hasChanged(oldProps, newProps, "filter")) {
46
+ this.dialog.setFilter(newProps.filter);
47
+ }
48
+ if (hasChanged(oldProps, newProps, "fontMap")) {
49
+ this.dialog.setFontMap(newProps.fontMap);
50
+ }
43
51
  if (hasChanged(oldProps, newProps, "useFont")) {
44
52
  this.container.setUseFont(newProps.useFont ?? false);
45
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"font-dialog-button.js","sourceRoot":"","sources":["../../src/nodes/font-dialog-button.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"font-dialog-button.js","sourceRoot":"","sources":["../../src/nodes/font-dialog-button.ts"],"names":[],"mappings":"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"}
@@ -5,15 +5,16 @@ import type { Container } from "../types.js";
5
5
  import { ContainerSlotNode } from "./container-slot.js";
6
6
  import { EventControllerNode } from "./event-controller.js";
7
7
  import { ListItemNode } from "./list-item.js";
8
- import { type GridModelProps } from "./models/grid.js";
8
+ import { ListSectionNode } from "./list-section.js";
9
+ import { type ListModelProps } from "./models/list.js";
9
10
  import { SlotNode } from "./slot.js";
10
11
  import { WidgetNode } from "./widget.js";
11
- declare const OWN_PROPS: readonly ["renderItem", "estimatedItemHeight"];
12
- type GridViewProps = Pick<GtkGridViewProps, (typeof OWN_PROPS)[number]> & GridModelProps;
13
- type GridViewChild = ListItemNode | EventControllerNode | SlotNode | ContainerSlotNode;
12
+ declare const RENDERER_PROPS: readonly ["renderItem", "estimatedItemHeight"];
13
+ type GridViewProps = Pick<GtkGridViewProps, (typeof RENDERER_PROPS)[number]> & ListModelProps;
14
+ type GridViewChild = ListItemNode | ListSectionNode | EventControllerNode | SlotNode | ContainerSlotNode;
14
15
  export declare class GridViewNode extends WidgetNode<Gtk.GridView, GridViewProps, GridViewChild> {
15
16
  private itemRenderer;
16
- private grid;
17
+ private list;
17
18
  constructor(typeName: string, props: GridViewProps, container: Gtk.GridView, rootContainer: Container);
18
19
  isValidChild(child: Node): boolean;
19
20
  appendChild(child: GridViewChild): void;
@@ -1 +1 @@
1
- {"version":3,"file":"grid-view.d.ts","sourceRoot":"","sources":["../../src/nodes/grid-view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,QAAA,MAAM,SAAS,gDAAiD,CAAC;AAEjE,KAAK,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,cAAc,CAAC;AAEzF,KAAK,aAAa,GAAG,YAAY,GAAG,mBAAmB,GAAG,QAAQ,GAAG,iBAAiB,CAAC;AAEvF,qBAAa,YAAa,SAAQ,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE,aAAa,CAAC;IACpF,OAAO,CAAC,YAAY,CAAmB;IACvC,OAAO,CAAC,IAAI,CAAY;gBAEZ,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE,SAAS;IAgBrF,YAAY,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;IAUlC,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAOvC,YAAY,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI;IAO/D,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAOvC,uBAAuB,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO;IAKtD,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI;IAK3E,WAAW,IAAI,IAAI;IAMnB,qBAAqB,IAAI,IAAI;IAK7C,OAAO,CAAC,aAAa;CAiBxB"}
1
+ {"version":3,"file":"grid-view.d.ts","sourceRoot":"","sources":["../../src/nodes/grid-view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,QAAA,MAAM,cAAc,gDAAiD,CAAC;AAGtE,KAAK,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,cAAc,CAAC;AAE9F,KAAK,aAAa,GAAG,YAAY,GAAG,eAAe,GAAG,mBAAmB,GAAG,QAAQ,GAAG,iBAAiB,CAAC;AAEzG,qBAAa,YAAa,SAAQ,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE,aAAa,CAAC;IACpF,OAAO,CAAC,YAAY,CAAmB;IACvC,OAAO,CAAC,IAAI,CAAY;gBAEZ,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE,SAAS;IAiBrF,YAAY,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;IAWlC,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAOvC,YAAY,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI;IAU/D,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAOvC,uBAAuB,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO;IAKtD,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI;IAK3E,WAAW,IAAI,IAAI;IAMnB,qBAAqB,IAAI,IAAI;IAK7C,OAAO,CAAC,aAAa;CAoBxB"}
@@ -3,28 +3,32 @@ import { EventControllerNode } from "./event-controller.js";
3
3
  import { GridItemRenderer } from "./internal/grid-item-renderer.js";
4
4
  import { filterProps, hasChanged } from "./internal/props.js";
5
5
  import { ListItemNode } from "./list-item.js";
6
- import { GridModel } from "./models/grid.js";
6
+ import { ListSectionNode } from "./list-section.js";
7
+ import { ListModel } from "./models/list.js";
7
8
  import { SlotNode } from "./slot.js";
8
9
  import { WidgetNode } from "./widget.js";
9
- const OWN_PROPS = ["renderItem", "estimatedItemHeight"];
10
+ const RENDERER_PROPS = ["renderItem", "estimatedItemHeight"];
11
+ const OWN_PROPS = [...RENDERER_PROPS, "selectionMode", "selected", "onSelectionChanged"];
10
12
  export class GridViewNode extends WidgetNode {
11
13
  itemRenderer;
12
- grid;
14
+ list;
13
15
  constructor(typeName, props, container, rootContainer) {
14
16
  super(typeName, props, container, rootContainer);
15
- this.grid = new GridModel({ owner: this, signalStore: this.signalStore }, {
17
+ this.list = new ListModel({ owner: this, signalStore: this.signalStore }, {
16
18
  selectionMode: props.selectionMode,
17
19
  selected: props.selected,
18
20
  onSelectionChanged: props.onSelectionChanged,
19
- });
21
+ }, true);
20
22
  this.itemRenderer = new GridItemRenderer(this.signalStore);
21
- this.itemRenderer.setStore(this.grid.getStore());
22
- this.grid.getStore().setOnItemUpdated((id) => this.itemRenderer.rebindItem(id));
23
+ this.itemRenderer.setStore(this.list.getFlatStore());
24
+ this.list.setOnItemUpdated((id) => this.itemRenderer.rebindItem(id));
23
25
  this.container.setFactory(this.itemRenderer.getFactory());
24
26
  }
25
27
  isValidChild(child) {
26
28
  if (child instanceof EventControllerNode || child instanceof SlotNode || child instanceof ContainerSlotNode)
27
29
  return true;
30
+ if (child instanceof ListSectionNode)
31
+ return true;
28
32
  if (!(child instanceof ListItemNode))
29
33
  return false;
30
34
  if (child.getChildNodes().length > 0) {
@@ -34,19 +38,20 @@ export class GridViewNode extends WidgetNode {
34
38
  }
35
39
  appendChild(child) {
36
40
  super.appendChild(child);
37
- if (child instanceof ListItemNode) {
38
- this.grid.appendChild(child);
41
+ if (child instanceof ListItemNode || child instanceof ListSectionNode) {
42
+ this.list.appendChild(child);
39
43
  }
40
44
  }
41
45
  insertBefore(child, before) {
42
46
  super.insertBefore(child, before);
43
- if (child instanceof ListItemNode && before instanceof ListItemNode) {
44
- this.grid.insertBefore(child, before);
47
+ if ((child instanceof ListItemNode || child instanceof ListSectionNode) &&
48
+ (before instanceof ListItemNode || before instanceof ListSectionNode)) {
49
+ this.list.insertBefore(child, before);
45
50
  }
46
51
  }
47
52
  removeChild(child) {
48
- if (child instanceof ListItemNode) {
49
- this.grid.removeChild(child);
53
+ if (child instanceof ListItemNode || child instanceof ListSectionNode) {
54
+ this.list.removeChild(child);
50
55
  }
51
56
  super.removeChild(child);
52
57
  }
@@ -60,8 +65,8 @@ export class GridViewNode extends WidgetNode {
60
65
  }
61
66
  commitMount() {
62
67
  super.commitMount();
63
- this.grid.flushBatch();
64
- this.container.setModel(this.grid.getSelectionModel());
68
+ this.list.flushBatch();
69
+ this.container.setModel(this.list.getSelectionModel());
65
70
  }
66
71
  detachDeletedInstance() {
67
72
  this.itemRenderer.dispose();
@@ -74,9 +79,9 @@ export class GridViewNode extends WidgetNode {
74
79
  if (hasChanged(oldProps, newProps, "estimatedItemHeight")) {
75
80
  this.itemRenderer.setEstimatedItemHeight(newProps.estimatedItemHeight ?? null);
76
81
  }
77
- const previousModel = this.grid.getSelectionModel();
78
- this.grid.updateProps(oldProps ? filterProps(oldProps, OWN_PROPS) : null, filterProps(newProps, OWN_PROPS));
79
- const currentModel = this.grid.getSelectionModel();
82
+ const previousModel = this.list.getSelectionModel();
83
+ this.list.updateProps(oldProps ? filterProps(oldProps, RENDERER_PROPS) : null, filterProps(newProps, RENDERER_PROPS));
84
+ const currentModel = this.list.getSelectionModel();
80
85
  if (previousModel !== currentModel) {
81
86
  this.container.setModel(currentModel);
82
87
  }