* drag and zoom support for plots
* update doctest
* use impl ToString
* revert back to Into<String> until #302 is solved
* Apply suggestions from code review
Co-authored-by: ilya sheprut <optitel223@gmail.com>
* use persistence feature for PlotMemory
* rename shift -> translate
* remove automatic bounds
* removed unused methods
* Into<String> -> ToString
* Apply suggestions from code review
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
* avoid potential invalid bounds bug
* use new is_valid method
* improve auto bounds behavior as suggested
* use NOTHING to initialize min_auto_bounds
Co-authored-by: ilya sheprut <optitel223@gmail.com>
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
* Deny doc errors
* Add intentional bad intradoc link to test CI
* Add cargo doc to CI
* Fix carg doc web (add wasm32 target)
* Fix intentionally broken doc-link
* init work
* implement deferred deserialization
* many improvements
* rename `DataElement` -> `AnyMapElement`
* make `data` in `Memory` as public field of type with public interface
* make interface more rich
* transform most unwraps to proper error handling
* make `AnyMap` store by `TypeId`, so now individual type can be counted and reset
* improve storing TypeId between different rust versions
* rewrite system widgets to use AnyMap
* refactor everything
* replace `serde_json` -> `ron`
* move `any_map` to module
* separate `AnyMap` into `AnyMapId` and `serializable::AnyMapId` in order to not require `serde` traits in methods
* add `AnyMap` and `serializable::AnyMap` that stores elements just by type, without `Id`
* write documentation
* change tooltips and color picker to use `Memory::data_temp`
* fix bugs and docs
* Apply suggestions from code review
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
* rename `AnyMap` → `TypeMap`
* rename `AnyMapId` → `AnyMap`, add generic <Key> to it
* rename files `id_map` → `any_map`
* move out usages from `serializable` mod
* rename `ToDeserialize` → `Serialized`
* fix bug with counting
* add tests, and...
* rename `reset` → `remove`
* add function `remove_by_type`
* format code
* improve code
* make identical interface for serialized and simple maps
* make serialized maps serialized fully, without features by moving this into `Memory` struct with `#[cfg(feature = "persistence")]` under fields
* move `serialized::TypeId` into `AnyMapElement` struct
* fix pipeline and add one more test
* update docs
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
* Handle composition message to show suggestion.
* CI check
* Apply suggestions from code review
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
* Some minor changes
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
* Display ResizeHorizontal cursor on hover
* Adapt the URL open command to the platform
With this new version we use $OSTYPE bash env var to query what OS
are we running on.
- On Linux, ex: Fedora, we use `xdg-open`
- On Windows, ex: msys, we use `start`
- For other other variants we try to use `open`
We should update this script when we notice that `open` is not
available on a particular platform.
(cherry picked from commit b3aa4982f683d961c21fd18e9ffc1fdf5fba0783)
* Add slow speed mode for `DragValue`
The slow speed mode is disabled by default. It can be activated
or deactivated using `DragValue::slow_speed()`.
When active the `Shift` key can be used to have a better control
over the value, `DragValue::speed` / 10.0 increments.
* Display `ResizeHorizontal` cursor while dragging too
* Apply review suggestion
Shorter and in line with the rest of the code base
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
* Add `Modifiers::shift_only` for better code clarity
* Make slow speed always enabled
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
* egui_web: enable IME support on web.
* Move candidate window following text cursor.
* Preclude too frequent agent movement.
* IME candidate window move on native app.