Puzzle Naming
One result of the code is that we have a lot of files with similar names that do different things. This even gets confusing for people who are veterans of the code base. This is a quick description of each file to make it easier to navigate:
Play Widgets
play-border — Border/corner of cells
play-cell — Represents each cell
play-clue-list — A visual list of clues on the main board
play-clue-row — An individual clue
play-grid — A grid representing an IpuzPuzzle. made up of cells and borders
play-window — The main window
play-xword — A crossword playing area
play-xword-column — The custom widget that manages a PlayXword
Picker Widgets
puzzle-picker — Base widget for both PickerGrid and PickerList
picker-grid — A grid of locked puzzles. Used for cats and dogs
picker-list — A list of puzzles. Used for most puzzle sets
puzzle-button — Button used by the PickerGrid
puzzle-button-icon — An icon of a crossword for a puzzle button
Puzzle Management
puzzle-set — Base type of a set of puzzles. Can be a source to download new puzzles, or include existing puzzles. (Example: Cats & Dogs)
puzzle-set-config — Parses puzzle.config and extracts resources from the GResource.
puzzle-set-list — A global list of the PuzzleSets that the game has found. It’s currently static, but could be dynamic in the future.
puzzle-set-model — A GListModel that represents the puzzles in a PuzzleSet.
puzzle-downloader — Object that PuzzleSets use to download new puzzles
puzzle-downloader-dialog — Dialog to help manage the downloader.
Editor widgets
edit-greeter — Initial greeter for the editor. Let’s you pick a puzzle type. Also triggered by “New Puzzle”
edit-greeter-details — Interface to let the user customize puzzles from the greeter.
edit-greeter-crossword — Details panel for crossword-type puzzles.
edit-window — Main editor toplevel
edit-xword — Page for editing the grid of a puzzle
edit-clues — Page for editing the clues of a puzzle
edit-style — Page for editing the style of a puzzle
edit-metadata — Page for editing the metadata of a puzzle
edit-autofill-dialog — Dialog to let the user autofill a grid
edit-puzzle-stack — A stack of puzzles you can flip through. Used in the autofill dialog to show results from a autofill search.
Control Flow
puzzle-stack — Main control-flow of the app. Captures puzzle state in discrete chunks. Includes undo/redo support, as well as notifications to let listeners know about changes to the puzzle.
Deprecated but still used
play-style — The old style system. Replaced by CSS and used just for rendering svg icons now. Will be replaced once we implement printing and thumbnails.