diff --git a/.claude/skills/orca-wxwidgets/SKILL.md b/.claude/skills/orca-wxwidgets/SKILL.md index 263d2e390f..0e39ce9d24 100644 --- a/.claude/skills/orca-wxwidgets/SKILL.md +++ b/.claude/skills/orca-wxwidgets/SKILL.md @@ -30,8 +30,9 @@ how you read the wx docs: Look things up in the source the app is built from — it beats memory, and 3.3 changed real behaviour: ```bash -WX=$(find deps -maxdepth 5 -type d -path '*dep_wxWidgets-prefix/src/dep_wxWidgets' | head -1) -# macOS: deps/build//dep_wxWidgets-prefix/src/dep_wxWidgets Linux: deps/build/dep_wxWidgets-prefix/... +WX=$(find -L deps -maxdepth 5 -type d -path '*dep_wxWidgets-prefix/src/dep_wxWidgets' 2>/dev/null | head -1) +# macOS: deps/build//dep_wxWidgets-prefix/src/dep_wxWidgets Linux, Windows: deps//dep_wxWidgets-prefix/... +# -L follows a worktree's deps/ symlinked to the main checkout. Not a glob: zsh aborts on one that matches nothing. # If deps are not built: git clone --depth 1 -b v3.3.2 https://github.com/SoftFever/Orca-deps-wxWidgets grep -n "CaptureMouse" -A 30 $WX/interface/wx/window.h # documented contract (doxygen source) grep -rn "@onlyfor\|not implemented" $WX/interface/wx/popupwin.h # documented platform limits @@ -40,6 +41,13 @@ grep -n "IsDark" $WX/docs/changes.txt # what changed in grep -n "NotifyCaptureLost" -r $WX/src/osx $WX/src/gtk $WX/src/msw # what each port actually does ``` +On Windows these lookups are bash: run them from Git Bash. PowerShell has no `grep`, and its `find` is +Windows' text-search `find.exe`. To locate the wx tree from PowerShell: + +```powershell +$WX = Resolve-Path deps\*\dep_wxWidgets-prefix\src\dep_wxWidgets, deps\*\*\dep_wxWidgets-prefix\src\dep_wxWidgets -ErrorAction SilentlyContinue | Select-Object -First 1 -ExpandProperty Path +``` + `interface/wx/.h` is the documentation; `src/common` holds shared behaviour and `src/{msw,osx,gtk,unix,generic}` the per-port implementation. When the docs and the source disagree, the source is what runs — the references mark such facts **[source]**. Orca-side design docs live in diff --git a/.claude/skills/orca-wxwidgets/references/mouse-keyboard-focus.md b/.claude/skills/orca-wxwidgets/references/mouse-keyboard-focus.md index 0ccb5e4b70..48646134d8 100644 --- a/.claude/skills/orca-wxwidgets/references/mouse-keyboard-focus.md +++ b/.claude/skills/orca-wxwidgets/references/mouse-keyboard-focus.md @@ -10,7 +10,7 @@ wx asserts are compiled out in Orca (`wxDEBUG_LEVEL=0`), so every misuse below t an assert fails silently. "GTK" means wxGTK3, Orca's Linux default (X11 and Wayland); GTK2 is only an opt-out build (`-DDEP_WX_GTK3=OFF`), noted where it differs. Paths starting `interface/`, `include/`, `src/`, `docs/` are in the wx tree -(`find deps -maxdepth 5 -type d -path '*dep_wxWidgets-prefix/src/dep_wxWidgets'`); Orca paths are +(located as in `SKILL.md` §Ground truth); Orca paths are relative to `src/slic3r/GUI/`. Contents: [Rules](#rules) · [Mouse capture](#mouse-capture) · [Mouse events](#mouse-events) · diff --git a/.claude/skills/orca-wxwidgets/references/painting-custom-widgets.md b/.claude/skills/orca-wxwidgets/references/painting-custom-widgets.md index 905ff97d99..4f047042c3 100644 --- a/.claude/skills/orca-wxwidgets/references/painting-custom-widgets.md +++ b/.claude/skills/orca-wxwidgets/references/painting-custom-widgets.md @@ -6,7 +6,7 @@ to write a custom control on the wx side and how to author an Orca widget on the `StaticBox`/`StateHandler` foundation. Read it before writing or reviewing any `wxEVT_PAINT` handler, `render`/`doRender` method, `messureSize`, or a new class under `src/slic3r/GUI/Widgets/`. -wx cites are relative to the pinned wx 3.3.2 tree (`deps/build//dep_wxWidgets-prefix/src/dep_wxWidgets`). +wx cites are relative to the pinned wx 3.3.2 tree (located as in `SKILL.md` §Ground truth). Orca builds wx with `wxBUILD_DEBUG_LEVEL=0` and `libslic3r_gui` with `wxDEBUG_LEVEL=0`: every wx assert below is compiled out and `wxCHECK*` returns silently, so paint misuse shows up only as wrong, missing or stale pixels, never as an assert dialog. diff --git a/.claude/skills/orca-wxwidgets/references/platforms.md b/.claude/skills/orca-wxwidgets/references/platforms.md index 13ed32314a..f100b02269 100644 --- a/.claude/skills/orca-wxwidgets/references/platforms.md +++ b/.claude/skills/orca-wxwidgets/references/platforms.md @@ -78,8 +78,9 @@ Contents: [Rules](#rules) · [The wx build Orca uses](#the-wx-build-orca-uses) `references/colours-dark-mode.md`. - The checked-out source is the tree that every wx citation in this skill refers to: `deps/build//dep_wxWidgets-prefix/src/dep_wxWidgets` on macOS and - `deps/build/dep_wxWidgets-prefix/src/dep_wxWidgets` on Linux. Find it with - `find deps -maxdepth 5 -type d -path '*dep_wxWidgets-prefix/src/dep_wxWidgets'`. On macOS its + `deps//dep_wxWidgets-prefix/src/dep_wxWidgets` on Linux and Windows (`deps/build` for a + release build; `build_win.bat` names the others). Locate it with the bash or PowerShell lookup in + `SKILL.md` §Ground truth. On macOS its `src/osx/cocoa/colour.mm` already has the patch applied. - **Flatpak builds wx separately.** `deps/CMakeLists.txt` leaves `dep_wxWidgets` out of the deps target when `FLATPAK` is set. Instead, `scripts/flatpak/com.orcaslicer.OrcaSlicer.yml` has its own diff --git a/.claude/skills/orca-wxwidgets/references/popups-menus.md b/.claude/skills/orca-wxwidgets/references/popups-menus.md index be1abb69a8..3fab369436 100644 --- a/.claude/skills/orca-wxwidgets/references/popups-menus.md +++ b/.claude/skills/orca-wxwidgets/references/popups-menus.md @@ -5,7 +5,7 @@ How wx 3.3.2 popups and menus behave on each port, and the Orca wrappers built o `append_menu_item`, `Plater::PopupMenu` and the macOS menubar versus `BBLTopbar`. Read it before you add or change anything that opens over other UI and must close by itself, or any context menu or menubar item. -wx cites are relative to the wx tree root (`deps/build//dep_wxWidgets-prefix/src/dep_wxWidgets`). +wx cites are relative to the wx tree root (located as in `SKILL.md` §Ground truth). **[source]** marks behaviour derived from the implementation that the wx docs do not state or contradict. Orca builds wx with `wxBUILD_DEBUG_LEVEL=0`, so every "asserts" below means "fails silently in Orca". "GTK" means wxGTK3 (X11 and Wayland), the default Linux build; GTK2 is only an opt-out (`-DDEP_WX_GTK3=OFF`). diff --git a/.claude/skills/orca-wxwidgets/references/threads-timers-app.md b/.claude/skills/orca-wxwidgets/references/threads-timers-app.md index 8c8367c999..269c228a35 100644 --- a/.claude/skills/orca-wxwidgets/references/threads-timers-app.md +++ b/.claude/skills/orca-wxwidgets/references/threads-timers-app.md @@ -7,7 +7,7 @@ yields and nested event loops, progress dialogs, startup, shutdown and exception screen, and the access rules for `wxGetApp()` and `app_config`. Read it whenever code runs off the main thread, defers work, starts a timer, yields, shows progress, or runs during startup or shutdown. -wx cites are relative to the pinned wx 3.3.2 tree (`deps/build//dep_wxWidgets-prefix/src/dep_wxWidgets`). +wx cites are relative to the pinned wx 3.3.2 tree (located as in `SKILL.md` §Ground truth). Orca builds wx with `wxBUILD_DEBUG_LEVEL=0` and `libslic3r_gui` with `wxDEBUG_LEVEL=0`, so `wxASSERT` is compiled out and `wxCHECK*` returns silently: a timer started off the main thread never fires on macOS, `Exit()` on a loop that is not the active one is ignored, `Start(0)` on macOS fails — all without diff --git a/.claude/skills/orca-wxwidgets/references/windows-dialogs.md b/.claude/skills/orca-wxwidgets/references/windows-dialogs.md index 1c5be5af4c..ff8a858e24 100644 --- a/.claude/skills/orca-wxwidgets/references/windows-dialogs.md +++ b/.claude/skills/orca-wxwidgets/references/windows-dialogs.md @@ -6,10 +6,9 @@ port; what Orca's `DPIDialog`/`DPIFrame` add; the Orca dialog recipe; and the `M Read it before writing or reviewing any dialog, frame, close handler, `Destroy()`/`delete`, or code that keeps a pointer to a window across an event, a `CallAfter` or a modal loop. -wx cites are relative to the pinned wx 3.3.2 tree (`find deps -maxdepth 5 -type d -path -'*dep_wxWidgets-prefix/src/dep_wxWidgets'`). wx is built with `wxBUILD_DEBUG_LEVEL=0` and -`libslic3r_gui` with `wxDEBUG_LEVEL=0`: every wx assert quoted below is compiled out, so misuse -fails silently (dropped call, stuck loop, freed memory), never with an assert dialog. "GTK" below +wx cites are relative to the pinned wx 3.3.2 tree (located as in `SKILL.md` §Ground truth). wx is +built with `wxBUILD_DEBUG_LEVEL=0` and `libslic3r_gui` with `wxDEBUG_LEVEL=0`: every wx assert +quoted below is compiled out, so misuse fails silently (dropped call, stuck loop, freed memory), never with an assert dialog. "GTK" below means wxGTK as Orca builds it on Linux: GTK3 by default (X11 or Wayland); GTK2 is only an opt-out. Contents: [Rules](#rules) · [1 Creating and parenting](#1-creating-and-parenting-windows) · diff --git a/.claude/skills/orca-wxwidgets/references/wx-33-changes.md b/.claude/skills/orca-wxwidgets/references/wx-33-changes.md index c2075ea2fb..4a292d89af 100644 --- a/.claude/skills/orca-wxwidgets/references/wx-33-changes.md +++ b/.claude/skills/orca-wxwidgets/references/wx-33-changes.md @@ -14,7 +14,7 @@ Contents: [Rules](#rules) · [1 Reading the change logs](#1-reading-the-change-l [8 Migration done in Orca](#8-migration-already-done-in-orca) All `docs/`, `interface/`, `include/`, `src/`, `build/` cites are relative to the pinned wx tree -(`find deps -maxdepth 5 -type d -path '*dep_wxWidgets-prefix/src/dep_wxWidgets'`), except paths +(located as in `SKILL.md` §Ground truth), except paths explicitly called Orca's (`deps/…`, Orca's `src/CMakeLists.txt`) and bare Orca file + symbol cites. ## Rules