| title | ckVision Documentation Coverage |
|---|---|
| author | C. Klukas |
| date | 2026-08-09 |
| format | report |
| description | Machine-checked traceability from every public widget header to client documentation and evidence. |
This matrix is deliberately checked by doc_widget_coverage. It maps every
public widget header to the client guide, a real example, generated screenshot,
and executable test family. Screenshots are generated, not committed artwork.
Most Screenshot entries now name a widget-* figure: a focused cut-out of the
widget, written by tools/docgen/capture_widget_shots from a scene in
tools/docgen/widget_shots_*.cpp. Those scenes are compiled examples in their
own right — the widget gallery quotes each one as that
widget's usage sample — which is why they appear in the Compiled example
column as widget_shots.
| Public header | Client guide | Compiled example | Screenshot | Test family |
|---|---|---|---|---|
include/cvision/widgets/application_shell.hpp |
Hello | hello | hello-initial | test_hello_golden |
include/cvision/widgets/big_clock.hpp |
Gallery | widget_shots | widget-bigclockview | test_big_clock |
include/cvision/widgets/button.hpp |
Gallery | forms/widget_shots | widget-button | test_widgets, test_forms_smoke |
include/cvision/widgets/canvas.hpp |
Graphics | graphics/widget_shots | widget-canvas/widget-canvas-no-graphics | test_graphics_smoke |
include/cvision/widgets/combo_box.hpp |
Gallery | forms/workbench/widget_shots | widget-combobox/widget-combobox-open | test_combo_box |
include/cvision/widgets/command_presentation.hpp |
Commands | hello/widget_shots | widget-toolbar/hello-menu-open | test_command |
include/cvision/widgets/common_components.hpp |
Gallery | forms/workbench/widget_shots | widget-calendarview/widget-clockview/widget-wizard/widget-notificationcenter/widget-tooltip | test_common_components, test_tooltip_controller |
include/cvision/widgets/desktop.hpp |
Object model | gallery/widget_shots | widget-desktop | test_desktop |
include/cvision/widgets/dialog.hpp |
Dialogs | forms/widget_shots | widget-dialogdescriptor | test_dialog |
include/cvision/widgets/dialog_presentation.hpp |
Dialogs | forms/widget_shots | widget-messagebox | test_dialog_presentation |
include/cvision/widgets/date_time_dialog.hpp |
Dialogs | widget_shots | widget-datedialog/widget-timedialog | test_date_time_dialog |
include/cvision/widgets/directory_picker.hpp |
Platform services | forms/widget_shots | widget-directorypicker | test_directory_picker |
include/cvision/widgets/editor_document.hpp |
Editor | editor/widget_shots | widget-texteditor/editor-initial | test_editor_document |
include/cvision/widgets/editor_search.hpp |
Editor | editor/widget_shots | widget-texteditor/editor-search | test_editor_search |
include/cvision/widgets/editor_window.hpp |
Editor | editor/widget_shots | widget-editorwindow/editor-close-confirm | test_editor_window |
include/cvision/widgets/file_editor_controller.hpp |
Editor | editor | editor-initial/editor-close-confirm | test_file_editor_controller |
include/cvision/widgets/file_dialog.hpp |
Platform services | filebrowser/widget_shots | widget-filedialog | test_file_dialog |
include/cvision/widgets/flow_view.hpp |
Flow content | workbench/widget_shots | widget-flowview | test_flow_view, test_workbench_smoke |
include/cvision/widgets/help_viewer.hpp |
Dialogs | forms/widget_shots | widget-helpviewer | test_help_viewer |
include/cvision/widgets/image_view.hpp |
Graphics | graphics/widget_shots | widget-imageview/graphics-no-graphics-image | test_graphics_smoke |
include/cvision/widgets/input_presentation.hpp |
Gallery | forms/widget_shots | InputLine/ComboBox/SearchBox appearance variants | test_widgets, test_combo_box, test_common_components |
include/cvision/widgets/input_presentation_internal.hpp |
internal field paint support | forms/widget_shots | InputLine/ComboBox appearance variants | test_widgets, test_combo_box |
include/cvision/widgets/input_line.hpp |
Gallery | forms/widget_shots | widget-inputline | test_widgets |
include/cvision/widgets/key_chord_capture.hpp |
Gallery | workbench/widget_shots | widget-keychordcapture | test_key_chord_capture, test_workbench_smoke |
include/cvision/widgets/frame_text.hpp |
Gallery | widget_shots, EditorWindow | widget-frametext | test_frame_text |
include/cvision/widgets/label.hpp |
Gallery | layouts/widget_shots | widget-label | test_widgets |
include/cvision/widgets/list_view.hpp |
Data views | filebrowser/widget_shots | widget-listview | test_list_view |
include/cvision/widgets/memo.hpp |
Gallery | workbench/widget_shots | widget-memo | test_memo |
include/cvision/widgets/menu.hpp |
Hello | hello/widget_shots | widget-menubar/widget-menubar-overflow/widget-dropdownmenu | test_menu |
include/cvision/widgets/message_box.hpp |
Dialogs | hello/forms/widget_shots | widget-messagebox | test_message_box |
include/cvision/widgets/mnemonic.hpp |
Gallery | forms/widget_shots | widget-label/widget-checkgroup/widget-radiogroup | test_mnemonic |
include/cvision/widgets/mnemonic_internal.hpp |
internal mnemonic paint support | forms/hello/widget_shots | widget-dropdownmenu/widget-checkgroup/widget-radiogroup | test_mnemonic, test_menu |
include/cvision/widgets/option_group.hpp |
Gallery | forms/widget_shots | widget-checkgroup/widget-radiogroup | test_option_group |
include/cvision/widgets/paged_strip.hpp |
Gallery | widget_shots | widget-pagedstrip | test_paged_strip |
include/cvision/widgets/popup_list.hpp |
Gallery | forms/widget_shots | widget-popuplist | test_popup_list |
include/cvision/widgets/orientation.hpp |
Gallery | layouts/widget_shots | widget-scrollbar | test_scrollbar |
include/cvision/widgets/progress_paint_internal.hpp |
Advanced progress | shared internal drawing | widget-progress | test_progress |
include/cvision/widgets/progress_tasks.hpp |
Advanced progress | progress_lab/appearance_progress | widget-progressview-normal, widget-activityindicator-normal | test_progress_tasks |
include/cvision/widgets/progress.hpp |
Gallery | workbench/widget_shots | widget-progress | test_progress |
include/cvision/widgets/scroll_viewport.hpp |
Gallery | gallery/widget_shots | widget-scrollviewport | test_scroll_viewport |
include/cvision/widgets/scrollbar.hpp |
Gallery | gallery/widget_shots | widget-scrollbar | test_scrollbar |
include/cvision/widgets/splitter.hpp |
Layout | layouts/filebrowser/widget_shots | widget-splitter | test_splitter |
include/cvision/widgets/standard_strings.hpp |
Dialogs | forms/widget_shots | widget-filedialog/widget-helpviewer | test_standard_strings |
include/cvision/widgets/static_text.hpp |
Gallery | layouts/widget_shots | widget-statictext | test_widgets |
include/cvision/widgets/status_line.hpp |
Hello | hello/forms/widget_shots | widget-statusline | test_status_line, test_hello_golden, test_forms_smoke |
include/cvision/widgets/tab_control.hpp |
Gallery | workbench/graphics/widget_shots | widget-tabcontrol | test_tab_control |
include/cvision/widgets/table.hpp |
Data views | workbench/widget_shots | widget-table/widget-table-editing | test_table |
include/cvision/widgets/cell_grid.hpp |
Data views | widget_shots | widget-cellgrid | test_cell_grid |
include/cvision/widgets/terminal_report_dialog.hpp |
Gallery | spin/widget_shots | widget-terminalreportdialog | test_terminal_report_dialog |
include/cvision/widgets/terminal_scrollbar.hpp |
Embedded terminal | ckvision_terminal | interactive session | test_terminal_scrollbar |
include/cvision/widgets/terminal_view.hpp |
Embedded terminal | ckvision_terminal | terminal-initial | test_terminal_view, test_terminal_app, terminal_redraw_contract |
include/cvision/widgets/text_layout.hpp |
Gallery | editor/widget_shots | widget-textview/widget-memo | test_text_layout |
include/cvision/widgets/text_view.hpp |
Gallery | workbench/widget_shots | widget-textview | test_text_view |
include/cvision/widgets/theme_editor.hpp |
Themes | workbench/widget_shots | widget-themeeditor | test_theme_editor, test_workbench_smoke |
include/cvision/widgets/text_editor.hpp |
Editor; TODO | editor/todo/widget_shots | widget-texteditor/todo-note-editor | test_text_editor, test_todo_smoke |
include/cvision/widgets/syntax_profile.hpp |
Editor | editor/widget_shots | widget-texteditor/editor-json | test_syntax_profile |
include/cvision/widgets/syntax_cache.hpp |
Editor | editor/widget_shots | widget-texteditor | test_syntax_cache |
include/cvision/widgets/tree_view.hpp |
Data views | filebrowser/widget_shots | widget-treeview | test_tree_view |
include/cvision/widgets/window.hpp |
Object model | gallery/widget_shots | widget-window | test_window |
include/cvision/widgets/window_list_dialog.hpp |
Gallery | gallery/widget_shots | widget-windowlistdialog | test_window_list_dialog |
include/cvision/widgets/minimized_window_stub.hpp |
Gallery | widget_shots | widget-minimizedwindowstub | test_minimized_window_stub |
include/cvision/widgets/window_switcher_bar.hpp |
Gallery | widget_shots | widget-windowswitcherbar | test_window_switcher_bar |
Every public view type is also driven by at least one Application-level
interaction script, and interaction_script_coverage checks this table
against the tests (tools/docgen/check_interaction_scripts.py, with a
--self-test). A script is a CK_TEST that reaches the view in a real
Application and sends it input the way a terminal does: through
Application::dispatch, HeadlessTerminal::inject_event or
Application::step. The gate requires, for each row:
- the view type is one the documentation-coverage gate enumerates, and every such type has a row;
- the named case exists in the named file under
tests/; - the case calls
dispatch,inject_eventorstep, directly or through a helper the same test file defines; - the case never calls a view's
on_key,on_key_release,on_mouse,on_textoron_pastehandler itself, directly or through such a helper; - the case names the "Reached through" identifier: the type itself, or the factory, example or fixture that builds it.
| View type | Script test case | Reached through |
|---|---|---|
BigClockView |
test_big_clock.cpp any_key_or_a_click_on_a_focused_face_asks_for_it_to_be_dismissed |
BigClockView |
BreadcrumbBar |
test_common_components.cpp a_scripted_breadcrumb_bar_walks_and_activates_its_segments |
BreadcrumbBar |
Button |
test_disabled_state.cpp a_press_on_a_disabled_button_never_fires_it_and_reaches_its_enabled_container |
Button |
CalendarDropdown |
test_common_components.cpp a_hosted_date_picker_opens_the_calendar_and_tracks_its_typed_selection |
CalendarDropdown |
CalendarView |
test_common_components.cpp a_scripted_calendar_view_moves_by_keys_and_selects_the_clicked_day |
CalendarView |
Canvas |
test_canvas.cpp a_scripted_canvas_redraws_at_its_new_pixel_size_and_forwards_both_coordinate_spaces |
Canvas |
CellGrid |
test_cell_grid.cpp a_scripted_cell_grid_is_walked_selected_and_activated_through_dispatched_input |
CellGrid |
CheckGroup |
test_option_group.cpp alt_and_the_caption_letter_focus_the_group_from_anywhere_in_its_window |
CheckGroup |
ClockView |
test_common_components.cpp a_clock_repaints_when_the_time_changes_and_not_on_every_tick |
ClockView |
ComboBox |
test_combo_box.cpp a_combo_drops_a_popup_list_and_takes_the_row_chosen_from_it |
ComboOnDesktop |
CommandPalette |
test_common_components.cpp a_scripted_command_palette_filters_as_typed_and_runs_the_highlighted_command |
CommandPalette |
DatePicker |
test_common_components.cpp a_hosted_date_picker_opens_the_calendar_and_tracks_its_typed_selection |
DatePicker |
Desktop |
test_m8_integration.cpp clicking_deep_content_in_a_background_window_raises_and_activates_it_through_dispatch |
Desktop |
DropdownMenu |
test_menu.cpp the_whole_menu_system_is_operable_by_mouse_alone |
MenuScript |
EditorWindow |
test_editor_window.cpp a_scripted_editor_window_marks_typed_changes_and_keeps_its_close_control_vetoed |
EditorWindow |
FlowView |
test_flow_view.cpp a_scripted_flow_view_scrolls_and_activates_links_by_key_by_click_and_by_wheel |
FlowView |
FrameText |
test_frame_text.cpp a_scripted_frame_text_follows_its_window_through_a_click_that_deactivates_it |
FrameText |
ImageView |
test_application.cpp a_frame_carrying_a_picture_is_not_followed_by_another_until_the_host_is_ready |
ImageView |
InputLine |
test_widgets.cpp a_scripted_input_line_edits_selects_copies_recalls_and_undoes_through_dispatched_keys |
InputLine |
KeyChordCapture |
test_key_chord_capture.cpp a_scripted_chord_capture_shadows_the_bound_command_only_while_it_captures |
KeyChordCapture |
Label |
test_widgets.cpp alt_mnemonic_on_a_window_focuses_the_labels_buddy |
Label |
ListView |
test_list_view.cpp a_scripted_list_view_searches_walks_and_activates_by_key_and_by_timed_double_click |
ListView |
Memo |
test_memo.cpp a_scripted_memo_edits_scrolls_copies_and_undoes_through_dispatched_keys |
Memo |
MenuBar |
test_menu.cpp the_whole_menu_system_is_operable_by_keyboard_alone |
MenuScript |
MinimizedWindowStub |
test_minimized_window_stub.cpp a_parked_window_can_be_got_back_without_a_mouse |
MinimizedWindowStub |
NotificationCenter |
test_common_components.cpp a_scripted_notification_center_expires_toasts_and_dismisses_by_escape_and_click |
NotificationCenter |
PagedStrip |
test_paged_strip.cpp a_scripted_paged_strip_pages_and_activates_items_through_dispatched_clicks |
PagedStrip |
PopupList |
test_popup_list.cpp a_popup_list_hangs_under_its_anchor_and_is_as_wide_as_its_longest_item |
PopupList |
ActivityIndicator |
test_progress_lab.cpp progress_lab_variants_run_pause_reset_and_resize |
ProgressLabApp |
ProgressView |
test_progress_lab.cpp progress_lab_variants_run_pause_reset_and_resize |
ProgressLabApp |
Progress |
test_progress.cpp a_scripted_progress_bar_shows_each_state_its_host_sets_between_steps |
Progress |
PropertyInspector |
test_common_components.cpp a_scripted_property_inspector_edits_a_value_in_place |
PropertyInspector |
RadioGroup |
test_option_group.cpp alt_and_the_caption_letter_focus_the_group_from_anywhere_in_its_window |
RadioGroup |
ScrollViewport |
test_scroll_viewport.cpp application_routes_wheel_events_over_descendant_content_to_the_scroll_viewport |
ScrollViewport |
Scrollbar |
test_scrollbar.cpp a_scripted_scrollbar_steps_pages_and_drags_through_dispatched_input |
Scrollbar |
SearchBox |
test_help_viewer.cpp enter_in_the_search_box_does_not_dismiss_the_help_window |
SearchBox |
Slider |
test_common_components.cpp a_scripted_slider_follows_keys_and_a_proportional_click |
Slider |
SpinBox |
test_common_components.cpp a_scripted_spin_box_steps_by_keys_by_explicit_steppers_and_by_the_wheel |
SpinBox |
Splitter |
test_splitter.cpp a_scripted_splitter_moves_its_divider_by_keys_and_by_a_dispatched_drag |
Splitter |
StaticText |
test_wp36.cpp wrapped_static_text_reallocates_height_through_a_hosted_dialog_content_tree |
StaticText |
StatusLine |
test_status_line.cpp a_scripted_status_line_runs_its_command_by_click_and_by_chord_in_an_application_shell |
ApplicationShell |
TabControl |
test_tab_control.cpp a_scripted_tab_control_switches_pages_by_arrows_mnemonics_and_clicks |
TabControl |
Table |
test_table.cpp a_scripted_table_sorts_on_a_header_click_and_edits_a_typed_cell_from_the_keyboard |
Table |
TerminalView |
test_terminal_view.cpp terminal_view_reencodes_private_child_sixel_only_through_the_outer_presenter |
TerminalView |
TextEditor |
test_text_editor.cpp text_editor_paints_host_highlights_and_places_a_virtual_caret_past_the_text |
TextEditor |
TextView |
test_text_view.cpp a_scripted_text_view_scrolls_and_follows_links_through_dispatched_input |
TextView |
TimePicker |
test_common_components.cpp a_scripted_time_picker_steps_its_fields_and_shows_either_clock_face |
TimePicker |
ToolBar |
test_common_components.cpp a_scripted_tool_bar_click_runs_its_command_only_while_it_is_enabled |
ToolBar |
Tooltip |
test_common_components.cpp a_scripted_tooltip_appears_and_leaves_with_the_frames_its_host_steps |
Tooltip |
TreeView |
test_tree_view.cpp a_scripted_tree_view_expands_walks_and_activates_through_dispatched_input |
TreeView |
Window |
test_m8_integration.cpp clicking_deep_content_in_a_background_window_raises_and_activates_it_through_dispatch |
Window |
WindowSwitcherBar |
test_window_switcher_bar.cpp a_lengthening_title_shows_at_once_but_its_button_waits_out_the_grow_delay |
WindowSwitcherBar |
Wizard |
test_common_components.cpp a_scripted_wizard_goes_forward_back_and_finishes_only_when_allowed |
Wizard |