mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-10-18 23:08:25 -05:00
Make the orca-wxwidgets skill find the wx source on Windows and in worktrees
This commit is contained in:
1 parent
84657ff11e
commit
c86e33db6d
8 files changed
+21
-13
No files matched your search
@@ -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:
|
Look things up in the source the app is built from — it beats memory, and 3.3 changed real behaviour:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
WX=$(find deps -maxdepth 5 -type d -path '*dep_wxWidgets-prefix/src/dep_wxWidgets' | head -1)
|
WX=$(find -L deps -maxdepth 5 -type d -path '*dep_wxWidgets-prefix/src/dep_wxWidgets' 2>/dev/null | head -1)
|
||||||
# macOS: deps/build/<arch>/dep_wxWidgets-prefix/src/dep_wxWidgets Linux: deps/build/dep_wxWidgets-prefix/...
|
# macOS: deps/build/<arch>/dep_wxWidgets-prefix/src/dep_wxWidgets Linux, Windows: deps/<tree>/dep_wxWidgets-prefix/...
|
||||||
|
# -L follows a worktree's deps/<tree> 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
|
# 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 -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
|
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
|
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/<class>.h` is the documentation; `src/common` holds shared behaviour and
|
`interface/wx/<class>.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,
|
`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
|
the source is what runs — the references mark such facts **[source]**. Orca-side design docs live in
|
||||||
|
|||||||
@@ -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 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/`,
|
an opt-out build (`-DDEP_WX_GTK3=OFF`), noted where it differs. Paths starting `interface/`,
|
||||||
`include/`, `src/`, `docs/` are in the wx tree
|
`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/`.
|
relative to `src/slic3r/GUI/`.
|
||||||
|
|
||||||
Contents: [Rules](#rules) · [Mouse capture](#mouse-capture) · [Mouse events](#mouse-events) ·
|
Contents: [Rules](#rules) · [Mouse capture](#mouse-capture) · [Mouse events](#mouse-events) ·
|
||||||
|
|||||||
@@ -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`
|
`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/`.
|
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/<arch>/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
|
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
|
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.
|
wrong, missing or stale pixels, never as an assert dialog.
|
||||||
|
|||||||
@@ -78,8 +78,9 @@ Contents: [Rules](#rules) · [The wx build Orca uses](#the-wx-build-orca-uses)
|
|||||||
`references/colours-dark-mode.md`.
|
`references/colours-dark-mode.md`.
|
||||||
- The checked-out source is the tree that every wx citation in this skill refers to:
|
- The checked-out source is the tree that every wx citation in this skill refers to:
|
||||||
`deps/build/<arch>/dep_wxWidgets-prefix/src/dep_wxWidgets` on macOS and
|
`deps/build/<arch>/dep_wxWidgets-prefix/src/dep_wxWidgets` on macOS and
|
||||||
`deps/build/dep_wxWidgets-prefix/src/dep_wxWidgets` on Linux. Find it with
|
`deps/<tree>/dep_wxWidgets-prefix/src/dep_wxWidgets` on Linux and Windows (`deps/build` for a
|
||||||
`find deps -maxdepth 5 -type d -path '*dep_wxWidgets-prefix/src/dep_wxWidgets'`. On macOS its
|
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.
|
`src/osx/cocoa/colour.mm` already has the patch applied.
|
||||||
- **Flatpak builds wx separately.** `deps/CMakeLists.txt` leaves `dep_wxWidgets` out of the deps
|
- **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
|
target when `FLATPAK` is set. Instead, `scripts/flatpak/com.orcaslicer.OrcaSlicer.yml` has its own
|
||||||
|
|||||||
@@ -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
|
`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.
|
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/<arch>/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.
|
**[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".
|
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`).
|
"GTK" means wxGTK3 (X11 and Wayland), the default Linux build; GTK2 is only an opt-out (`-DDEP_WX_GTK3=OFF`).
|
||||||
|
|||||||
@@ -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
|
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.
|
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/<arch>/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`
|
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,
|
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
|
`Exit()` on a loop that is not the active one is ignored, `Start(0)` on macOS fails — all without
|
||||||
|
|||||||
@@ -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
|
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.
|
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
|
wx cites are relative to the pinned wx 3.3.2 tree (located as in `SKILL.md` §Ground truth). wx is
|
||||||
'*dep_wxWidgets-prefix/src/dep_wxWidgets'`). wx is built with `wxBUILD_DEBUG_LEVEL=0` and
|
built with `wxBUILD_DEBUG_LEVEL=0` and `libslic3r_gui` with `wxDEBUG_LEVEL=0`: every wx assert
|
||||||
`libslic3r_gui` with `wxDEBUG_LEVEL=0`: every wx assert quoted below is compiled out, so misuse
|
quoted below is compiled out, so misuse fails silently (dropped call, stuck loop, freed memory), never with an assert dialog. "GTK" below
|
||||||
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.
|
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) ·
|
Contents: [Rules](#rules) · [1 Creating and parenting](#1-creating-and-parenting-windows) ·
|
||||||
|
|||||||
@@ -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)
|
[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
|
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.
|
explicitly called Orca's (`deps/…`, Orca's `src/CMakeLists.txt`) and bare Orca file + symbol cites.
|
||||||
|
|
||||||
## Rules
|
## Rules
|
||||||
|
|||||||
Reference in new issue
Block a user