diff --git a/docs/features/wx-dom-port/visual-notes.md b/docs/features/wx-dom-port/visual-notes.md index f9534fc..0f1e5fb 100644 --- a/docs/features/wx-dom-port/visual-notes.md +++ b/docs/features/wx-dom-port/visual-notes.md @@ -113,3 +113,21 @@ slider/statline/statbox wired: - **Polish items (open):** generic wxSpinCtrl's text field collapses beside the spin pair; Event Log textarea lacks the univ scrollbar gutter (native scrollbars appear on overflow instead). + +## Phase 5 (2026-06-10) — menus, toolbars, tooltips + +- **Working as native DOM:** menubar strip (File/Edit/View/Tools/Help) with + popup menus — items, separators, check marks, submenu expansion, hover + highlight, outside-click dismissal, drop shadow (`menu-03-file-clicked` + is a close twin of the canvas popup); toolbar strips with PNG icon + buttons, toggle state, separators; tooltips as native `title` + attributes (wxUSE_TOOLTIPS re-enabled for the DOM build). +- **Compatibility:** menu titles register as rendered elements + (`menuitem`/`menubar`), popup items as `menuitem`, tools as `tool` — + `clickMenuBarItem`/`findRenderedByType`-based specs pass unchanged + (menu.spec 7/7, toolbar.spec 6/6). +- **Architecture note:** menu structures serialize C++→JS as JSON + (wxDomMenuSetStructure); activation routes back via + wxDomGetLastCommandId + wxDOM_EVENT_MENU → wxMenu::SendEvent. Toolbar + identical shape (wxDomToolbarSetTools / wxDOM_EVENT_TOOL → + wxToolBarBase::OnLeftClick with radio-group + veto handling). diff --git a/scripts/build-wxuniversal-wasm.sh b/scripts/build-wxuniversal-wasm.sh index 96b21d8..8cd82bf 100755 --- a/scripts/build-wxuniversal-wasm.sh +++ b/scripts/build-wxuniversal-wasm.sh @@ -46,9 +46,8 @@ if [ "$DOM_BUILD" = "1" ]; then BUILD_DIR="$PROJECT_ROOT/build-wasm/wxwidgets-dom" # Native (non-universal) widget set: controls are real DOM elements. UNIVERSAL_FLAG="" - # Tooltips will be DOM title attributes (dom-phase-5); no wxToolTip yet. - # (Universal mode auto-disables them; native mode must do it explicitly.) - PORT_EXTRA_FLAGS="--disable-tooltips" + # Tooltips are DOM title attributes (wx/wasm/tooltip.h). + PORT_EXTRA_FLAGS="" WXLIB_PREFIX="libwx_wasmu" else BUILD_DIR="$PROJECT_ROOT/build-wasm/wxwidgets-universal" diff --git a/tests/baseline-screenshots-dom/05-text-input-tab.png b/tests/baseline-screenshots-dom/05-text-input-tab.png index 1064524..dee848b 100644 Binary files a/tests/baseline-screenshots-dom/05-text-input-tab.png and b/tests/baseline-screenshots-dom/05-text-input-tab.png differ diff --git a/tests/baseline-screenshots-dom/menu-01-loaded.png b/tests/baseline-screenshots-dom/menu-01-loaded.png index aea27c4..2aa329e 100644 Binary files a/tests/baseline-screenshots-dom/menu-01-loaded.png and b/tests/baseline-screenshots-dom/menu-01-loaded.png differ diff --git a/tests/baseline-screenshots-dom/menu-02-menubar.png b/tests/baseline-screenshots-dom/menu-02-menubar.png index aea27c4..2aa329e 100644 Binary files a/tests/baseline-screenshots-dom/menu-02-menubar.png and b/tests/baseline-screenshots-dom/menu-02-menubar.png differ diff --git a/tests/baseline-screenshots-dom/menu-03-file-clicked.png b/tests/baseline-screenshots-dom/menu-03-file-clicked.png new file mode 100644 index 0000000..f63287e Binary files /dev/null and b/tests/baseline-screenshots-dom/menu-03-file-clicked.png differ diff --git a/tests/baseline-screenshots-dom/menu-04-edit-clicked.png b/tests/baseline-screenshots-dom/menu-04-edit-clicked.png new file mode 100644 index 0000000..4cbdcc8 Binary files /dev/null and b/tests/baseline-screenshots-dom/menu-04-edit-clicked.png differ diff --git a/tests/baseline-screenshots-dom/menu-05-all-menus.png b/tests/baseline-screenshots-dom/menu-05-all-menus.png new file mode 100644 index 0000000..e9a5405 Binary files /dev/null and b/tests/baseline-screenshots-dom/menu-05-all-menus.png differ diff --git a/tests/baseline-screenshots-dom/toolbar-01-loaded.png b/tests/baseline-screenshots-dom/toolbar-01-loaded.png index 9729cce..d3e3c03 100644 Binary files a/tests/baseline-screenshots-dom/toolbar-01-loaded.png and b/tests/baseline-screenshots-dom/toolbar-01-loaded.png differ diff --git a/tests/baseline-screenshots-dom/toolbar-02-buttons.png b/tests/baseline-screenshots-dom/toolbar-02-buttons.png index 9729cce..d3e3c03 100644 Binary files a/tests/baseline-screenshots-dom/toolbar-02-buttons.png and b/tests/baseline-screenshots-dom/toolbar-02-buttons.png differ diff --git a/tests/baseline-screenshots-dom/toolbar-03-new-clicked.png b/tests/baseline-screenshots-dom/toolbar-03-new-clicked.png new file mode 100644 index 0000000..907e925 Binary files /dev/null and b/tests/baseline-screenshots-dom/toolbar-03-new-clicked.png differ diff --git a/tests/baseline-screenshots-dom/toolbar-04-zoom.png b/tests/baseline-screenshots-dom/toolbar-04-zoom.png new file mode 100644 index 0000000..5b6ca0e Binary files /dev/null and b/tests/baseline-screenshots-dom/toolbar-04-zoom.png differ diff --git a/tests/baseline-screenshots-dom/toolbar-05-toggle-on.png b/tests/baseline-screenshots-dom/toolbar-05-toggle-on.png new file mode 100644 index 0000000..3f3cdcc Binary files /dev/null and b/tests/baseline-screenshots-dom/toolbar-05-toggle-on.png differ diff --git a/tests/baseline-screenshots-dom/toolbar-06-toggle-off.png b/tests/baseline-screenshots-dom/toolbar-06-toggle-off.png new file mode 100644 index 0000000..fe259ec Binary files /dev/null and b/tests/baseline-screenshots-dom/toolbar-06-toggle-off.png differ diff --git a/tests/baseline-screenshots-dom/toolbar-07-statusbar.png b/tests/baseline-screenshots-dom/toolbar-07-statusbar.png index 9729cce..d3e3c03 100644 Binary files a/tests/baseline-screenshots-dom/toolbar-07-statusbar.png and b/tests/baseline-screenshots-dom/toolbar-07-statusbar.png differ diff --git a/tests/baseline-screenshots-dom/toolbar-08-all-buttons.png b/tests/baseline-screenshots-dom/toolbar-08-all-buttons.png new file mode 100644 index 0000000..16e5afa Binary files /dev/null and b/tests/baseline-screenshots-dom/toolbar-08-all-buttons.png differ diff --git a/wxwidgets b/wxwidgets index a93ce91..5de7b0f 160000 --- a/wxwidgets +++ b/wxwidgets @@ -1 +1 @@ -Subproject commit a93ce9187cb0b482897ca502c314ee5aca68b52c +Subproject commit 5de7b0f072d2dd26c83347190d0587121a9df39e