@willwade/aac-processors 0.0.7 → 0.0.9
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/README.md +33 -3
- package/dist/analytics/history.d.ts +57 -0
- package/dist/analytics/history.js +72 -0
- package/dist/core/analyze.d.ts +10 -0
- package/dist/core/analyze.js +10 -0
- package/dist/core/stringCasing.d.ts +11 -0
- package/dist/core/stringCasing.js +11 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +5 -0
- package/dist/processors/gridset/helpers.d.ts +97 -0
- package/dist/processors/gridset/helpers.js +302 -0
- package/dist/processors/index.d.ts +3 -3
- package/dist/processors/index.js +31 -2
- package/dist/processors/obfProcessor.js +6 -1
- package/dist/processors/snap/helpers.d.ts +87 -0
- package/dist/processors/snap/helpers.js +261 -2
- package/dist/processors/touchchat/helpers.d.ts +12 -0
- package/dist/processors/touchchat/helpers.js +12 -2
- package/dist/utils/dotnetTicks.d.ts +13 -0
- package/dist/utils/dotnetTicks.js +21 -0
- package/package.json +8 -6
- package/docs/.keep +0 -1
- package/docs/ApplePanels.md +0 -309
- package/docs/Grid3-Styling-Guide.md +0 -287
- package/docs/Grid3-XML-Format.md +0 -1788
- package/docs/TobiiDynavox-Snap-Details.md +0 -394
- package/docs/asterics-Grid-fileformat-details.md +0 -443
- package/docs/obf_.obz Open Board File Formats.md +0 -432
- package/docs/touchchat.md +0 -520
package/docs/Grid3-XML-Format.md
DELETED
|
@@ -1,1788 +0,0 @@
|
|
|
1
|
-
# Grid 3 File Docs
|
|
2
|
-
|
|
3
|
-
## Introduction
|
|
4
|
-
|
|
5
|
-
This document provides a detailed technical guide to the structure and functionalities of Grid 3 files, focusing on the .gridset format used in Augmentative and Alternative Communication (AAC) boards. This guide is targeted at developers, researchers, and advanced users.
|
|
6
|
-
|
|
7
|
-
## Terminology
|
|
8
|
-
|
|
9
|
-
- Gridset: A zipped archive containing grid files and settings.
|
|
10
|
-
- AAC: Augmentative and Alternative Communication.
|
|
11
|
-
- Cell: A button on an AAC board that can have various functionalities.
|
|
12
|
-
- ScanBlock: A group of cells that are scanned together.
|
|
13
|
-
|
|
14
|
-
## Gridset Archive Structure
|
|
15
|
-
|
|
16
|
-
The grid files are part of a `.gridset` zipped archive. Renaming the file to `.zip` allows you to unzip and explore its contents.
|
|
17
|
-
|
|
18
|
-
### Directory Structure
|
|
19
|
-
|
|
20
|
-
- **Grids/**: Directory where each XML grid file resides. E.g., `Grids/About me/grid.xml`
|
|
21
|
-
- **Settings0/**: Directory containing settings and styles for the grid.
|
|
22
|
-
- **FileMap.xml** An XML file that maps grid XML files and their associated dynamic files.
|
|
23
|
-
|
|
24
|
-
```xml
|
|
25
|
-
<FileMap xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
|
26
|
-
<!-- Entry for each grid XML file and its dynamic files -->
|
|
27
|
-
<Entries>
|
|
28
|
-
<Entry StaticFile="Grids\Treats\grid.xml">
|
|
29
|
-
<DynamicFiles>
|
|
30
|
-
<File>Grids\Treats\wordlist-0-0.gridbmp</File>
|
|
31
|
-
</DynamicFiles>
|
|
32
|
-
</Entry>
|
|
33
|
-
<!-- ... -->
|
|
34
|
-
</Entries>
|
|
35
|
-
</FileMap>
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
- **Settings0/ettings.xml** Contains settings related to the gridset.
|
|
39
|
-
|
|
40
|
-
### Purpose
|
|
41
|
-
|
|
42
|
-
The `Settings0/settings.xml` file in a Grid 3 gridset contains various settings related to the gridset, including the identification of the home grid.
|
|
43
|
-
|
|
44
|
-
### Structure
|
|
45
|
-
|
|
46
|
-
The file is an XML document with multiple settings, one of which is the `StartGrid`. This setting specifies the home grid, which is the default starting point or main screen for the gridset.
|
|
47
|
-
|
|
48
|
-
### Key Element: `StartGrid`
|
|
49
|
-
|
|
50
|
-
- **`<StartGrid>`**: This element holds the name of the home grid. It's the grid that the user sees when they first access the gridset or return to the main menu.
|
|
51
|
-
|
|
52
|
-
### Example
|
|
53
|
-
|
|
54
|
-
An example excerpt from a `Settings0/settings.xml` file:
|
|
55
|
-
|
|
56
|
-
```xml
|
|
57
|
-
<GridSetSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
|
58
|
-
<!-- ... other settings ... -->
|
|
59
|
-
<StartGrid>01 CORE pg1</StartGrid>
|
|
60
|
-
<!-- ... other settings ... -->
|
|
61
|
-
</GridSetSettings>
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
- **Settings/Styles/style.xml** Defines various styles that can be applied to cells.
|
|
65
|
-
|
|
66
|
-
```xml
|
|
67
|
-
<StyleData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
|
68
|
-
<!-- Definition of different styles -->
|
|
69
|
-
</StyleData>
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
Each style is documented here for then referencing ib each pages grid.xml e.g
|
|
73
|
-
|
|
74
|
-
```xml
|
|
75
|
-
<Styles>
|
|
76
|
-
<Style Key="Workspace">
|
|
77
|
-
<BackColour>#B8312FFF</BackColour>
|
|
78
|
-
<TileColour>#FAC51CFF</TileColour>
|
|
79
|
-
<BorderColour>#FEEFE7FF</BorderColour>
|
|
80
|
-
<FontColour>#FDE8A4FF</FontColour>
|
|
81
|
-
<FontName>Dosis</FontName>
|
|
82
|
-
<FontSize>40</FontSize>
|
|
83
|
-
</Style>
|
|
84
|
-
<!-- ,, -->
|
|
85
|
-
```
|
|
86
|
-
In this example, the <StartGrid> element indicates that "01 CORE pg1" is the home grid for this gridset.
|
|
87
|
-
|
|
88
|
-
### Usage in the Application
|
|
89
|
-
In the gridset comparison application, this file is parsed to determine the starting grid for navigation path calculations. The home grid is essential for understanding the user's journey through the gridset and for calculating the effort required to access different buttons or commands.
|
|
90
|
-
|
|
91
|
-
## Grid XML File Format Documentation
|
|
92
|
-
|
|
93
|
-
### Overview
|
|
94
|
-
|
|
95
|
-
Grid XML files are used to describe the layout and content of AAC (Augmentative and Alternative Communication) boards used in the Grid software. They contain information about the grid layout (rows and columns), buttons (also called cells), and their properties.
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
### Cell Positioning System
|
|
99
|
-
|
|
100
|
-
Cells are positioned using a zero-based coordinate system:
|
|
101
|
-
- **X**: 0-based column index (leftmost column = 0)
|
|
102
|
-
- **Y**: 0-based row index (topmost row = 0)
|
|
103
|
-
- **ColumnSpan**: Number of columns the cell spans (default: 1)
|
|
104
|
-
- **RowSpan**: Number of rows the cell spans (default: 1)
|
|
105
|
-
|
|
106
|
-
```xml
|
|
107
|
-
<Cell X="2" Y="1" ColumnSpan="2" RowSpan="1">
|
|
108
|
-
<!-- Cell spans columns 2-3, row 1 -->
|
|
109
|
-
</Cell>
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
#### Column/Row Size System
|
|
113
|
-
|
|
114
|
-
Both columns and rows support size definitions with these values:
|
|
115
|
-
- `ExtraSmall` (0.33x)
|
|
116
|
-
- `Small` (0.66x)
|
|
117
|
-
- `Medium` (1.0x) - default
|
|
118
|
-
- `Large` (1.66x)
|
|
119
|
-
- `ExtraLarge` (2.5x)
|
|
120
|
-
|
|
121
|
-
```xml
|
|
122
|
-
<ColumnDefinitions>
|
|
123
|
-
<ColumnDefinition Width="Large" />
|
|
124
|
-
<ColumnDefinition Width="Medium" />
|
|
125
|
-
</ColumnDefinitions>
|
|
126
|
-
<RowDefinitions>
|
|
127
|
-
<RowDefinition Height="ExtraSmall" />
|
|
128
|
-
</RowDefinitions>
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
#### Full Example
|
|
133
|
-
|
|
134
|
-
```xml
|
|
135
|
-
<Grid xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
|
136
|
-
<!--Background colour - hex code -->
|
|
137
|
-
<BackgroundColour>#E2EDF8FF</BackgroundColour>
|
|
138
|
-
<!-- Unique ID -->
|
|
139
|
-
<GridGuid>e631d2c5-cc2c-49b3-b6bb-eb1c81af84af</GridGuid>
|
|
140
|
-
<!-- This defines the column size -->
|
|
141
|
-
<ColumnDefinitions>
|
|
142
|
-
<ColumnDefinition />
|
|
143
|
-
<ColumnDefinition />
|
|
144
|
-
<ColumnDefinition />
|
|
145
|
-
<ColumnDefinition />
|
|
146
|
-
<ColumnDefinition />
|
|
147
|
-
<ColumnDefinition />
|
|
148
|
-
<ColumnDefinition />
|
|
149
|
-
<ColumnDefinition />
|
|
150
|
-
<ColumnDefinition />
|
|
151
|
-
</ColumnDefinitions>
|
|
152
|
-
<!-- This defines the row or column size -->
|
|
153
|
-
<RowDefinitions>
|
|
154
|
-
<RowDefinition />
|
|
155
|
-
<RowDefinition />
|
|
156
|
-
<RowDefinition />
|
|
157
|
-
<RowDefinition />
|
|
158
|
-
<RowDefinition />
|
|
159
|
-
<RowDefinition />
|
|
160
|
-
<RowDefinition />
|
|
161
|
-
</RowDefinitions>
|
|
162
|
-
<!-- AutoContentCommands - Need some more testing to detail this -->
|
|
163
|
-
<AutoContentCommands>
|
|
164
|
-
<AutoContentCommandCollection AutoContentType="Prediction">
|
|
165
|
-
<Commands>
|
|
166
|
-
<Command ID="AutoContent.Activate">
|
|
167
|
-
<Parameter Key="autocontenttype">Prediction</Parameter>
|
|
168
|
-
</Command>
|
|
169
|
-
</Commands>
|
|
170
|
-
</AutoContentCommandCollection>
|
|
171
|
-
</AutoContentCommands>
|
|
172
|
-
<Cells>
|
|
173
|
-
<Cell>
|
|
174
|
-
<Content>
|
|
175
|
-
<Commands>
|
|
176
|
-
<Command ID="Jump.To">
|
|
177
|
-
<Parameter Key="grid">Special</Parameter>
|
|
178
|
-
</Command>
|
|
179
|
-
</Commands>
|
|
180
|
-
<CaptionAndImage>
|
|
181
|
-
<Caption>Special</Caption>
|
|
182
|
-
<Image>[grid3x]star.wmf</Image>
|
|
183
|
-
</CaptionAndImage>
|
|
184
|
-
<Style>
|
|
185
|
-
<BasedOnStyle>Navigation category style</BasedOnStyle>
|
|
186
|
-
</Style>
|
|
187
|
-
</Content>
|
|
188
|
-
</Cell>
|
|
189
|
-
<!--etc-->
|
|
190
|
-
</Cells>
|
|
191
|
-
<!-- this gives highlight description text for each Block in the block scan. NB: max of 8 -->
|
|
192
|
-
<ScanBlockAudioDescriptions>
|
|
193
|
-
<ScanBlockAudioDescription>
|
|
194
|
-
<ScanBlock>1</ScanBlock>
|
|
195
|
-
</ScanBlockAudioDescription>
|
|
196
|
-
<ScanBlockAudioDescription>
|
|
197
|
-
<ScanBlock>2</ScanBlock>
|
|
198
|
-
</ScanBlockAudioDescription>
|
|
199
|
-
<ScanBlockAudioDescription>
|
|
200
|
-
<ScanBlock>3</ScanBlock>
|
|
201
|
-
</ScanBlockAudioDescription>
|
|
202
|
-
<ScanBlockAudioDescription>
|
|
203
|
-
<ScanBlock>4</ScanBlock>
|
|
204
|
-
</ScanBlockAudioDescription>
|
|
205
|
-
<ScanBlockAudioDescription>
|
|
206
|
-
<ScanBlock>5</ScanBlock>
|
|
207
|
-
</ScanBlockAudioDescription>
|
|
208
|
-
<ScanBlockAudioDescription>
|
|
209
|
-
<ScanBlock>6</ScanBlock>
|
|
210
|
-
</ScanBlockAudioDescription>
|
|
211
|
-
<ScanBlockAudioDescription>
|
|
212
|
-
<ScanBlock>7</ScanBlock>
|
|
213
|
-
</ScanBlockAudioDescription>
|
|
214
|
-
<ScanBlockAudioDescription>
|
|
215
|
-
<ScanBlock>8</ScanBlock>
|
|
216
|
-
</ScanBlockAudioDescription>
|
|
217
|
-
</ScanBlockAudioDescriptions>
|
|
218
|
-
<!-- Wordlists - this is an AutoContent Type cell. More info to come here>
|
|
219
|
-
<WordList>
|
|
220
|
-
<Items />
|
|
221
|
-
</WordList>
|
|
222
|
-
</Grid>
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
### Structure
|
|
226
|
-
|
|
227
|
-
- **Root Element**: The root element usually encapsulates the entire XML document and contains all other elements.
|
|
228
|
-
|
|
229
|
-
```xml
|
|
230
|
-
<Root>
|
|
231
|
-
<!-- Child elements go here -->
|
|
232
|
-
</Root>
|
|
233
|
-
```
|
|
234
|
-
|
|
235
|
-
#### Elements and Attributes
|
|
236
|
-
|
|
237
|
-
- **Grid Element**
|
|
238
|
-
- **BackgroundColour**: Specifies the background color of the grid using a hex code. E.g., `<BackgroundColour>#E2EDF8FF</BackgroundColour>`
|
|
239
|
-
- **GridGuid**: A unique identifier for the grid. E.g., `<GridGuid>e631d2c5-cc2c-49b3-b6bb-eb1c81af84af</GridGuid>`
|
|
240
|
-
|
|
241
|
-
#### Layout Information
|
|
242
|
-
|
|
243
|
-
- **ColumnDefinitions**: Defines the number of columns in the grid.
|
|
244
|
-
|
|
245
|
-
```xml
|
|
246
|
-
<ColumnDefinitions>
|
|
247
|
-
<ColumnDefinition />
|
|
248
|
-
<!-- Repeat for each column -->
|
|
249
|
-
</ColumnDefinitions>
|
|
250
|
-
```
|
|
251
|
-
|
|
252
|
-
- **RowDefinitions**: Defines the number of rows in the grid.
|
|
253
|
-
|
|
254
|
-
```xml
|
|
255
|
-
<RowDefinitions>
|
|
256
|
-
<RowDefinition />
|
|
257
|
-
<!-- Repeat for each row -->
|
|
258
|
-
</RowDefinitions>
|
|
259
|
-
```
|
|
260
|
-
|
|
261
|
-
- **AutoContentCommands**: A section for commands related to auto content like predictions.
|
|
262
|
-
|
|
263
|
-
```xml
|
|
264
|
-
<AutoContentCommands>
|
|
265
|
-
<AutoContentCommandCollection AutoContentType="Prediction">
|
|
266
|
-
<Commands>
|
|
267
|
-
<Command ID="AutoContent.Activate">
|
|
268
|
-
<Parameter Key="autocontenttype">Prediction</Parameter>
|
|
269
|
-
</Command>
|
|
270
|
-
</Commands>
|
|
271
|
-
</AutoContentCommandCollection>
|
|
272
|
-
</AutoContentCommands>
|
|
273
|
-
```
|
|
274
|
-
|
|
275
|
-
- **ScanBlockAudioDescriptions**: Provides audio descriptions for each scan block. The maximum number of scan blocks is 8.
|
|
276
|
-
```xml
|
|
277
|
-
<ScanBlockAudioDescriptions>
|
|
278
|
-
<ScanBlockAudioDescription>
|
|
279
|
-
<ScanBlock>1</ScanBlock>
|
|
280
|
-
</ScanBlockAudioDescription>
|
|
281
|
-
<!-- ... -->
|
|
282
|
-
</ScanBlockAudioDescriptions>
|
|
283
|
-
```
|
|
284
|
-
|
|
285
|
-
- **WordList:** Defines an AutoContent Type cell, which may contain word lists or other dynamic content.
|
|
286
|
-
|
|
287
|
-
```xml
|
|
288
|
-
<WordList>
|
|
289
|
-
<Items>
|
|
290
|
-
<WordListItem>
|
|
291
|
-
<Text>
|
|
292
|
-
<s Image="[widgit]widgit rebus\h\hello.emf">
|
|
293
|
-
<r>Hello</r>
|
|
294
|
-
</s>
|
|
295
|
-
</Text>
|
|
296
|
-
<Image>[widgit]widgit rebus\h\hello.emf</Image>
|
|
297
|
-
<PartOfSpeech>Unknown</PartOfSpeech>
|
|
298
|
-
</WordListItem>
|
|
299
|
-
<!-- etc -->
|
|
300
|
-
</Items>
|
|
301
|
-
</WordList>
|
|
302
|
-
```
|
|
303
|
-
|
|
304
|
-
### Buttons (Cells)
|
|
305
|
-
|
|
306
|
-
#### Overview
|
|
307
|
-
|
|
308
|
-
- **Cells**: Contains the definitions for each button or cell.
|
|
309
|
-
|
|
310
|
-
```xml
|
|
311
|
-
<Cells>
|
|
312
|
-
<Cell>
|
|
313
|
-
<!-- Cell properties go here -->
|
|
314
|
-
</Cell>
|
|
315
|
-
<!-- Repeat for each cell -->
|
|
316
|
-
</Cells>
|
|
317
|
-
```
|
|
318
|
-
#### Attributes of Cell
|
|
319
|
-
|
|
320
|
-
Cells are the primary elements that make up a grid. They are defined using the <Cell> tag and can have various attributes.
|
|
321
|
-
|
|
322
|
-
- X and Y: These define the cell's position in the grid, corresponding to its column (X) and row (Y).
|
|
323
|
-
- ScanBlock: Optional attribute to define which scan block the cell belongs to.
|
|
324
|
-
- There is a maximum of 8 scan blocks per page.
|
|
325
|
-
- Values range from 1 to 8.
|
|
326
|
-
- A cell can be in any of these blocks.
|
|
327
|
-
- If not specified, the attribute is not needed for that particular cell.
|
|
328
|
-
- ColumnSpan and RowSpan: Define how many columns or rows the cell spans.
|
|
329
|
-
|
|
330
|
-
- AutoContentType, ID, Key: Used in various elements and commands to define their specific types and identifiers.
|
|
331
|
-
- Height: Attribute in RowDefinitions/RowDefinition, specifies the height of rows.
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
```xml
|
|
336
|
-
<Cell X="7" Y="1" ScanBlock="2">
|
|
337
|
-
```
|
|
338
|
-
|
|
339
|
-
##### Properties of Cell
|
|
340
|
-
|
|
341
|
-
- **Caption**: The text displayed on the button.
|
|
342
|
-
|
|
343
|
-
```xml
|
|
344
|
-
<Caption>Hello</Caption>
|
|
345
|
-
```
|
|
346
|
-
|
|
347
|
-
- **CaptionAndImage**: It has a image and caption. Image relates to a ``[symbol-library]filename.extension`` (NB: The Grid licences Widgit)
|
|
348
|
-
|
|
349
|
-
- AudioDescription: Found within CaptionAndImage, provides audio descriptions for cells.
|
|
350
|
-
|
|
351
|
-
```
|
|
352
|
-
<CaptionAndImage>
|
|
353
|
-
<Caption>Keyboard</Caption>
|
|
354
|
-
<Image>[grid3x]keyboard.wmf</Image>
|
|
355
|
-
</CaptionAndImage>
|
|
356
|
-
```
|
|
357
|
-
|
|
358
|
-
- **Style**: Styles are referenced within cells to determine their appearance.
|
|
359
|
-
|
|
360
|
-
- BasedOnStyle: Refers to a predefined style from style.xml.
|
|
361
|
-
- BackColour, TileColour, BorderColour, FontColour, FontName, FontSize: Define various aspects of the cell's appearance.
|
|
362
|
-
|
|
363
|
-
```xml
|
|
364
|
-
<Cell X="7" Y="1">
|
|
365
|
-
<Content>
|
|
366
|
-
<!-- ... -->
|
|
367
|
-
<Style>
|
|
368
|
-
<BasedOnStyle>Actions category style</BasedOnStyle>
|
|
369
|
-
</Style>
|
|
370
|
-
</Content>
|
|
371
|
-
</Cell>
|
|
372
|
-
```
|
|
373
|
-
|
|
374
|
-
- **BasedOnStyle**: Refers to a predefined style from style.xml.
|
|
375
|
-
|
|
376
|
-
You can extend the style of a cell like this
|
|
377
|
-
|
|
378
|
-
```xml
|
|
379
|
-
<Style>
|
|
380
|
-
<BasedOnStyle>Verbs</BasedOnStyle>
|
|
381
|
-
<BackColour>#B8312FFF</BackColour>
|
|
382
|
-
<TileColour>#FAC51CFF</TileColour>
|
|
383
|
-
<BorderColour>#FEEFE7FF</BorderColour>
|
|
384
|
-
<FontColour>#FDE8A4FF</FontColour>
|
|
385
|
-
<FontName>Dosis</FontName>
|
|
386
|
-
<FontSize>40</FontSize>
|
|
387
|
-
</Style>
|
|
388
|
-
```
|
|
389
|
-
|
|
390
|
-
Note on WordList cells. These should have a ContentType = AutoContent ContentSubType = WodList
|
|
391
|
-
|
|
392
|
-
- WordList/Items: Specifies items within a word list, crucial for grids that rely on dynamic content.
|
|
393
|
-
|
|
394
|
-
```xml
|
|
395
|
-
<Cell X="3" Y="2" ScanBlock="2">
|
|
396
|
-
<Content>
|
|
397
|
-
<ContentType>AutoContent</ContentType>
|
|
398
|
-
<ContentSubType>WordList</ContentSubType>
|
|
399
|
-
<CaptionAndImage xsi:nil="true" />
|
|
400
|
-
<Style>
|
|
401
|
-
<BasedOnStyle>Auto content</BasedOnStyle>
|
|
402
|
-
<BorderColour>#2C82C9FF</BorderColour>
|
|
403
|
-
</Style>
|
|
404
|
-
</Content>
|
|
405
|
-
</Cell>
|
|
406
|
-
```
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
## WordList
|
|
410
|
-
|
|
411
|
-
### Overview
|
|
412
|
-
|
|
413
|
-
`WordList` elements are used to define a list of words or phrases within a grid. They are typically found within `Cell` elements and are used to provide a dynamic list of vocabulary items.
|
|
414
|
-
|
|
415
|
-
### Structure
|
|
416
|
-
|
|
417
|
-
- **WordList**: The root element for the word list.
|
|
418
|
-
- **Items**: Container for all the items in the word list.
|
|
419
|
-
- **WordListItem**: Individual item within the word list.
|
|
420
|
-
- **Text**: Contains the textual representation of the item.
|
|
421
|
-
- **s**: An element that may include an image path and encloses the raw text of the item.
|
|
422
|
-
- **r**: The raw text of the item, representing the word or phrase.
|
|
423
|
-
- **Image**: Path to an image representing the item, typically in a symbol library.
|
|
424
|
-
- **PartOfSpeech**: Category of the part of speech for the item (e.g., noun, verb).
|
|
425
|
-
|
|
426
|
-
### Example XML Structure
|
|
427
|
-
|
|
428
|
-
```xml
|
|
429
|
-
<WordList>
|
|
430
|
-
<Items>
|
|
431
|
-
<WordListItem>
|
|
432
|
-
<Text>
|
|
433
|
-
<s Image="[symbol-library]image-path">
|
|
434
|
-
<r>word</r>
|
|
435
|
-
</s>
|
|
436
|
-
</Text>
|
|
437
|
-
<Image>[symbol-library]image-path</Image>
|
|
438
|
-
<PartOfSpeech>Part of speech category</PartOfSpeech>
|
|
439
|
-
</WordListItem>
|
|
440
|
-
<!-- Additional WordListItems... -->
|
|
441
|
-
</Items>
|
|
442
|
-
</WordList>
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
## Commands
|
|
446
|
-
|
|
447
|
-
Commands are actions that a cell can execute when activated. They are defined under the `<Commands>` tag within a `<Content>` tag in a cell.
|
|
448
|
-
|
|
449
|
-
### Simple Command
|
|
450
|
-
|
|
451
|
-
Commands associated with a cell are defined under the <Commands> tag within a <Content> tag.
|
|
452
|
-
A command without parameters looks like the following:
|
|
453
|
-
|
|
454
|
-
```xml
|
|
455
|
-
<Command ID="Jump.Back" />
|
|
456
|
-
```
|
|
457
|
-
|
|
458
|
-
### AutoContent Commands
|
|
459
|
-
|
|
460
|
-
- AutoContentCommands/AutoContentCommandCollection: Defines a collection of auto content commands, such as predictions or word lists.
|
|
461
|
-
|
|
462
|
-
### Command with Parameters
|
|
463
|
-
|
|
464
|
-
A command with additional settings can have parameters:
|
|
465
|
-
|
|
466
|
-
```xml
|
|
467
|
-
<Command ID="Action.Speak">
|
|
468
|
-
<Parameter Key="unit">All</Parameter>
|
|
469
|
-
<Parameter Key="movecaret">0</Parameter>
|
|
470
|
-
</Command>
|
|
471
|
-
```
|
|
472
|
-
|
|
473
|
-
### Parameter Types and Serialization
|
|
474
|
-
|
|
475
|
-
Grid 3 uses several parameter definition types with specific serialization formats:
|
|
476
|
-
|
|
477
|
-
#### Parameter Definition Types
|
|
478
|
-
|
|
479
|
-
- **`StringParameterDefinition`**: String values stored as-is
|
|
480
|
-
- **`BooleanParameterDefinition`**: Boolean values serialized as "1" (true) or "0" (false)
|
|
481
|
-
- **`IntParameterDefinition`**: Integer values stored as strings using invariant culture
|
|
482
|
-
- **`DoubleParameterDefinition`**: Double values stored as strings
|
|
483
|
-
- **`EnumParameterDefinition<T>`**: Enum values serialized as their string names
|
|
484
|
-
- **`TimeSpanParameterDefinition`**: TimeSpan values stored as strings
|
|
485
|
-
- **`TextBaseParameterDefinition`**: Rich text with symbols stored as XML
|
|
486
|
-
- **`WordListParameterDefinition`**: WordList objects serialized as XML
|
|
487
|
-
- **`FileDataParameterDefinition`**: File data for embedded files
|
|
488
|
-
|
|
489
|
-
### Common Commands and Parameters
|
|
490
|
-
|
|
491
|
-
#### Navigation Commands
|
|
492
|
-
|
|
493
|
-
##### `Jump.To`
|
|
494
|
-
Navigate to another grid
|
|
495
|
-
- **Parameters:**
|
|
496
|
-
- `grid` (string): Target grid name within the .gridset bundle
|
|
497
|
-
|
|
498
|
-
```xml
|
|
499
|
-
<Command ID="Jump.To">
|
|
500
|
-
<Parameter Key="grid">Quantity</Parameter>
|
|
501
|
-
</Command>
|
|
502
|
-
```
|
|
503
|
-
|
|
504
|
-
##### `Jump.Back`
|
|
505
|
-
Return to previous grid
|
|
506
|
-
- **Parameters:** None
|
|
507
|
-
|
|
508
|
-
```xml
|
|
509
|
-
<Command ID="Jump.Back" />
|
|
510
|
-
```
|
|
511
|
-
|
|
512
|
-
##### `Jump.Home`
|
|
513
|
-
Navigate to start grid
|
|
514
|
-
- **Parameters:** None
|
|
515
|
-
|
|
516
|
-
```xml
|
|
517
|
-
<Command ID="Jump.Home" />
|
|
518
|
-
```
|
|
519
|
-
|
|
520
|
-
##### `Jump.ToKeyboard`
|
|
521
|
-
Navigate to keyboard grid
|
|
522
|
-
- **Parameters:** None
|
|
523
|
-
|
|
524
|
-
```xml
|
|
525
|
-
<Command ID="Jump.ToKeyboard" />
|
|
526
|
-
```
|
|
527
|
-
|
|
528
|
-
#### Text Commands
|
|
529
|
-
|
|
530
|
-
##### `Action.InsertText`
|
|
531
|
-
Insert text with optional symbols and grammar information
|
|
532
|
-
- **Parameters:**
|
|
533
|
-
- `text` (TextBase): Rich text content with optional symbols
|
|
534
|
-
- `pos` (PartOfSpeech): Part of speech (Unknown, Noun, Verb, etc.)
|
|
535
|
-
- `person` (string): Grammatical person information
|
|
536
|
-
- `number` (string): Grammatical number information
|
|
537
|
-
- `gender` (string): Grammatical gender information
|
|
538
|
-
- `verbstate` (VerbState): Verb state (Reset, etc.)
|
|
539
|
-
- `showincelllabel` (ShowInCellLabel): Display options for cell label
|
|
540
|
-
|
|
541
|
-
```xml
|
|
542
|
-
<Command ID="Action.InsertText">
|
|
543
|
-
<Parameter Key="text">
|
|
544
|
-
<SymbolRun Image="[WIDGIT]path/to/symbol.emf">
|
|
545
|
-
<Run>Hello</Run>
|
|
546
|
-
<Run> </Run>
|
|
547
|
-
</SymbolRun>
|
|
548
|
-
</Parameter>
|
|
549
|
-
<Parameter Key="verbstate">Reset</Parameter>
|
|
550
|
-
</Command>
|
|
551
|
-
```
|
|
552
|
-
|
|
553
|
-
##### `Action.Letter`
|
|
554
|
-
Insert single character
|
|
555
|
-
- **Parameters:**
|
|
556
|
-
- `letter` (string): Single character to insert
|
|
557
|
-
|
|
558
|
-
```xml
|
|
559
|
-
<Command ID="Action.Letter">
|
|
560
|
-
<Parameter Key="letter">A</Parameter>
|
|
561
|
-
</Command>
|
|
562
|
-
```
|
|
563
|
-
|
|
564
|
-
##### `Action.DeleteWord`
|
|
565
|
-
Delete last word
|
|
566
|
-
- **Parameters:** None
|
|
567
|
-
|
|
568
|
-
```xml
|
|
569
|
-
<Command ID="Action.DeleteWord" />
|
|
570
|
-
```
|
|
571
|
-
|
|
572
|
-
##### `Action.DeleteLetter`
|
|
573
|
-
Delete last character
|
|
574
|
-
- **Parameters:** None
|
|
575
|
-
|
|
576
|
-
```xml
|
|
577
|
-
<Command ID="Action.DeleteLetter" />
|
|
578
|
-
```
|
|
579
|
-
|
|
580
|
-
##### `Action.Clear`
|
|
581
|
-
Clear message window
|
|
582
|
-
- **Parameters:** None
|
|
583
|
-
|
|
584
|
-
```xml
|
|
585
|
-
<Command ID="Action.Clear" />
|
|
586
|
-
```
|
|
587
|
-
|
|
588
|
-
##### `Action.Copy`
|
|
589
|
-
Copy text to clipboard
|
|
590
|
-
- **Parameters:** None
|
|
591
|
-
|
|
592
|
-
```xml
|
|
593
|
-
<Command ID="Action.Copy" />
|
|
594
|
-
```
|
|
595
|
-
|
|
596
|
-
##### `Action.Paste`
|
|
597
|
-
Paste text from clipboard
|
|
598
|
-
- **Parameters:** None
|
|
599
|
-
|
|
600
|
-
```xml
|
|
601
|
-
<Command ID="Action.Paste" />
|
|
602
|
-
```
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
## Symbols
|
|
606
|
-
|
|
607
|
-
Symbols (images) are used in cells to represent words, actions, or other elements. They are defined using the <Image> tag. eg
|
|
608
|
-
|
|
609
|
-
```xml
|
|
610
|
-
Image>[grid3x]star.wmf</Image>
|
|
611
|
-
```
|
|
612
|
-
|
|
613
|
-
So the part in square brackets is the library name, and the part in round brackets is the filename.
|
|
614
|
-
|
|
615
|
-
### Libraries
|
|
616
|
-
|
|
617
|
-
Libraries are collections of symbols that can be used in cells. The location of these are found in ``C:\Program Files (x86)\Smartbox\Grid3\Resources\Symbols\``
|
|
618
|
-
|
|
619
|
-
Here are files names like ``WIDGIT.symbols``
|
|
620
|
-
|
|
621
|
-
This is a zipped archive. With the following structure
|
|
622
|
-
|
|
623
|
-
```bash
|
|
624
|
-
categories.pix
|
|
625
|
-
censored.txt
|
|
626
|
-
library.pix
|
|
627
|
-
symbols/ # Symbol files. Can be a organised structure of folders files eg widgit rebus/h/hello.wmf or just a list of wmf files
|
|
628
|
-
symbols_rtl/ # Same as symbols but ones that have been flipped for rtl languages
|
|
629
|
-
```
|
|
630
|
-
|
|
631
|
-
#### .pix Files (Symbol Index Files)
|
|
632
|
-
|
|
633
|
-
Based on the Grid 3 source code implementation, .pix files are symbol index files that provide search and categorization capabilities for symbol libraries:
|
|
634
|
-
|
|
635
|
-
**File Types and Purposes**:
|
|
636
|
-
|
|
637
|
-
**`[library].pix` (e.g., `WIDGIT.pix`, `SSTIX#.pix`)**:
|
|
638
|
-
- **Purpose**: Main symbol search index for a symbol library
|
|
639
|
-
- **Implementation**: Uses `CombinedValueIndex` class for symbol-to-caption mapping
|
|
640
|
-
- **Content**: Maps symbol IDs to their text captions/names for search functionality
|
|
641
|
-
- **Usage**: Enables text-based symbol search (e.g., searching "knife" returns matching symbols)
|
|
642
|
-
- **Localization**: Language-specific (e.g., `[widgit] en-GB names.pix`)
|
|
643
|
-
|
|
644
|
-
**`categories.pix`**:
|
|
645
|
-
- **Purpose**: Symbol categorization index for organizing symbols by topic/category
|
|
646
|
-
- **Implementation**: Uses `MultiValueIndex` class for category-based organization
|
|
647
|
-
- **Content**: Maps category names to lists of symbol IDs within each category
|
|
648
|
-
- **Usage**: Enables browsing symbols by categories (e.g., "Food", "Animals", "Actions")
|
|
649
|
-
- **Integration**: Works alongside main .pix files to provide category-based symbol browsing
|
|
650
|
-
|
|
651
|
-
**`library.pix`**:
|
|
652
|
-
- **Purpose**: Library metadata and symbol reference index
|
|
653
|
-
- **Content**: Contains symbol metadata, file paths, and library organization information
|
|
654
|
-
- **Usage**: Supports symbol reference resolution and library management
|
|
655
|
-
|
|
656
|
-
**Technical Implementation**:
|
|
657
|
-
|
|
658
|
-
**Index Classes**:
|
|
659
|
-
- **`CombinedValueIndex`**: Handles both single-value and multi-value indexing
|
|
660
|
-
- **`MultiValueIndex`**: Manages category-to-symbol-list mappings
|
|
661
|
-
- **`SingleValueIndex`**: Simple key-value symbol-to-caption mappings
|
|
662
|
-
- **`SymbolLibraryPictureSearchSource`**: Provides search interface using these indexes
|
|
663
|
-
|
|
664
|
-
**Symbol Reference Resolution**:
|
|
665
|
-
```csharp
|
|
666
|
-
// Library key conversion (source code implementation)
|
|
667
|
-
string libKey = PictureLibraryHelper.ConvertLibraryIdToKey(libraryId).ToLower();
|
|
668
|
-
var entry = searchFolder.GetEntry(libKey + ".pix");
|
|
669
|
-
var combinedIndex = new CombinedValueIndex(entry, languageName, true);
|
|
670
|
-
|
|
671
|
-
// Category index loading
|
|
672
|
-
var categoryEntry = library.GetArchiveEntry("categories.pix");
|
|
673
|
-
var categoryIndex = new MultiValueIndex(categoryEntry, languageName, true);
|
|
674
|
-
```
|
|
675
|
-
|
|
676
|
-
**Search Functionality**:
|
|
677
|
-
- **Exact Match**: Direct symbol ID to caption lookup
|
|
678
|
-
- **Fuzzy Search**: Partial text matching for symbol discovery
|
|
679
|
-
- **Predictive Search**: Start-of-word matching for prediction systems
|
|
680
|
-
- **Category Browsing**: Category-based symbol organization
|
|
681
|
-
- **Deduplication**: Automatic removal of duplicate search results
|
|
682
|
-
|
|
683
|
-
**File Format Details**:
|
|
684
|
-
- **Binary Format**: Custom binary index format optimized for fast lookups
|
|
685
|
-
- **Localization Support**: Language-specific indexes with culture-aware text processing
|
|
686
|
-
- **Compression**: May use internal compression for efficiency
|
|
687
|
-
- **Encoding**: Supports Unicode text with bidirectional text handling
|
|
688
|
-
• Byte frequency analysis indicates structured data with null padding, suggesting fixed-width or aligned records.
|
|
689
|
-
|
|
690
|
-
#### censored.txt
|
|
691
|
-
|
|
692
|
-
Despite the .txt extension, censored.txt does not contain plain text or word lists. It appears to be binary or encoded content, possibly representing internal lookup data or encrypted keywords.
|
|
693
|
-
|
|
694
|
-
## Complete Style System Documentation
|
|
695
|
-
|
|
696
|
-
### Built-in Style Keys
|
|
697
|
-
|
|
698
|
-
Grid 3 includes these predefined styles:
|
|
699
|
-
|
|
700
|
-
- **`Default`**: Base style for all cells
|
|
701
|
-
- **`Workspace`**: Message window/workspace area style
|
|
702
|
-
- **`Auto content`**: Dynamic content cells (predictions, word lists)
|
|
703
|
-
- **`Vocab cell`**: Vocabulary/word cells
|
|
704
|
-
- **`Keyboard key`**: On-screen keyboard buttons
|
|
705
|
-
- **Category Styles**: Auto-generated for command categories
|
|
706
|
-
- `Actions category style`
|
|
707
|
-
- `People category style`
|
|
708
|
-
- `Places category style`
|
|
709
|
-
- `Descriptive category style`
|
|
710
|
-
- `Social category style`
|
|
711
|
-
- `Questions category style`
|
|
712
|
-
- `Little words category style`
|
|
713
|
-
|
|
714
|
-
### Theme System
|
|
715
|
-
|
|
716
|
-
Grid 3 supports four themes with distinct visual properties:
|
|
717
|
-
|
|
718
|
-
#### Modern Theme (Default)
|
|
719
|
-
- Border Width: 1px
|
|
720
|
-
- Corner Style: Normal (square)
|
|
721
|
-
- Drop Shadow: No
|
|
722
|
-
- Gradient Fill: Yes
|
|
723
|
-
- Font Family: "Roboto"
|
|
724
|
-
- Cell Spacing: 1.0x
|
|
725
|
-
|
|
726
|
-
#### Kids/Bubble Theme
|
|
727
|
-
- Border Width: 5px
|
|
728
|
-
- Corner Style: Rounded
|
|
729
|
-
- Drop Shadow: Yes
|
|
730
|
-
- Gradient Fill: Yes
|
|
731
|
-
- Font Family: "Short Stack"
|
|
732
|
-
- Cell Spacing: 2.0x (double spacing)
|
|
733
|
-
- White Border: Yes
|
|
734
|
-
|
|
735
|
-
#### Flat/Blocky Theme (Grid 2 Compatible)
|
|
736
|
-
- Border Width: 2px
|
|
737
|
-
- Corner Style: TheGrid2 (square with specific styling)
|
|
738
|
-
- Drop Shadow: No
|
|
739
|
-
- Gradient Fill: No
|
|
740
|
-
- Font Family: "Tahoma"
|
|
741
|
-
- Cell Spacing: 1.0x
|
|
742
|
-
|
|
743
|
-
#### Explorer Theme (Internal)
|
|
744
|
-
- Border Width: 2px
|
|
745
|
-
- Corner Style: Rounded
|
|
746
|
-
- Drop Shadow: Yes
|
|
747
|
-
- Gradient Fill: No
|
|
748
|
-
- Font Family: "Booster Next FY Light"
|
|
749
|
-
- Cell Spacing: 1.0x
|
|
750
|
-
|
|
751
|
-
### Style Inheritance
|
|
752
|
-
|
|
753
|
-
Styles use a cascading system:
|
|
754
|
-
1. Theme provides base properties
|
|
755
|
-
2. Built-in style defines category defaults
|
|
756
|
-
3. Cell-specific overrides apply on top
|
|
757
|
-
|
|
758
|
-
```xml
|
|
759
|
-
<Style>
|
|
760
|
-
<BasedOnStyle>Actions category style</BasedOnStyle>
|
|
761
|
-
<BackColour>#FF0000FF</BackColour> <!-- Override just the background -->
|
|
762
|
-
</Style>
|
|
763
|
-
```
|
|
764
|
-
|
|
765
|
-
### Font System
|
|
766
|
-
|
|
767
|
-
- **ThemeFont**: Special value that resolves to the current theme's font
|
|
768
|
-
- Custom fonts can be specified directly
|
|
769
|
-
- Font sizes are in points (default: 16.0)
|
|
770
|
-
|
|
771
|
-
## Complete Cell Content Types
|
|
772
|
-
|
|
773
|
-
### ContentType Values
|
|
774
|
-
|
|
775
|
-
- **`Normal`** (0): Standard button cells with commands
|
|
776
|
-
- **`AutoContent`** (1): Dynamic content cells (predictions, word lists, auto-populated content)
|
|
777
|
-
- **`Workspace`** (-1): Message window/text display area for composing text
|
|
778
|
-
- **`LiveCell`** (2): Real-time updating cells that display dynamic information
|
|
779
|
-
|
|
780
|
-
### ContentSubType Values
|
|
781
|
-
|
|
782
|
-
#### For AutoContent Cells
|
|
783
|
-
|
|
784
|
-
**Prediction Types:**
|
|
785
|
-
- **`Prediction`**: Standard word prediction cells
|
|
786
|
-
- **`Prediction.WordList`**: Word list-based predictions
|
|
787
|
-
- **`Prediction.Conjugations`**: Verb conjugation predictions
|
|
788
|
-
|
|
789
|
-
**Content Types:**
|
|
790
|
-
- **`WordList`**: Static or dynamic word lists
|
|
791
|
-
- **`MessageBanking`**: Message banking categories
|
|
792
|
-
- **`MessageBanking.Recordings`**: Message banking recordings
|
|
793
|
-
- **`Contacts`**: Contact information cells
|
|
794
|
-
- **`Photos`**: Photo gallery cells
|
|
795
|
-
- **`InternetFavourites`**: Web browser favorites
|
|
796
|
-
- **`SavedPhrases`**: User-saved phrases
|
|
797
|
-
|
|
798
|
-
#### For Workspace Cells (Message Bar)
|
|
799
|
-
|
|
800
|
-
**Note**: The "message bar" in Grid 3 refers to Workspace cells - these are text composition and editing areas where users build messages, documents, or other text content.
|
|
801
|
-
|
|
802
|
-
**Communication Workspaces:**
|
|
803
|
-
- **`Chat`**: Text chat/messaging workspace for composing messages to speak aloud
|
|
804
|
-
- **`SymbolChat`**: Symbol-based chat workspace with symbol support
|
|
805
|
-
- **`Email`**: Email composition workspace for creating email messages
|
|
806
|
-
- **`Sms`**: SMS message composition workspace for text messages
|
|
807
|
-
- **`Skype`**: Skype messaging workspace for Skype communications
|
|
808
|
-
- **`Phone`**: Phone number input workspace
|
|
809
|
-
|
|
810
|
-
**Productivity Workspaces:**
|
|
811
|
-
- **`WordProcessor`**: Document editing workspace for viewing and editing documents
|
|
812
|
-
- **`Calculator`**: Calculator workspace for mathematical operations
|
|
813
|
-
- **`WebBrowser`**: Web browser workspace for viewing web pages
|
|
814
|
-
- **`WebBrowser.AddressBar`**: Web address input workspace for URL entry
|
|
815
|
-
- **`Contacts`**: Contact editing workspace for managing contact information
|
|
816
|
-
|
|
817
|
-
### Workspace Cell Behavior and Text Command Interaction
|
|
818
|
-
|
|
819
|
-
Workspace cells are the primary target for text manipulation commands. Here's how different commands interact with workspace types:
|
|
820
|
-
|
|
821
|
-
#### Text Input Commands
|
|
822
|
-
All workspace types support these core text commands:
|
|
823
|
-
|
|
824
|
-
**`Action.InsertText`**: Inserts rich text with symbols
|
|
825
|
-
- Supports grammar information (part of speech, verb state)
|
|
826
|
-
- Handles symbol integration automatically
|
|
827
|
-
- Triggers speak-as-you-type in appropriate workspaces
|
|
828
|
-
- Updates word prediction after insertion
|
|
829
|
-
|
|
830
|
-
**`Action.Letter`**: Inserts single characters
|
|
831
|
-
- Used for keyboard input
|
|
832
|
-
- Triggers grammar processing for language support
|
|
833
|
-
- Updates prediction context
|
|
834
|
-
|
|
835
|
-
**`Action.Clear`**: Clears workspace content
|
|
836
|
-
- Removes all text from the active workspace
|
|
837
|
-
- Resets grammar state and prediction context
|
|
838
|
-
|
|
839
|
-
**`Action.DeleteWord`** / **`Action.DeleteLetter`**: Text deletion
|
|
840
|
-
- Removes words or characters from workspace
|
|
841
|
-
- Updates prediction and grammar context accordingly
|
|
842
|
-
|
|
843
|
-
#### Speech Commands and Workspace Types
|
|
844
|
-
|
|
845
|
-
**`Action.Speak`**: Behavior varies by workspace type
|
|
846
|
-
- **Chat workspace**: Speaks content and stores in chat history
|
|
847
|
-
- **Email workspace**: Speaks composed email content
|
|
848
|
-
- **WordProcessor workspace**: Speaks document content
|
|
849
|
-
- **SMS workspace**: Speaks message content
|
|
850
|
-
- **Phone workspace**: May speak entered phone number
|
|
851
|
-
|
|
852
|
-
#### Workspace-Specific Behaviors
|
|
853
|
-
|
|
854
|
-
**Chat Workspace (`Chat`)**:
|
|
855
|
-
- Primary purpose: Compose messages for speaking aloud
|
|
856
|
-
- Stores spoken messages in chat history
|
|
857
|
-
- Supports speak-as-you-type functionality
|
|
858
|
-
- EditModeText: "Write messages here"
|
|
859
|
-
|
|
860
|
-
**Email Workspace (`Email`)**:
|
|
861
|
-
- Purpose: Compose email messages
|
|
862
|
-
- Integrates with email contacts for recipient selection
|
|
863
|
-
- Supports rich text formatting
|
|
864
|
-
- EditModeText: "Write email messages here"
|
|
865
|
-
|
|
866
|
-
**SMS Workspace (`Sms`)**:
|
|
867
|
-
- Purpose: Compose SMS text messages
|
|
868
|
-
- Character count considerations for SMS limits
|
|
869
|
-
- Plain text focused (limited rich text)
|
|
870
|
-
- EditModeText: "Write SMS messages here"
|
|
871
|
-
|
|
872
|
-
**WordProcessor Workspace (`WordProcessor`)**:
|
|
873
|
-
- Purpose: Edit documents selected in Documents LiveCell
|
|
874
|
-
- Full rich text editing capabilities
|
|
875
|
-
- Document persistence and management
|
|
876
|
-
- EditModeText: "Edit documents here"
|
|
877
|
-
|
|
878
|
-
**Phone Workspace (`Phone`)**:
|
|
879
|
-
- Purpose: Enter phone numbers for dialing
|
|
880
|
-
- Numeric input focused
|
|
881
|
-
- Integration with phone calling functionality
|
|
882
|
-
- May display formatted phone numbers
|
|
883
|
-
|
|
884
|
-
#### Workspace Activation States
|
|
885
|
-
|
|
886
|
-
Workspaces have different activation behaviors:
|
|
887
|
-
|
|
888
|
-
**`WritingAreaActivation.SpeakContents`**:
|
|
889
|
-
- Clicking workspace speaks its content
|
|
890
|
-
- Used when workspace is primarily for speech output
|
|
891
|
-
|
|
892
|
-
**`WritingAreaActivation.MoveCursor`**:
|
|
893
|
-
- Clicking workspace moves text cursor
|
|
894
|
-
- Used when workspace is primarily for text editing
|
|
895
|
-
|
|
896
|
-
#### Example Workspace Configurations
|
|
897
|
-
|
|
898
|
-
**Chat Workspace**:
|
|
899
|
-
```xml
|
|
900
|
-
<Cell X="0" Y="0" ColumnSpan="6" RowSpan="2">
|
|
901
|
-
<Content>
|
|
902
|
-
<ContentType>Workspace</ContentType>
|
|
903
|
-
<ContentSubType>Chat</ContentSubType>
|
|
904
|
-
<Style>
|
|
905
|
-
<BasedOnStyle>Workspace</BasedOnStyle>
|
|
906
|
-
</Style>
|
|
907
|
-
</Content>
|
|
908
|
-
</Cell>
|
|
909
|
-
```
|
|
910
|
-
|
|
911
|
-
**Email Workspace with Custom Styling**:
|
|
912
|
-
```xml
|
|
913
|
-
<Cell X="0" Y="2" ColumnSpan="6" RowSpan="3">
|
|
914
|
-
<Content>
|
|
915
|
-
<ContentType>Workspace</ContentType>
|
|
916
|
-
<ContentSubType>Email</ContentSubType>
|
|
917
|
-
<Style>
|
|
918
|
-
<BasedOnStyle>Workspace</BasedOnStyle>
|
|
919
|
-
<BackColour>#FFFFFFFF</BackColour>
|
|
920
|
-
<FontSize>16</FontSize>
|
|
921
|
-
</Style>
|
|
922
|
-
</Content>
|
|
923
|
-
</Cell>
|
|
924
|
-
```
|
|
925
|
-
|
|
926
|
-
#### For LiveCell Cells
|
|
927
|
-
|
|
928
|
-
**Information Displays:**
|
|
929
|
-
- **`Clock.FullDate`**: Full date display
|
|
930
|
-
- **`Clock.ShortDate`**: Short date display
|
|
931
|
-
- **`Clock.Time`**: Time display
|
|
932
|
-
- **`Clock.DayOfWeek`**: Day of week display
|
|
933
|
-
- **`Clock.Month`**: Month display
|
|
934
|
-
- **`Clock.Year`**: Year display
|
|
935
|
-
|
|
936
|
-
**Media and Communication:**
|
|
937
|
-
- **`Photos.Photos`**: Photo viewer
|
|
938
|
-
- **`Photos.Camera`**: Camera feed
|
|
939
|
-
- **`Sms.Messages`**: SMS message list
|
|
940
|
-
- **`Email.Messages`**: Email message list
|
|
941
|
-
- **`Contacts.Contacts`**: Contact list
|
|
942
|
-
|
|
943
|
-
**System Information:**
|
|
944
|
-
- **`ComputerControl.DeviceVolume`**: System volume display
|
|
945
|
-
- **`WordProcessor.Documents`**: Document list
|
|
946
|
-
|
|
947
|
-
### LiveCell Types and Behaviors
|
|
948
|
-
|
|
949
|
-
LiveCells are classified into three types with distinct behaviors and interaction patterns:
|
|
950
|
-
|
|
951
|
-
#### Info Type LiveCells
|
|
952
|
-
**Purpose**: Display summary information with minimal user interaction
|
|
953
|
-
**Behavior**:
|
|
954
|
-
- Read-only display of dynamic information
|
|
955
|
-
- Updates automatically based on system state
|
|
956
|
-
- Limited or no direct user interaction
|
|
957
|
-
- Typically shows status, time, or system information
|
|
958
|
-
|
|
959
|
-
**Examples**:
|
|
960
|
-
- Clock displays (time, date, day of week)
|
|
961
|
-
- System volume indicators
|
|
962
|
-
- Timer displays
|
|
963
|
-
- Game counters (mines, bombs)
|
|
964
|
-
|
|
965
|
-
**Common ContentSubType Values**:
|
|
966
|
-
- `Clock.Time`, `Clock.FullDate`, `Clock.ShortDate`, `Clock.DayOfWeek`
|
|
967
|
-
- `ComputerControl.DeviceVolume`
|
|
968
|
-
- `Timer.AnalogueTimer`, `Timer.DigitalTimer`
|
|
969
|
-
- Game-specific counters
|
|
970
|
-
|
|
971
|
-
#### List Type LiveCells
|
|
972
|
-
**Purpose**: Display interactive lists of items that users can browse and select
|
|
973
|
-
**Behavior**:
|
|
974
|
-
- Shows scrollable lists of items
|
|
975
|
-
- Items can be selected/activated
|
|
976
|
-
- Content updates dynamically based on data sources
|
|
977
|
-
- Supports navigation and selection interactions
|
|
978
|
-
- Often has wide thumbnail display format
|
|
979
|
-
|
|
980
|
-
**Examples**:
|
|
981
|
-
- SMS message lists
|
|
982
|
-
- Email message lists
|
|
983
|
-
- Document lists
|
|
984
|
-
- Phone call history
|
|
985
|
-
- Contact lists
|
|
986
|
-
|
|
987
|
-
**Common ContentSubType Values**:
|
|
988
|
-
- `Sms.Messages` - SMS message list
|
|
989
|
-
- `Email.Messages` - Email message list
|
|
990
|
-
- `WordProcessor.Documents` - Document list
|
|
991
|
-
- `Phone.PhoneCall` - Phone call history
|
|
992
|
-
- `Contacts.Contacts` - Contact list
|
|
993
|
-
|
|
994
|
-
#### Viewer Type LiveCells
|
|
995
|
-
**Purpose**: Display and interact with media content or specialized viewers
|
|
996
|
-
**Behavior**:
|
|
997
|
-
- Shows media content (photos, videos, animations)
|
|
998
|
-
- Supports media-specific interactions (play, pause, zoom)
|
|
999
|
-
- May include camera feeds or live content
|
|
1000
|
-
- Often supports touch-only interaction
|
|
1001
|
-
- Typically has wide thumbnail display format
|
|
1002
|
-
|
|
1003
|
-
**Examples**:
|
|
1004
|
-
- Photo viewers and camera feeds
|
|
1005
|
-
- Animation players
|
|
1006
|
-
- Whiteboard viewers
|
|
1007
|
-
- Symoji animation displays
|
|
1008
|
-
|
|
1009
|
-
**Common ContentSubType Values**:
|
|
1010
|
-
- `Photos.Photos` - Photo viewer
|
|
1011
|
-
- `Photos.Camera` - Camera feed viewer
|
|
1012
|
-
- `InteractiveLearning.Animation` - Animation viewer
|
|
1013
|
-
- `OfflineWebBrowser.Whiteboard` - Whiteboard viewer
|
|
1014
|
-
- `Symoji.Symoji` - Symoji animation viewer
|
|
1015
|
-
|
|
1016
|
-
### LiveCell Parameters
|
|
1017
|
-
|
|
1018
|
-
LiveCells can have additional parameters that control their behavior and appearance:
|
|
1019
|
-
|
|
1020
|
-
#### Common Parameters
|
|
1021
|
-
- **`format`**: Display format for time/date cells (e.g., "HH:mm:ss", "dd/MM/yyyy")
|
|
1022
|
-
- **`timezone`**: Timezone for clock displays ("Local", "UTC", specific timezone)
|
|
1023
|
-
- **`appearance`**: Visual appearance settings for eye gaze cells
|
|
1024
|
-
- **`eyetype`**: Left/Right eye specification for eye visibility cells
|
|
1025
|
-
|
|
1026
|
-
#### Parameter Examples
|
|
1027
|
-
|
|
1028
|
-
**Clock with Custom Format**:
|
|
1029
|
-
```xml
|
|
1030
|
-
<Cell X="0" Y="0">
|
|
1031
|
-
<Content>
|
|
1032
|
-
<ContentType>LiveCell</ContentType>
|
|
1033
|
-
<ContentSubType>Clock.Time</ContentSubType>
|
|
1034
|
-
<Parameters>
|
|
1035
|
-
<Parameter Key="format">HH:mm:ss</Parameter>
|
|
1036
|
-
<Parameter Key="timezone">Local</Parameter>
|
|
1037
|
-
</Parameters>
|
|
1038
|
-
</Content>
|
|
1039
|
-
</Cell>
|
|
1040
|
-
```
|
|
1041
|
-
|
|
1042
|
-
**Eye Gaze Visibility Cell**:
|
|
1043
|
-
```xml
|
|
1044
|
-
<Cell X="1" Y="0">
|
|
1045
|
-
<Content>
|
|
1046
|
-
<ContentType>LiveCell</ContentType>
|
|
1047
|
-
<ContentSubType>Access.EyeVisibility</ContentSubType>
|
|
1048
|
-
<Parameters>
|
|
1049
|
-
<Parameter Key="eyetype">Left</Parameter>
|
|
1050
|
-
<Parameter Key="appearance">Standard</Parameter>
|
|
1051
|
-
</Parameters>
|
|
1052
|
-
</Content>
|
|
1053
|
-
</Cell>
|
|
1054
|
-
```
|
|
1055
|
-
|
|
1056
|
-
### LiveCell Properties
|
|
1057
|
-
|
|
1058
|
-
#### Caption Editability
|
|
1059
|
-
- **Info cells**: Usually have editable captions for user customization
|
|
1060
|
-
- **List cells**: Typically have non-editable captions (auto-generated)
|
|
1061
|
-
- **Viewer cells**: Usually have non-editable captions
|
|
1062
|
-
|
|
1063
|
-
#### Thumbnail Display
|
|
1064
|
-
- **List and Viewer cells**: Often use `HasWideThumbnail = true` for better display
|
|
1065
|
-
- **Info cells**: Typically use standard thumbnail size
|
|
1066
|
-
|
|
1067
|
-
#### Symbol Preview
|
|
1068
|
-
- Some LiveCells use `SymbolizeCommandPreview = true` to show static symbols instead of live content in command browsers
|
|
1069
|
-
|
|
1070
|
-
### Cell Visibility States
|
|
1071
|
-
|
|
1072
|
-
```xml
|
|
1073
|
-
<Visibility>Visible</Visibility> <!-- Default: fully accessible -->
|
|
1074
|
-
<Visibility>PointerAndTouchOnly</Visibility> <!-- Skip in scanning -->
|
|
1075
|
-
<Visibility>Disabled</Visibility> <!-- Not accessible -->
|
|
1076
|
-
<Visibility>Hidden</Visibility> <!-- Completely hidden -->
|
|
1077
|
-
<Visibility>Empty</Visibility> <!-- Empty cell (no content) -->
|
|
1078
|
-
```
|
|
1079
|
-
|
|
1080
|
-
### Specialized Cell Properties
|
|
1081
|
-
|
|
1082
|
-
#### DirectActivate
|
|
1083
|
-
Controls direct activation behavior for accessibility:
|
|
1084
|
-
```xml
|
|
1085
|
-
<DirectActivate>0</DirectActivate> <!-- Standard activation -->
|
|
1086
|
-
<DirectActivate>1</DirectActivate> <!-- Direct activation enabled -->
|
|
1087
|
-
```
|
|
1088
|
-
|
|
1089
|
-
#### ScanBlocks
|
|
1090
|
-
Cells can belong to multiple scan blocks for advanced scanning:
|
|
1091
|
-
```xml
|
|
1092
|
-
<ScanBlocks>
|
|
1093
|
-
<ScanBlock>1</ScanBlock>
|
|
1094
|
-
<ScanBlock>3</ScanBlock>
|
|
1095
|
-
</ScanBlocks>
|
|
1096
|
-
```
|
|
1097
|
-
|
|
1098
|
-
#### Cell Parameters
|
|
1099
|
-
Special cells can have additional parameters:
|
|
1100
|
-
```xml
|
|
1101
|
-
<Cell>
|
|
1102
|
-
<Content>
|
|
1103
|
-
<ContentType>LiveCell</ContentType>
|
|
1104
|
-
<ContentSubType>Clock.Time</ContentSubType>
|
|
1105
|
-
<Parameters>
|
|
1106
|
-
<Parameter Key="format">HH:mm</Parameter>
|
|
1107
|
-
<Parameter Key="timezone">UTC</Parameter>
|
|
1108
|
-
</Parameters>
|
|
1109
|
-
</Content>
|
|
1110
|
-
</Cell>
|
|
1111
|
-
```
|
|
1112
|
-
|
|
1113
|
-
### ScanBlock System
|
|
1114
|
-
|
|
1115
|
-
- Maximum 8 scan blocks per grid (1-8)
|
|
1116
|
-
- Cells without ScanBlock attribute default to block 1
|
|
1117
|
-
- Used for switch scanning navigation
|
|
1118
|
-
- Cells can belong to multiple scan blocks
|
|
1119
|
-
|
|
1120
|
-
```xml
|
|
1121
|
-
<Cell X="0" Y="0" ScanBlock="3">
|
|
1122
|
-
<!-- Single scan block -->
|
|
1123
|
-
</Cell>
|
|
1124
|
-
|
|
1125
|
-
<Cell X="1" Y="0">
|
|
1126
|
-
<ScanBlocks>
|
|
1127
|
-
<ScanBlock>1</ScanBlock>
|
|
1128
|
-
<ScanBlock>2</ScanBlock>
|
|
1129
|
-
</ScanBlocks>
|
|
1130
|
-
<!-- Multiple scan blocks -->
|
|
1131
|
-
</Cell>
|
|
1132
|
-
```
|
|
1133
|
-
|
|
1134
|
-
## Complete Command Reference
|
|
1135
|
-
|
|
1136
|
-
### Navigation Commands
|
|
1137
|
-
|
|
1138
|
-
#### `Jump.To`
|
|
1139
|
-
Navigate to another grid
|
|
1140
|
-
```xml
|
|
1141
|
-
<Command ID="Jump.To">
|
|
1142
|
-
<Parameter Key="grid">GridName</Parameter>
|
|
1143
|
-
</Command>
|
|
1144
|
-
```
|
|
1145
|
-
|
|
1146
|
-
#### `Jump.Back`
|
|
1147
|
-
Return to previous grid
|
|
1148
|
-
```xml
|
|
1149
|
-
<Command ID="Jump.Back" />
|
|
1150
|
-
```
|
|
1151
|
-
|
|
1152
|
-
#### `Jump.Home`
|
|
1153
|
-
Navigate to start grid
|
|
1154
|
-
```xml
|
|
1155
|
-
<Command ID="Jump.Home" />
|
|
1156
|
-
```
|
|
1157
|
-
|
|
1158
|
-
### Text Commands
|
|
1159
|
-
|
|
1160
|
-
#### `Action.InsertText`
|
|
1161
|
-
Insert text with optional symbols
|
|
1162
|
-
```xml
|
|
1163
|
-
<Command ID="Action.InsertText">
|
|
1164
|
-
<Parameter Key="text">
|
|
1165
|
-
<SymbolRun Image="[WIDGIT]path/to/symbol.emf">
|
|
1166
|
-
<Run>Hello</Run>
|
|
1167
|
-
<Run> </Run>
|
|
1168
|
-
</SymbolRun>
|
|
1169
|
-
</Parameter>
|
|
1170
|
-
<Parameter Key="verbstate">Reset</Parameter>
|
|
1171
|
-
</Command>
|
|
1172
|
-
```
|
|
1173
|
-
|
|
1174
|
-
#### `Action.Letter`
|
|
1175
|
-
Insert single character
|
|
1176
|
-
```xml
|
|
1177
|
-
<Command ID="Action.Letter">
|
|
1178
|
-
<Parameter Key="letter">A</Parameter>
|
|
1179
|
-
</Command>
|
|
1180
|
-
```
|
|
1181
|
-
|
|
1182
|
-
#### `Action.DeleteWord`
|
|
1183
|
-
Delete last word
|
|
1184
|
-
```xml
|
|
1185
|
-
<Command ID="Action.DeleteWord" />
|
|
1186
|
-
```
|
|
1187
|
-
|
|
1188
|
-
#### `Action.Clear`
|
|
1189
|
-
Clear message window
|
|
1190
|
-
```xml
|
|
1191
|
-
<Command ID="Action.Clear" />
|
|
1192
|
-
```
|
|
1193
|
-
|
|
1194
|
-
#### Speech Commands
|
|
1195
|
-
|
|
1196
|
-
##### `Action.Speak`
|
|
1197
|
-
Speak text content from workspace
|
|
1198
|
-
- **Parameters:**
|
|
1199
|
-
- `unit` (SpeakUnit): What to speak - All, Paragraph, Sentence, Word, Selection
|
|
1200
|
-
- `movecaret` (boolean): Whether to move caret after speaking (default: false)
|
|
1201
|
-
|
|
1202
|
-
```xml
|
|
1203
|
-
<Command ID="Action.Speak">
|
|
1204
|
-
<Parameter Key="unit">All</Parameter>
|
|
1205
|
-
<Parameter Key="movecaret">0</Parameter>
|
|
1206
|
-
</Command>
|
|
1207
|
-
```
|
|
1208
|
-
|
|
1209
|
-
##### `Speech.SpeakNow`
|
|
1210
|
-
Speak specific text immediately
|
|
1211
|
-
- **Parameters:**
|
|
1212
|
-
- `text` (string): Text to speak
|
|
1213
|
-
|
|
1214
|
-
```xml
|
|
1215
|
-
<Command ID="Speech.SpeakNow">
|
|
1216
|
-
<Parameter Key="text">Hello World</Parameter>
|
|
1217
|
-
</Command>
|
|
1218
|
-
```
|
|
1219
|
-
|
|
1220
|
-
##### `Speech.Stop`
|
|
1221
|
-
Stop current speech
|
|
1222
|
-
- **Parameters:** None
|
|
1223
|
-
|
|
1224
|
-
```xml
|
|
1225
|
-
<Command ID="Speech.Stop" />
|
|
1226
|
-
```
|
|
1227
|
-
|
|
1228
|
-
##### `Speech.SpeakClipboard`
|
|
1229
|
-
Speak clipboard content
|
|
1230
|
-
- **Parameters:** None
|
|
1231
|
-
|
|
1232
|
-
```xml
|
|
1233
|
-
<Command ID="Speech.SpeakClipboard" />
|
|
1234
|
-
```
|
|
1235
|
-
|
|
1236
|
-
#### Prediction Commands
|
|
1237
|
-
|
|
1238
|
-
##### `Prediction.PredictThis`
|
|
1239
|
-
Trigger word prediction with word list
|
|
1240
|
-
- **Parameters:**
|
|
1241
|
-
- `wordlist` (WordList): Word list for predictions
|
|
1242
|
-
- `action` (WordListAction): Insert or ReplacePrevious
|
|
1243
|
-
|
|
1244
|
-
```xml
|
|
1245
|
-
<Command ID="Prediction.PredictThis">
|
|
1246
|
-
<Parameter Key="wordlist">
|
|
1247
|
-
<WordList>
|
|
1248
|
-
<Items>
|
|
1249
|
-
<WordListItem>
|
|
1250
|
-
<Text><s><r>hello</r></s></Text>
|
|
1251
|
-
</WordListItem>
|
|
1252
|
-
</Items>
|
|
1253
|
-
</WordList>
|
|
1254
|
-
</Parameter>
|
|
1255
|
-
<Parameter Key="action">Insert</Parameter>
|
|
1256
|
-
</Command>
|
|
1257
|
-
```
|
|
1258
|
-
|
|
1259
|
-
##### `Prediction.PredictConjugations`
|
|
1260
|
-
Predict verb conjugations
|
|
1261
|
-
- **Parameters:** None
|
|
1262
|
-
|
|
1263
|
-
```xml
|
|
1264
|
-
<Command ID="Prediction.PredictConjugations" />
|
|
1265
|
-
```
|
|
1266
|
-
|
|
1267
|
-
##### `Prediction.ChangeWordList`
|
|
1268
|
-
Change active word list
|
|
1269
|
-
- **Parameters:**
|
|
1270
|
-
- `wordlist` (WordList): New word list to activate
|
|
1271
|
-
|
|
1272
|
-
```xml
|
|
1273
|
-
<Command ID="Prediction.ChangeWordList">
|
|
1274
|
-
<Parameter Key="wordlist">
|
|
1275
|
-
<WordList>
|
|
1276
|
-
<Items>
|
|
1277
|
-
<!-- WordListItem entries -->
|
|
1278
|
-
</Items>
|
|
1279
|
-
</WordList>
|
|
1280
|
-
</Parameter>
|
|
1281
|
-
</Command>
|
|
1282
|
-
```
|
|
1283
|
-
|
|
1284
|
-
#### Computer Control Commands
|
|
1285
|
-
|
|
1286
|
-
##### `ComputerControl.Keyboard`
|
|
1287
|
-
Send keyboard input
|
|
1288
|
-
- **Parameters:**
|
|
1289
|
-
- `keystring` (string): Key or key combination to send
|
|
1290
|
-
|
|
1291
|
-
```xml
|
|
1292
|
-
<Command ID="ComputerControl.Keyboard">
|
|
1293
|
-
<Parameter Key="keystring">ctrl+c</Parameter>
|
|
1294
|
-
</Command>
|
|
1295
|
-
```
|
|
1296
|
-
|
|
1297
|
-
##### `ComputerControl.AdvancedKeyboard`
|
|
1298
|
-
Advanced keyboard control
|
|
1299
|
-
- **Parameters:**
|
|
1300
|
-
- `virtualkeycode` (int): Virtual key code
|
|
1301
|
-
- `extendedkey` (boolean): Whether it's an extended key
|
|
1302
|
-
- `keyaction` (AdvancedKeyAction): KeyPress, KeyDown, or KeyUp
|
|
1303
|
-
|
|
1304
|
-
```xml
|
|
1305
|
-
<Command ID="ComputerControl.AdvancedKeyboard">
|
|
1306
|
-
<Parameter Key="virtualkeycode">65</Parameter>
|
|
1307
|
-
<Parameter Key="extendedkey">0</Parameter>
|
|
1308
|
-
<Parameter Key="keyaction">KeyPress</Parameter>
|
|
1309
|
-
</Command>
|
|
1310
|
-
```
|
|
1311
|
-
|
|
1312
|
-
##### `ComputerControl.MouseLeftClick`
|
|
1313
|
-
Perform left mouse click
|
|
1314
|
-
- **Parameters:**
|
|
1315
|
-
- `button` (MouseButton): Left, Right, or Middle
|
|
1316
|
-
|
|
1317
|
-
```xml
|
|
1318
|
-
<Command ID="ComputerControl.MouseLeftClick">
|
|
1319
|
-
<Parameter Key="button">Left</Parameter>
|
|
1320
|
-
</Command>
|
|
1321
|
-
```
|
|
1322
|
-
|
|
1323
|
-
#### Settings Commands
|
|
1324
|
-
|
|
1325
|
-
##### `Settings.EditMode`
|
|
1326
|
-
Toggle edit mode
|
|
1327
|
-
- **Parameters:** None
|
|
1328
|
-
|
|
1329
|
-
```xml
|
|
1330
|
-
<Command ID="Settings.EditMode" />
|
|
1331
|
-
```
|
|
1332
|
-
|
|
1333
|
-
##### `Settings.ChangeGridSet`
|
|
1334
|
-
Change to different gridset
|
|
1335
|
-
- **Parameters:**
|
|
1336
|
-
- `gridsetname` (string): Name of gridset to load
|
|
1337
|
-
|
|
1338
|
-
```xml
|
|
1339
|
-
<Command ID="Settings.ChangeGridSet">
|
|
1340
|
-
<Parameter Key="gridsetname">MyGridSet</Parameter>
|
|
1341
|
-
</Command>
|
|
1342
|
-
```
|
|
1343
|
-
|
|
1344
|
-
##### `Settings.SetScreenBrightness`
|
|
1345
|
-
Set screen brightness
|
|
1346
|
-
- **Parameters:**
|
|
1347
|
-
- `option` (SetValueOptions): Cycle, Increase, Decrease, or SetToValue
|
|
1348
|
-
- `specificvalue` (int): Specific brightness value (0-100)
|
|
1349
|
-
|
|
1350
|
-
```xml
|
|
1351
|
-
<Command ID="Settings.SetScreenBrightness">
|
|
1352
|
-
<Parameter Key="option">SetToValue</Parameter>
|
|
1353
|
-
<Parameter Key="specificvalue">75</Parameter>
|
|
1354
|
-
</Command>
|
|
1355
|
-
```
|
|
1356
|
-
|
|
1357
|
-
#### Media Commands
|
|
1358
|
-
|
|
1359
|
-
##### `MediaPlayer.OpenVideoFile`
|
|
1360
|
-
Open video file
|
|
1361
|
-
- **Parameters:**
|
|
1362
|
-
- `filedata` (FileData): Video file data
|
|
1363
|
-
- `wait` (CommandExecutionType): Execution behavior
|
|
1364
|
-
- `playimmediately` (boolean): Start playing immediately
|
|
1365
|
-
|
|
1366
|
-
```xml
|
|
1367
|
-
<Command ID="MediaPlayer.OpenVideoFile">
|
|
1368
|
-
<Parameter Key="filedata">video.mp4</Parameter>
|
|
1369
|
-
<Parameter Key="playimmediately">1</Parameter>
|
|
1370
|
-
</Command>
|
|
1371
|
-
```
|
|
1372
|
-
|
|
1373
|
-
##### `Speech.PlaySound`
|
|
1374
|
-
Play sound file
|
|
1375
|
-
- **Parameters:**
|
|
1376
|
-
- `filedata` (FileData): Sound file data
|
|
1377
|
-
- `wait` (CommandExecutionType): Execution behavior
|
|
1378
|
-
|
|
1379
|
-
```xml
|
|
1380
|
-
<Command ID="Speech.PlaySound">
|
|
1381
|
-
<Parameter Key="filedata">sound.wav</Parameter>
|
|
1382
|
-
</Command>
|
|
1383
|
-
```
|
|
1384
|
-
|
|
1385
|
-
#### Grammar Commands
|
|
1386
|
-
|
|
1387
|
-
##### `Grammar.VerbMorphology`
|
|
1388
|
-
Modify verb form
|
|
1389
|
-
- **Parameters:**
|
|
1390
|
-
- `verbpart` (VerbPart): Root, Past, Present, Future, etc.
|
|
1391
|
-
- `person` (string): First, Second, Third person
|
|
1392
|
-
- `number` (string): Singular, Plural
|
|
1393
|
-
- `autocaption` (boolean): Auto-generate cell caption
|
|
1394
|
-
|
|
1395
|
-
```xml
|
|
1396
|
-
<Command ID="Grammar.VerbMorphology">
|
|
1397
|
-
<Parameter Key="verbpart">Past</Parameter>
|
|
1398
|
-
<Parameter Key="person">Third</Parameter>
|
|
1399
|
-
<Parameter Key="number">Singular</Parameter>
|
|
1400
|
-
</Command>
|
|
1401
|
-
```
|
|
1402
|
-
|
|
1403
|
-
##### `Grammar.NounMorphology`
|
|
1404
|
-
Modify noun form
|
|
1405
|
-
- **Parameters:**
|
|
1406
|
-
- `number` (string): Singular, Plural
|
|
1407
|
-
- `gender` (string): Masculine, Feminine, Neuter
|
|
1408
|
-
|
|
1409
|
-
```xml
|
|
1410
|
-
<Command ID="Grammar.NounMorphology">
|
|
1411
|
-
<Parameter Key="number">Plural</Parameter>
|
|
1412
|
-
</Command>
|
|
1413
|
-
```
|
|
1414
|
-
|
|
1415
|
-
#### Environment Control Commands
|
|
1416
|
-
|
|
1417
|
-
##### `EnvironmentControl.ZWave`
|
|
1418
|
-
Control Z-Wave devices
|
|
1419
|
-
- **Parameters:**
|
|
1420
|
-
- `deviceid` (string): Z-Wave device identifier
|
|
1421
|
-
- `action` (string): Device action to perform
|
|
1422
|
-
|
|
1423
|
-
```xml
|
|
1424
|
-
<Command ID="EnvironmentControl.ZWave">
|
|
1425
|
-
<Parameter Key="deviceid">device_01</Parameter>
|
|
1426
|
-
<Parameter Key="action">on</Parameter>
|
|
1427
|
-
</Command>
|
|
1428
|
-
```
|
|
1429
|
-
|
|
1430
|
-
#### AI-Powered Commands
|
|
1431
|
-
|
|
1432
|
-
##### `Prediction.CorrectionTool` (Fix Tool)
|
|
1433
|
-
AI-powered text correction using OpenAI integration
|
|
1434
|
-
- **Purpose**: Corrects spelling, adds punctuation and missing characters, adjusts grammar
|
|
1435
|
-
- **Requirements**: Online AI Tools must be enabled in Settings - Data control
|
|
1436
|
-
- **Limitations**: Maximum 5000 characters, requires internet connection
|
|
1437
|
-
- **Implementation**: Sends workspace text to OpenAI API for correction
|
|
1438
|
-
- **Parameters:** None (operates on current workspace content)
|
|
1439
|
-
|
|
1440
|
-
```xml
|
|
1441
|
-
<Command ID="Prediction.CorrectionTool" />
|
|
1442
|
-
```
|
|
1443
|
-
|
|
1444
|
-
**Usage Notes:**
|
|
1445
|
-
- Appears as a LiveCell with loading spinner during processing
|
|
1446
|
-
- Automatically disabled when workspace is empty or text is too long
|
|
1447
|
-
- Requires user opt-in for Online AI Tools functionality
|
|
1448
|
-
- Supports undo functionality to revert corrections
|
|
1449
|
-
- Integrates with workspace text selection and cursor positioning
|
|
1450
|
-
|
|
1451
|
-
**LiveCell Configuration:**
|
|
1452
|
-
```xml
|
|
1453
|
-
<Cell X="0" Y="0">
|
|
1454
|
-
<Content>
|
|
1455
|
-
<ContentType>LiveCell</ContentType>
|
|
1456
|
-
<ContentSubType>Prediction.CorrectionTool</ContentSubType>
|
|
1457
|
-
<CaptionAndImage>
|
|
1458
|
-
<Caption>Fix</Caption>
|
|
1459
|
-
<Image>[GRID3X]fix-command.wmf</Image>
|
|
1460
|
-
</CaptionAndImage>
|
|
1461
|
-
<Style>
|
|
1462
|
-
<BasedOnStyle>Default</BasedOnStyle>
|
|
1463
|
-
</Style>
|
|
1464
|
-
</Content>
|
|
1465
|
-
</Cell>
|
|
1466
|
-
```
|
|
1467
|
-
|
|
1468
|
-
#### System Commands
|
|
1469
|
-
|
|
1470
|
-
##### `ComputerSession.LogOff`
|
|
1471
|
-
Log off from system
|
|
1472
|
-
- **Parameters:** None
|
|
1473
|
-
|
|
1474
|
-
```xml
|
|
1475
|
-
<Command ID="ComputerSession.LogOff" />
|
|
1476
|
-
```
|
|
1477
|
-
|
|
1478
|
-
##### `ComputerSession.Shutdown`
|
|
1479
|
-
Shutdown system
|
|
1480
|
-
- **Parameters:** None
|
|
1481
|
-
|
|
1482
|
-
```xml
|
|
1483
|
-
<Command ID="ComputerSession.Shutdown" />
|
|
1484
|
-
```
|
|
1485
|
-
|
|
1486
|
-
##### `Wait`
|
|
1487
|
-
Wait/pause execution
|
|
1488
|
-
- **Parameters:**
|
|
1489
|
-
- `time` (TimeSpan): Duration to wait
|
|
1490
|
-
|
|
1491
|
-
```xml
|
|
1492
|
-
<Command ID="Wait">
|
|
1493
|
-
<Parameter Key="time">00:00:02</Parameter>
|
|
1494
|
-
</Command>
|
|
1495
|
-
```
|
|
1496
|
-
|
|
1497
|
-
## Command Categories and Complete Reference
|
|
1498
|
-
|
|
1499
|
-
### Command Categories
|
|
1500
|
-
|
|
1501
|
-
Grid 3 organizes commands into the following categories:
|
|
1502
|
-
|
|
1503
|
-
- **Navigation**: Jump.To, Jump.Back, Jump.Home, Jump.ToKeyboard
|
|
1504
|
-
- **Workspace Actions**: Action.InsertText, Action.Clear, Action.DeleteWord, Action.Copy, Action.Paste
|
|
1505
|
-
- **Speech**: Action.Speak, Speech.SpeakNow, Speech.Stop, Speech.SpeakClipboard
|
|
1506
|
-
- **Prediction**: Prediction.PredictThis, Prediction.PredictConjugations, Prediction.ChangeWordList
|
|
1507
|
-
- **AI Tools**: Prediction.CorrectionTool (Fix tool for text correction)
|
|
1508
|
-
- **Computer Control**: ComputerControl.Keyboard, ComputerControl.MouseLeftClick, ComputerControl.MouseRightClick
|
|
1509
|
-
- **Settings**: Settings.EditMode, Settings.ChangeGridSet, Settings.SetScreenBrightness
|
|
1510
|
-
- **Media**: MediaPlayer.OpenVideoFile, MediaPlayer.OpenMusicFile, Speech.PlaySound
|
|
1511
|
-
- **Grammar**: Grammar.VerbMorphology, Grammar.NounMorphology
|
|
1512
|
-
- **Environment Control**: EnvironmentControl.ZWave, EnvironmentControl.RelayAccessory
|
|
1513
|
-
- **System**: ComputerSession.LogOff, ComputerSession.Shutdown, ComputerSession.Restart
|
|
1514
|
-
|
|
1515
|
-
### Complete Command ID Reference
|
|
1516
|
-
|
|
1517
|
-
| Command ID | Category | Parameters | Description |
|
|
1518
|
-
|------------|----------|------------|-------------|
|
|
1519
|
-
| `Jump.To` | Navigation | grid | Navigate to specified grid |
|
|
1520
|
-
| `Jump.Back` | Navigation | None | Return to previous grid |
|
|
1521
|
-
| `Jump.Home` | Navigation | None | Navigate to home grid |
|
|
1522
|
-
| `Jump.ToKeyboard` | Navigation | None | Navigate to keyboard grid |
|
|
1523
|
-
| `Action.InsertText` | Workspace | text, pos, verbstate | Insert rich text with symbols |
|
|
1524
|
-
| `Action.Letter` | Workspace | letter | Insert single character |
|
|
1525
|
-
| `Action.DeleteWord` | Workspace | None | Delete last word |
|
|
1526
|
-
| `Action.DeleteLetter` | Workspace | None | Delete last character |
|
|
1527
|
-
| `Action.Clear` | Workspace | None | Clear workspace content |
|
|
1528
|
-
| `Action.Speak` | Speech | unit, movecaret | Speak workspace content |
|
|
1529
|
-
| `Speech.SpeakNow` | Speech | text | Speak specific text |
|
|
1530
|
-
| `Speech.Stop` | Speech | None | Stop current speech |
|
|
1531
|
-
| `Prediction.PredictThis` | Prediction | wordlist, action | Trigger word prediction |
|
|
1532
|
-
| `Prediction.PredictConjugations` | Prediction | None | Predict verb conjugations |
|
|
1533
|
-
| `Prediction.CorrectionTool` | AI Tools | None | AI-powered text correction (Fix tool) |
|
|
1534
|
-
| `ComputerControl.Keyboard` | Computer Control | keystring | Send keyboard input |
|
|
1535
|
-
| `ComputerControl.MouseLeftClick` | Computer Control | button | Perform mouse click |
|
|
1536
|
-
| `Settings.EditMode` | Settings | None | Toggle edit mode |
|
|
1537
|
-
| `MediaPlayer.OpenVideoFile` | Media | filedata, playimmediately | Open video file |
|
|
1538
|
-
| `Speech.PlaySound` | Media | filedata | Play sound file |
|
|
1539
|
-
| `Grammar.VerbMorphology` | Grammar | verbpart, person, number | Modify verb form |
|
|
1540
|
-
| `Wait` | System | time | Pause execution |
|
|
1541
|
-
|
|
1542
|
-
## Technical Specifications
|
|
1543
|
-
|
|
1544
|
-
### Grid Constraints
|
|
1545
|
-
- Maximum 8 scan blocks per grid
|
|
1546
|
-
- Cell coordinates are 0-based
|
|
1547
|
-
- ColumnSpan and RowSpan minimum value: 1
|
|
1548
|
-
- Grid dimensions defined by ColumnDefinitions/RowDefinitions count
|
|
1549
|
-
- Maximum grid size is not explicitly limited but practical limits apply
|
|
1550
|
-
|
|
1551
|
-
### Color Format
|
|
1552
|
-
All colors use 8-digit ARGB hex format: `#AARRGGBBFF`
|
|
1553
|
-
- AA: Alpha (transparency) - 00 (transparent) to FF (opaque)
|
|
1554
|
-
- RR: Red component - 00 to FF
|
|
1555
|
-
- GG: Green component - 00 to FF
|
|
1556
|
-
- BB: Blue component - 00 to FF
|
|
1557
|
-
- FF: Usually FF for full opacity
|
|
1558
|
-
|
|
1559
|
-
### File Format Version
|
|
1560
|
-
Current gridset format version tracked in `GridSetFileFormatVersion`
|
|
1561
|
-
|
|
1562
|
-
### Symbol Library References and Resolution
|
|
1563
|
-
|
|
1564
|
-
**Format**: `[LIBRARY_NAME]path/to/symbol.extension`
|
|
1565
|
-
|
|
1566
|
-
**Reference Resolution Process** (from source code):
|
|
1567
|
-
1. **Parse Reference**: `SymbolReference` class parses the library reference
|
|
1568
|
-
2. **Library Identification**: Extract library name from brackets (e.g., `[WIDGIT]`)
|
|
1569
|
-
3. **Path Resolution**: Resolve symbol path within the library archive
|
|
1570
|
-
4. **Symbol Creation**: Create `LibrarySymbol` object with resolved reference
|
|
1571
|
-
5. **Skin Tone Application**: Apply user's default skin tone if symbol supports it
|
|
1572
|
-
|
|
1573
|
-
**Common Symbol Libraries**:
|
|
1574
|
-
- **`[WIDGIT]`**: Widgit symbol library (licensed commercial content)
|
|
1575
|
-
- Example: `[WIDGIT]widgit rebus\h\hello.emf`
|
|
1576
|
-
- Requires valid license for full access
|
|
1577
|
-
- Extensive vocabulary with multiple languages
|
|
1578
|
-
|
|
1579
|
-
- **`[GRID3X]`**: Grid 3 built-in symbols
|
|
1580
|
-
- Example: `[GRID3X]settings.wmf`
|
|
1581
|
-
- Free symbols included with Grid 3
|
|
1582
|
-
- UI icons, basic vocabulary, system symbols
|
|
1583
|
-
|
|
1584
|
-
- **`[GRID2X]`**: Grid 2 compatibility symbols
|
|
1585
|
-
- Example: `[GRID2X]legacy_symbol.wmf`
|
|
1586
|
-
- Maintains compatibility with Grid 2 gridsets
|
|
1587
|
-
- Legacy symbol format support
|
|
1588
|
-
|
|
1589
|
-
- **`[SSTIX#]`**: Additional symbol library
|
|
1590
|
-
- Example: `[SSTIX#]symbol_path.emf`
|
|
1591
|
-
- Extended symbol collection
|
|
1592
|
-
- Specialized vocabulary sets
|
|
1593
|
-
|
|
1594
|
-
**Symbol Reference Processing**:
|
|
1595
|
-
```csharp
|
|
1596
|
-
// Source code implementation
|
|
1597
|
-
var symbolReference = new SymbolReference(reference);
|
|
1598
|
-
if (symbolReference.IsLibraryReference)
|
|
1599
|
-
{
|
|
1600
|
-
var librarySymbol = new LibrarySymbol(reference);
|
|
1601
|
-
if (librarySymbol.SkinTone == SkinTone.SymbolDefault)
|
|
1602
|
-
librarySymbol.SkinTone = GridApp.User.Settings.SymbolSettings.SkinTone;
|
|
1603
|
-
return librarySymbol;
|
|
1604
|
-
}
|
|
1605
|
-
```
|
|
1606
|
-
|
|
1607
|
-
**Library Key Conversion**:
|
|
1608
|
-
- **Library ID to Key**: `PictureLibraryHelper.ConvertLibraryIdToKey("[WIDGIT]")` → `"widgit"`
|
|
1609
|
-
- **Key to Library ID**: `PictureLibraryHelper.ConvertLibraryKeyToId("widgit")` → `"[WIDGIT]"`
|
|
1610
|
-
- **Case Handling**: Library keys are normalized to lowercase for file system access
|
|
1611
|
-
|
|
1612
|
-
**Symbol Search Integration**:
|
|
1613
|
-
- **Caption Lookup**: `.pix` files map symbol IDs to human-readable captions
|
|
1614
|
-
- **Category Organization**: `categories.pix` organizes symbols by topic
|
|
1615
|
-
- **Search Service**: `PictureSearchService` provides unified search across all libraries
|
|
1616
|
-
- **Predictive Integration**: Symbol search integrates with word prediction systems
|
|
1617
|
-
|
|
1618
|
-
**File Format Support**:
|
|
1619
|
-
- **WMF**: Windows Metafile format (vector graphics)
|
|
1620
|
-
- **EMF**: Enhanced Metafile format (enhanced vector graphics)
|
|
1621
|
-
- **PNG/JPG**: Raster image formats (for photos and complex images)
|
|
1622
|
-
- **SVG**: Scalable Vector Graphics (modern vector format)
|
|
1623
|
-
|
|
1624
|
-
### Cell Spacing System
|
|
1625
|
-
Uses golden ratio-based spacing (φ = 1.618):
|
|
1626
|
-
- `None`: φ¹/100 = 0.0162
|
|
1627
|
-
- `Small`: φ²/100 = 0.0262
|
|
1628
|
-
- `Medium`: φ³/100 = 0.0424
|
|
1629
|
-
- `Large`: φ⁴/100 = 0.0686
|
|
1630
|
-
- `ExtraLarge`: φ⁵/100 = 0.1111
|
|
1631
|
-
|
|
1632
|
-
### Cell Background Shapes
|
|
1633
|
-
Available background shapes for cells:
|
|
1634
|
-
- `Rectangle` (0): Standard rectangular shape
|
|
1635
|
-
- `RoundedRectangle` (1): Rectangle with rounded corners
|
|
1636
|
-
- `FoldedCorner` (2): Rectangle with folded corner effect
|
|
1637
|
-
- `Octagon` (3): Eight-sided shape
|
|
1638
|
-
- `Folder` (4): Folder-like appearance
|
|
1639
|
-
- `Ellipse` (5): Oval shape
|
|
1640
|
-
- `SpeechBubble` (6): Speech bubble shape
|
|
1641
|
-
- `ThoughtBubble` (7): Thought bubble shape
|
|
1642
|
-
- `Star` (8): Star shape
|
|
1643
|
-
- `Circle` (9): Perfect circle
|
|
1644
|
-
|
|
1645
|
-
## Localization and Language Support
|
|
1646
|
-
|
|
1647
|
-
### Language Settings
|
|
1648
|
-
Gridsets include language specification in `Settings0/settings.xml`:
|
|
1649
|
-
```xml
|
|
1650
|
-
<GridSetSettings>
|
|
1651
|
-
<Language>en-US</Language>
|
|
1652
|
-
<!-- Other settings -->
|
|
1653
|
-
</GridSetSettings>
|
|
1654
|
-
```
|
|
1655
|
-
|
|
1656
|
-
### Symbol Library Localization
|
|
1657
|
-
- Symbol libraries may include RTL (right-to-left) variants
|
|
1658
|
-
- Located in `symbols_rtl/` directory within `.symbols` archives
|
|
1659
|
-
- Affects text direction and symbol orientation
|
|
1660
|
-
|
|
1661
|
-
### Screen Selection Methods
|
|
1662
|
-
Multiple access methods supported:
|
|
1663
|
-
- `ClickHighlightedCell`: Activate on release
|
|
1664
|
-
- `ClickFirstCellTouched`: Activate on touch
|
|
1665
|
-
- `Dwell`: Time-based activation
|
|
1666
|
-
- `Hold`: Hold button down
|
|
1667
|
-
- `Switch`: Switch press
|
|
1668
|
-
- `Blink`: Eye blink detection
|
|
1669
|
-
- `DesktopZoom`: Desktop zoom navigation
|
|
1670
|
-
- `MoveMouse`: Mouse movement control
|
|
1671
|
-
|
|
1672
|
-
## Complete Examples
|
|
1673
|
-
|
|
1674
|
-
### Example 1: Basic Text Button
|
|
1675
|
-
```xml
|
|
1676
|
-
<Cell X="0" Y="0" ScanBlock="1">
|
|
1677
|
-
<Visibility>Visible</Visibility>
|
|
1678
|
-
<DirectActivate>0</DirectActivate>
|
|
1679
|
-
<Content>
|
|
1680
|
-
<ContentType>Normal</ContentType>
|
|
1681
|
-
<CaptionAndImage>
|
|
1682
|
-
<Caption>Hello</Caption>
|
|
1683
|
-
<Image>[WIDGIT]widgit rebus\h\hello.emf</Image>
|
|
1684
|
-
</CaptionAndImage>
|
|
1685
|
-
<Style>
|
|
1686
|
-
<BasedOnStyle>Vocab cell</BasedOnStyle>
|
|
1687
|
-
</Style>
|
|
1688
|
-
<Commands>
|
|
1689
|
-
<Command ID="Action.InsertText">
|
|
1690
|
-
<Parameter Key="text">
|
|
1691
|
-
<SymbolRun Image="[WIDGIT]widgit rebus\h\hello.emf">
|
|
1692
|
-
<Run>Hello</Run>
|
|
1693
|
-
<Run> </Run>
|
|
1694
|
-
</SymbolRun>
|
|
1695
|
-
</Parameter>
|
|
1696
|
-
</Command>
|
|
1697
|
-
</Commands>
|
|
1698
|
-
</Content>
|
|
1699
|
-
</Cell>
|
|
1700
|
-
```
|
|
1701
|
-
|
|
1702
|
-
### Example 2: Prediction AutoContent Cell
|
|
1703
|
-
```xml
|
|
1704
|
-
<Cell X="1" Y="0" ScanBlock="2">
|
|
1705
|
-
<Content>
|
|
1706
|
-
<ContentType>AutoContent</ContentType>
|
|
1707
|
-
<ContentSubType>Prediction</ContentSubType>
|
|
1708
|
-
<Style>
|
|
1709
|
-
<BasedOnStyle>Auto content</BasedOnStyle>
|
|
1710
|
-
</Style>
|
|
1711
|
-
</Content>
|
|
1712
|
-
</Cell>
|
|
1713
|
-
```
|
|
1714
|
-
|
|
1715
|
-
### Example 3: Workspace Cell
|
|
1716
|
-
```xml
|
|
1717
|
-
<Cell X="0" Y="0" ColumnSpan="6" RowSpan="1">
|
|
1718
|
-
<Content>
|
|
1719
|
-
<ContentType>Workspace</ContentType>
|
|
1720
|
-
<ContentSubType>Chat</ContentSubType>
|
|
1721
|
-
<Style>
|
|
1722
|
-
<BasedOnStyle>Workspace</BasedOnStyle>
|
|
1723
|
-
</Style>
|
|
1724
|
-
</Content>
|
|
1725
|
-
</Cell>
|
|
1726
|
-
```
|
|
1727
|
-
|
|
1728
|
-
### Example 4: LiveCell with Parameters
|
|
1729
|
-
```xml
|
|
1730
|
-
<Cell X="2" Y="0">
|
|
1731
|
-
<Content>
|
|
1732
|
-
<ContentType>LiveCell</ContentType>
|
|
1733
|
-
<ContentSubType>Clock.Time</ContentSubType>
|
|
1734
|
-
<Parameters>
|
|
1735
|
-
<Parameter Key="format">HH:mm:ss</Parameter>
|
|
1736
|
-
<Parameter Key="timezone">Local</Parameter>
|
|
1737
|
-
</Parameters>
|
|
1738
|
-
<Style>
|
|
1739
|
-
<BasedOnStyle>Default</BasedOnStyle>
|
|
1740
|
-
</Style>
|
|
1741
|
-
</Content>
|
|
1742
|
-
</Cell>
|
|
1743
|
-
```
|
|
1744
|
-
|
|
1745
|
-
### Example 5: Navigation Button with Custom Style
|
|
1746
|
-
```xml
|
|
1747
|
-
<Cell X="5" Y="6" ScanBlock="8">
|
|
1748
|
-
<Content>
|
|
1749
|
-
<ContentType>Normal</ContentType>
|
|
1750
|
-
<CaptionAndImage>
|
|
1751
|
-
<Caption>Settings</Caption>
|
|
1752
|
-
<Image>[GRID3X]settings.wmf</Image>
|
|
1753
|
-
</CaptionAndImage>
|
|
1754
|
-
<Style>
|
|
1755
|
-
<BasedOnStyle>Actions category style</BasedOnStyle>
|
|
1756
|
-
<BackColour>#FF4444FF</BackColour>
|
|
1757
|
-
<FontSize>24</FontSize>
|
|
1758
|
-
</Style>
|
|
1759
|
-
<Commands>
|
|
1760
|
-
<Command ID="Jump.To">
|
|
1761
|
-
<Parameter Key="grid">Settings</Parameter>
|
|
1762
|
-
</Command>
|
|
1763
|
-
</Commands>
|
|
1764
|
-
</Content>
|
|
1765
|
-
</Cell>
|
|
1766
|
-
```
|
|
1767
|
-
|
|
1768
|
-
## Best Practices
|
|
1769
|
-
|
|
1770
|
-
### Cell Design
|
|
1771
|
-
1. **Use appropriate ContentType**: Choose Normal for standard buttons, AutoContent for dynamic content, Workspace for text areas, and LiveCell for real-time information
|
|
1772
|
-
2. **Organize with ScanBlocks**: Group related cells in the same scan block for better navigation
|
|
1773
|
-
3. **Apply consistent styling**: Use BasedOnStyle for consistency and override specific properties only when needed
|
|
1774
|
-
4. **Provide meaningful captions**: Ensure all cells have descriptive captions for accessibility
|
|
1775
|
-
|
|
1776
|
-
### Command Usage
|
|
1777
|
-
1. **Parameter validation**: Always provide required parameters with correct types
|
|
1778
|
-
2. **Rich text formatting**: Use SymbolRun elements for text with symbols in Action.InsertText commands
|
|
1779
|
-
3. **Grammar support**: Include part-of-speech and verb state information for language processing
|
|
1780
|
-
4. **Error handling**: Commands with invalid parameters will be ignored or use default values
|
|
1781
|
-
|
|
1782
|
-
### Performance Considerations
|
|
1783
|
-
1. **Limit AutoContent cells**: Too many AutoContent cells can impact performance
|
|
1784
|
-
2. **Optimize images**: Use appropriate image formats and sizes for symbols
|
|
1785
|
-
3. **Minimize complex commands**: Avoid overly complex command chains that might slow execution
|
|
1786
|
-
4. **Cache considerations**: LiveCells update frequently, so design grids accordingly
|
|
1787
|
-
|
|
1788
|
-
This comprehensive documentation covers all major aspects of Grid 3 file format, providing developers and advanced users with the information needed to create, modify, and understand Grid 3 gridsets effectively.
|