Crossword Editor Panel Widgets
Status: Proposed
Summary
The crossword editor has migrated to over to use libpanel. As a
result, we have collection of PanelWidgets
to go in the frames
around the outside of the dock.
Approach
We have a Panel Frames on the left, right, and bottom. The bottom one is informational, while the left and right have controls.
Different Panel Widgets can affect the behavior of other, as can the
central dock widget. For example, EditSymmetry
exports the current
selected symmetry of the puzzle, and other widgets can read from
it. Similarly, EditClueDetails
exports a substring of a clue that
can be queried.
Widget |
Location |
Description |
---|---|---|
EditWordList |
Grid Left |
Shows potential words that fit in the grid |
EditClueList |
Clue Left |
Selects the list of answers to set a clue |
EditSymmetry |
Grid Right |
Sets the symmetry of bars and blocks. Exports Symmetry |
EditBars |
Grid Right & IPuzBarred |
Sets barred lines between cells |
EditCellType |
Grid Right |
Selects a cell type for the current cell (block, regular, empty, initial val) |
EditShapes |
Grid Right |
Lets the user set a background shape for the current cell |
EditClueDetails |
Clue Right |
Edits the details of the currently selected clue. Exports clue substring |
EditStyleList |
Style Left |
Shows the list of current named styles |
EditStyleDetails |
Style Right |
Edits the style of the current cell |
EditGridInfo |
Grid Bottom |
Shows statistics about the current grid, such as distribution of clue lengths and letters. |
EditAnagram |
Clue Bottom |
Shows anagrams of the selected clue or subclue |
EditDict |
Clue Bottom |
Gives a definition of the selected clue or subclue |
EditThesaurus |
Clue Bottom |
Gives a synonym of the selected clue or subclue |
EditHint |
Clue Bottom |
Shows potential clue fragments for selected clue or subclue |
NOTE: Widgets marked as bold/italic are proposed and not written
Implementation issues
Hiding Panel Frame
Currently, we swap the visible PanelWidgets depending on what mode we’re in. That makes the interface bounce around. We’ll have to change PanelWidget to avoid this.