You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Added: `setContext(void*)` / `getContext()` — attach arbitrary caller data to a button instance and retrieve it inside any callback handler, without globals. Useful on AVR (no lambda captures) and for the explicit context pattern on any platform. Context is not cleared by `reset()` or `resetPressedState()`
Added: `CallbackContext` example — two buttons sharing the same handler functions, each with a different `ButtonCtx` struct attached via `setContext()`
Added: `setButtonStateFunction(StateCallbackFunctionBtn f)` overload — state callback now optionally receives a `const Button2&` reference, enabling multiple virtual buttons to share one state function and differentiate by ID or config. Useful for capacitive touch arrays (e.g. ESP32 `touchRead`) and I2C expanders
Added: `ESP32MultiCapTouch` example demonstrating two capacitive touch buttons sharing a single state handler via `btn.getID()`
Tests: Added consecutive double-click and bounce-injection investigation tests; `injectBounce()` helper in `test_helpers.h`
Internal: Standardised `TestRunner::setTimeout(90)` across all six test suites to prevent sporadic timeouts on `epoxy-nano`