1
0
mirror of https://github.com/emilk/egui.git synced 2026-06-28 07:23:13 -04:00
Commit Graph

2754 Commits

Author SHA1 Message Date
Konkitoman
17cd31636f Remove unused Arc<RwLock<T>> 2023-08-15 02:21:23 +03:00
Konkitoman
191ee82c3e Merge branch 'master' of https://github.com/emilk/egui into multiples_viewports 2023-08-15 02:17:12 +03:00
Emil Ernerfeldt
481f44828c Improve "Reset everything" button in demo (#3255)
Closes https://github.com/emilk/egui/issues/3254
2023-08-14 18:57:39 +02:00
dmackdev
8ee506ec37 Added remove method for CollapsingState. (#3252) 2023-08-14 18:57:07 +02:00
Kamen Yovchevski
e5428a3084 Add Window::drag-to-scroll (#3118) 2023-08-14 18:44:29 +02:00
Kamen Yovchevski
043183a3a4 Add TableBuilder::drag_to_scroll (#3100)
* Add TableBuilder::drag_to_scroll

* Add reference to ScrollArea::drag_to_scroll
2023-08-14 18:21:42 +02:00
JohannesProgrammiert
dbe55ba46a Draw axis labels and ticks outside of plotting window (#2284)
* Always draw axis labels at plot borders

* Revert "Always draw axis labels at plot borders"

This reverts commit 9235e6603366d3b8a8189e2a5fc28c9780b7f54f.

* Add axis labels for plots

* First Draft of axis labels outside of plotting window

* plot: Tick placement of opposite axes and digit constraints

* plot: Axis label API

* plot: Update demo lib

* plot: resolve clippy warning

* Update changelog

* Remove default axis

* Fix clippy

* plot: Remove unused comments

* plot-axis: Rebase label opacity calculation on master

* plot: Resolve check.sh warnings

* plot-axis: Use 'into impl<WidgetText>' as axis label formatter

* plot-axis: Expose more conveniece functions to public API. Add axis labels to demo app

* plot-axes: Resolve ./scripts/check.sh warnings

* typo in comment

* Use `TAU` instead of the legacy `PI`

* Simpler generic syntax

* Use `Arc` to avoid some expensive clones

* Use `Margin` instead of a,b,c,d

* Add some vertical spacing

* De-duplicate color_from_contrast

* better naming

* Fix typos

* cnt -> num

* Axis are present by default, with empty names

* Add HPlacement and VPlacement

* Don't catch clicks and drags on axes

* Remove generics to minimize monomorphization code bloat

* Create helper function

* Remove changelog entry

* Simplify more

---------

Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
2023-08-14 17:51:17 +02:00
Konkitoman
08f207a0a8 Fix some warnings 2023-08-14 17:59:26 +03:00
Emil Ernerfeldt
a3ae81cadb Add option to truncate text at wrap width (#3244)
* Add option to clip text to wrap width

* Spelling

* Better naming, and report back wether the text was elided

* Improve docstrings

* Simplify

* Fix max_rows with multiple paragraphs

* Add note

* Typos

* fix doclink

* Add `Label::elide`

* Label: show full non-elided text on hover

* Add demo of `Label::elide`

* Call it `Label::truncate`

* Clarify limitations of `break_anywhere`

* Better docstrings
2023-08-14 11:22:04 +02:00
Konkitoman
eccf90701f add: Context::get_viewport_id_by_name, Context::get_viewport_parent_id_by_name, Context::input_for and Context::input_mut_for 2023-08-13 16:20:02 +03:00
Konkitoman
4bbdab1788 Now in screen_rect min is the viewport position and max is the viewport size 2023-08-12 20:36:41 +03:00
Frederic L
1023f937a6 Add option to always open hyperlink in a new browser tab (#3242)
* add option to always open hyperlink in a new browser tab

* Fix logic error
2023-08-12 14:05:49 +02:00
lucasmerlin
1036cb1f7d Change force to be Option<f32> instead of f32 (#3240) 2023-08-12 13:50:40 +02:00
Emil Ernerfeldt
6633ecce64 Fix wrong detection of OS (#3238)
We had a bunch of `cfg!(windows)` and `cfg!(macos)` which should
have been `cfg!(target_os = "windows")`.

I wonder what the effects of this PR will be fore Windows 😬
2023-08-12 13:50:31 +02:00
Konkitoman
622814d8ed Now show_tooltip_area_dyn and was_tooltip_open_last_frame was reverted to be like before! 2023-08-11 18:30:45 +03:00
Konkitoman
74e50044b5 Added maximize_button, mimimize_button and hittest on ViewportBuilder
!!! hittest is not working because of winit !!!
2023-08-11 18:19:57 +03:00
Aaron Hill
98087029e0 Update to wgpu 0.17.0 (#3170)
* Bump `wgpu` to 0.17.0
This required bumping wasm-bindgen to 0.2.87
* cargo deny exception for `foreign-types`
* sort deny.toml
* Add fragile-send-sync-non-atomic-wasm feature to wgpu
* cargo deny: ignore children of foreign-types

---------

Co-authored-by: Andreas Reich <r_andreas2@web.de>
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
2023-08-11 17:10:10 +02:00
Konkitoman
6201caf00b Now `was_tooltip_open_last_frame uses ViewportBuilder::empty 2023-08-11 17:43:17 +03:00
Konkitoman
d33075388c * Implement changes_between_builders
* Now process_viewport_commands was renamed to process_viewports_commands
* Added process_viewport_commands
* eframe glutin backend uses changes_between_builders
2023-08-11 17:39:14 +03:00
Emil Ernerfeldt
dd417cfc1a eframe: Better restore Window position on Mac when on secondary monitor (#3239) 2023-08-11 16:25:22 +02:00
Emil Ernerfeldt
f78db80840 Update to wasm-bindgen 0.2.87 (#3237)
* Update to wasm-bindgen 0.2.87

Required by the new `wgpu` version

* Catch unknown arguments to build_demo_web.sh
2023-08-11 15:34:16 +02:00
Emil Ernerfeldt
dd5285cccb Support multi-threaded Wasm (#3236)
Replace `atomic_refcell` with `parking_lot` on wasm32.

`parking_lot` has had problems running on wasm32 before
(https://github.com/emilk/egui/issues/1401)
but it works these days.
If we have problems again we can always switch to `std::sync::Mutex`.

Closes https://github.com/emilk/egui/issues/3102
2023-08-11 15:08:00 +02:00
Emil Ernerfeldt
08fb447fb5 Increase MSRV to 1.67 (#3234)
* Bump MSRV to 1.67

* clippy fixes

* cargo clippy: inline format args

* Add `clippy::uninlined_format_args` to cranky lints

* Fix clippy on wasm

* More clippy fixes
2023-08-11 13:54:02 +02:00
Emil Ernerfeldt
bdeae9e959 Fix crash in DragValue when only setting min_decimals (#3231) 2023-08-11 08:24:39 +02:00
Idan Arye
ea6bdfc1c9 Force ColorPickerFn to be Send + Sync (#3148) (#3233) 2023-08-11 08:23:29 +02:00
Konkitoman
88a7071e74 Moved create_winit_window_builder from crates/eframe/src/native/run.rs to crates/egui-winit/src/lib.rs 2023-08-10 18:53:43 +03:00
Konkitoman
0e7803bf61 Add all winit runtime window attributes as viewport commands in ViewportCommand 2023-08-10 18:47:48 +03:00
Emil Ernerfeldt
1e885abe08 Gracefully catch error saving state to disk (#3230) 2023-08-10 17:28:21 +02:00
Emil Ernerfeldt
7e035c6dd1 Allow users to opt-out of default winit features (#3228)
* Do not enable winit features by default

* Enable default winit features by default

* Add x11 feature
2023-08-10 17:09:01 +02:00
Konkitoman
9c6044aa7d Change ViewportBuilder how it's working 2023-08-10 16:53:31 +03:00
Emil Ernerfeldt
d568d9f5d0 Lint vertical spacing in the code (#3224)
* Lint vertical spacing in the code

* Add some vertical spacing for readability
2023-08-10 15:26:54 +02:00
Emil Ernerfeldt
83c18498e9 Refactor: turn ClippedShape from struct-enum to a normal struct (#3225) 2023-08-10 14:50:11 +02:00
Konkitoman
70a5772f8d Now tooltip popup will open in a native window if he can, this is for making letting more problem to show to fix them! 2023-08-10 14:21:57 +03:00
Emil Ernerfeldt
66cbb61ad5 Add PlotUi::response() to replace plot_clicked() etc (#3223)
Closes https://github.com/emilk/egui/pull/2571
2023-08-10 13:14:19 +02:00
Valentin
b15e17587a Document when Galleys get invalidated (#3024) 2023-08-10 13:11:56 +02:00
Emil Ernerfeldt
8cdffc4e2d Replace uses of RangeInclusive<f32> with emath::Rangef (#3221)
* Replace uses of `RangeInclusive<f32>` with `emath::Rangef`

* Fix doc-test
2023-08-10 13:07:00 +02:00
Valeriy V. Vorotyntsev
4c3b380889 Fix the "ever-growing height" problem of Strip and Table demos (#3122)
* Fix the "ever-growing height" problem of Strip and Table Demos

Problem
-------

The height of "Table Demo" or "Strip Demo" floating window grows
when the demo app is interacted with. If 'Continuous' mode is enabled
in 'Backend' settings, the window grows irrespectively of user interaction.

Observations
------------

I noticed that [`area_content_ui.min_rect().max.y`][1] is increasing
monotonically with speed 0.5 px/frame.

I also noticed that commenting out `ui.add(crate::egui_github_link_file!());`
[statement][2] in `table_demo.rs` makes the problem disappear.

The "Fix"
---------

I added 0.5 to the height of the row with GitHub link.
This solved the problem.

Closes #3029.

Warning
-------

I failed to find the root cause of the problem.
I don't understand why this change makes the problem disappear.

[1]: 9478e50d01/crates/egui/src/containers/window.rs (L403)
[2]: 9478e50d01/crates/egui_demo_lib/src/demo/table_demo.rs (L114)

* Document `Rect::size`

Other changes:

- `area.rs`: Use existing API.
- `table_demo.rs`: Remove unnecessary call.
2023-08-10 12:35:40 +02:00
hacknus
871041c4e7 Added an example to save plot to image (#2769)
* implement save_plot

* fix for check.sh

* clippy

* add save_plot to Cargo.lock

* adapted for PR #2676 (removes unsafe code)

* add some comments

* implemented the comments from emilk

* update comments in code

* rustfmt

* remove picked_path

* add more comments

* removed unused import

* use `inner.response.rect` as the plot position

* remove plot_location from MyApp members

* sort entries

* Update examples/save_plot/src/main.rs

Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>

* use env_logger instead of tracing subscriber

* use env_logger instead of tracing subscriber and combine if let

---------

Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
2023-08-10 12:35:11 +02:00
Roshan Mehta
01b1b2da76 rotation feature to plot images (#3121) 2023-08-10 09:50:25 +02:00
jacekpoz
f2a58244c8 fix the title not being used when app_id is not set (#3107)
Co-authored-by: jacekpoz <jacekpoz@cock.li>
2023-08-10 09:50:15 +02:00
mauliu
af6419343d fix depth texture init with multisampling (#3207)
Co-authored-by: user <email@NEO.com>
2023-08-09 20:59:36 +02:00
Konkitoman
48646ef521 Update viewports example, and added documentation for Window::default_embedded 2023-08-09 20:16:35 +03:00
Konkitoman
20b3e16f4b Add some documentation 2023-08-09 19:35:17 +03:00
Konkitoman
a88a5cdf83 Fix some warnings 2023-08-09 19:15:35 +03:00
Konkitoman
86ef11c521 Now viewport_id always will be in a ViewportId you cannot create a ViewportId you can only get the main one everywere or get the current viewport id with Context::get_viewport_id 2023-08-09 18:33:59 +03:00
Barugon
f9f9abf749 DragValue: update value on each key press by default (#2880)
* Use `Response::changed` to fix editing issues

* Update comment

* Make update while editing an option

* improve docstring

---------

Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
2023-08-09 17:13:58 +02:00
Emil Ernerfeldt
abe91b00a4 Improve generate_changelog.py 2023-08-09 17:13:22 +02:00
Emil Ernerfeldt
51da2ac490 Improve documentation of Window/Area::resizable 2023-08-09 17:13:10 +02:00
Emil Ernerfeldt
92593b70fa Changelogs: document that they are updated upon release (not by users) 2023-08-09 17:12:47 +02:00
Steven Weiss
b2b6558c78 Tiny PR: Document available_width() and available_height() (#3130)
* Update ui.rs docs to clarify available_size and co

Added docs to the available_width() and available_height() methods. 

Added a quick note about the wrapping versions of the methods as well.

* fix a couple of typos, and use code-style for doc-links

* fix doclinks

---------

Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
2023-08-09 17:06:33 +02:00