Widgets: full widget set and node editor as a components library #13

Open
agent wants to merge 9 commits from WidgetsComponents into master
Collaborator

Full Widgets widget set and node editor

Second PR of the split. Adds every widget as a separate components library, grouped by category.

  • src/components/ — one library, each category with public/ and private/:
    • controls — Button, Label, Containers, Control, Slider, Toggles, TextField, TextArea, TextEditBuffer, Notice, Collapsible, ResizeHandle, Breadcrumb
    • chrome — ApplicationFrame, WindowControls, Menus, Dialog
    • docking — Docking, FloatingPanel, FullViewFrame
    • kanban — KanbanBoard
    • markdown — MarkdownDocument / View / Editor
    • media — MediaControls, RichText
    • files — FileBrowser
    • views — Views, SettingsView, ReorderableList, SearchField, PageStack, ColorPicker
    • session — SessionRecordingControl
    • nodes — NodeEditor, NodeGraph, TreeLayout, TreeView
    • debug — DebugInspector, DebugTools
  • Window adapter (src/app/) and the full gallery (Gallery + ThemeEditor).
  • Widget/component tests in src/components/tests/ (with shared support/), kept separate from the engine-only tests in tests/.

Stacked on #12 (the core engine).

## Full Widgets widget set and node editor Second PR of the split. Adds **every widget** as a separate `components` library, grouped by category. - **`src/components/`** — one library, each category with `public/` and `private/`: - `controls` — Button, Label, Containers, Control, Slider, Toggles, TextField, TextArea, TextEditBuffer, Notice, Collapsible, ResizeHandle, Breadcrumb - `chrome` — ApplicationFrame, WindowControls, Menus, Dialog - `docking` — Docking, FloatingPanel, FullViewFrame - `kanban` — KanbanBoard - `markdown` — MarkdownDocument / View / Editor - `media` — MediaControls, RichText - `files` — FileBrowser - `views` — Views, SettingsView, ReorderableList, SearchField, PageStack, ColorPicker - `session` — SessionRecordingControl - `nodes` — NodeEditor, NodeGraph, TreeLayout, TreeView - `debug` — DebugInspector, DebugTools - **Window adapter** (`src/app/`) and the **full gallery** (`Gallery` + `ThemeEditor`). - **Widget/component tests** in `src/components/tests/` (with shared `support/`), kept separate from the engine-only tests in `tests/`. > Stacked on #12 (the core engine).
agent added 8 commits 2026-10-29 15:17:28 +03:00
Widgets: painter, theme, gallery and the full widget set
Some checks are pending
Windows / build (pull_request) Waiting to run
CMake on a single platform / build (pull_request) Waiting to run
CMake / build (pull_request) Waiting to run
9305f53a40
- Move to the GraphicApplication layout: src/{core,layouts,widgets,app,components},
  one static library each (WidgetsCore/.../WidgetsComponents) under the Widgets umbrella.
- Split the widget set: the simple proof-of-concept widgets stay in widgets/; the
  full widgets (docking, kanban, markdown, media, files, views, session) and the node
  editor live in src/components/, grouped by category, with their tests alongside.
- The tooltip bubble moves into core (the tooltip controller owns one) so core no
  longer depends on the Label widget; InputRouting moves into core too.
- DebugInspector/DebugTools move to components/debug; WidgetApplication is now a
  minimal adapter without the inspector/debug menu.
- Tests split: core + simple-widget tests in tests/, component tests in
  src/components/tests/, app adapter tests in tests/app/.
Widgets: keep the minimal core library; move the full widgets out
Some checks are pending
Windows / build (pull_request) Waiting to run
CMake on a single platform / build (pull_request) Waiting to run
CMake / build (pull_request) Waiting to run
6a9069dde1
The full widget set (docking, kanban, markdown, media, files, views, session),
the node editor and the debug tools now live in a separate components library
(see the WidgetsComponents branch). This branch keeps:

- src/core, src/layouts, src/widgets (the simple proof-of-concept widgets) and
  src/app (the minimal window adapter without the debug inspector/menu).
- A simple gallery in examples/ (SimpleGallery) instead of the full one.
- Tests covering only the core and simple widgets, plus the app adapter.

The tooltip bubble and InputRouting moved into core so it no longer depends on
the Label widget.
Widgets: full widget set and node editor as a components library
Some checks are pending
Windows / build (pull_request) Waiting to run
CMake on a single platform / build (pull_request) Waiting to run
CMake / build (pull_request) Waiting to run
7cd8b66098
Add src/components, grouped by category (docking, kanban, markdown, media, files,
views, session, nodes, debug), plus the full gallery. Component tests live beside
the components in src/components/tests, separate from the core tests in tests/.
agent force-pushed WidgetsComponents from 7cd8b66098 to 284cb334ed 2026-10-29 16:16:22 +03:00 Compare
Some checks are pending
Windows / build (pull_request) Waiting to run
CMake on a single platform / build (pull_request) Waiting to run
CMake / build (pull_request) Waiting to run
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin WidgetsComponents:WidgetsComponents
git checkout WidgetsComponents

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git checkout master
git merge --no-ff WidgetsComponents
git checkout WidgetsComponents
git rebase master
git checkout master
git merge --ff-only WidgetsComponents
git checkout WidgetsComponents
git rebase master
git checkout master
git merge --no-ff WidgetsComponents
git checkout master
git merge --squash WidgetsComponents
git checkout master
git merge --ff-only WidgetsComponents
git checkout master
git merge WidgetsComponents
git push origin master
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: ilusha/Modules#13
No description provided.