Release 0.13.0 - Better panels, plots and new visual style
This commit is contained in:
parent
8abd232854
commit
d807451348
23 changed files with 451 additions and 434 deletions
24
CHANGELOG.md
24
CHANGELOG.md
|
@ -7,14 +7,21 @@ NOTE: [`eframe`](eframe/CHANGELOG.md), [`egui_web`](egui_web/CHANGELOG.md) and [
|
|||
|
||||
## Unreleased
|
||||
|
||||
|
||||
## 0.13.0 - 2021-06-24 - Better panels, plots and new visual style
|
||||
|
||||
### Added ⭐
|
||||
* [More plot items: Arrows, Polygons, Text, Images](https://github.com/emilk/egui/pull/471).
|
||||
* [Plot legend improvements](https://github.com/emilk/egui/pull/410).
|
||||
* [Line markers for plots](https://github.com/emilk/egui/pull/363).
|
||||
* Add right and bottom panels (`SidePanel::right` and `Panel::bottom`).
|
||||
* Add resizable panels.
|
||||
* Add an option to overwrite frame of a `Panel`.
|
||||
* Plot:
|
||||
* [More plot items: Arrows, Polygons, Text, Images](https://github.com/emilk/egui/pull/471).
|
||||
* [Plot legend improvements](https://github.com/emilk/egui/pull/410).
|
||||
* [Line markers for plots](https://github.com/emilk/egui/pull/363).
|
||||
* Panels:
|
||||
* Add right and bottom panels (`SidePanel::right` and `Panel::bottom`).
|
||||
* Panels can now be resized.
|
||||
* Add an option to overwrite frame of a `Panel`.
|
||||
* [Improve accessibility / screen reader](https://github.com/emilk/egui/pull/412).
|
||||
* Add `ScrollArea::show_rows` for efficient scrolling of huge UI:s.
|
||||
* Add `ScrollArea::enable_scrolling` to allow freezing scrolling when editing TextEdit widgets within it
|
||||
* Add `Ui::set_visible` as a way to hide widgets.
|
||||
* Add `Style::override_text_style` to easily change the text style of everything in a `Ui` (or globally).
|
||||
* You can now change `TextStyle` on checkboxes, radio buttons and `SelectableLabel`.
|
||||
|
@ -22,16 +29,17 @@ NOTE: [`eframe`](eframe/CHANGELOG.md), [`egui_web`](egui_web/CHANGELOG.md) and [
|
|||
* Add features `extra_asserts` and `extra_debug_asserts` to enable additional checks.
|
||||
* `TextEdit` now supports edits on a generic buffer using `TextBuffer`.
|
||||
* Add `Context::set_debug_on_hover` and `egui::trace!(ui)`
|
||||
* Add `ScrollArea::enable_scrolling` to allow freezing scrolling when editing TextEdit widgets within it
|
||||
|
||||
### Changed 🔧
|
||||
* Minimum Rust version is now 1.51 (used to be 1.52)
|
||||
* [Tweaked the default visuals style](https://github.com/emilk/egui/pull/450).
|
||||
* Plot: Changed `Curve` to `Line`.
|
||||
* Plot: Renamed `Curve` to `Line`.
|
||||
* `TopPanel::top` is now `TopBottomPanel::top`.
|
||||
* `SidePanel::left` no longet takes the default width by argument, but by a builder call.
|
||||
* `SidePanel::left` is resizable by default.
|
||||
|
||||
### Fixed 🐛
|
||||
* Fix uneven lettering on non-integral device scales ("extortion lettering").
|
||||
* Fix invisible scroll bar when native window is too narrow for egui.
|
||||
|
||||
|
||||
|
|
18
Cargo.lock
generated
18
Cargo.lock
generated
|
@ -766,7 +766,7 @@ checksum = "ee2626afccd7561a06cf1367e2950c4718ea04565e20fb5029b6c7d8ad09abcf"
|
|||
|
||||
[[package]]
|
||||
name = "eframe"
|
||||
version = "0.12.0"
|
||||
version = "0.13.0"
|
||||
dependencies = [
|
||||
"egui",
|
||||
"egui_glium",
|
||||
|
@ -776,7 +776,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "egui"
|
||||
version = "0.12.0"
|
||||
version = "0.13.0"
|
||||
dependencies = [
|
||||
"epaint",
|
||||
"ron",
|
||||
|
@ -786,7 +786,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "egui_demo_app"
|
||||
version = "0.12.0"
|
||||
version = "0.13.0"
|
||||
dependencies = [
|
||||
"eframe",
|
||||
"egui_demo_lib",
|
||||
|
@ -794,7 +794,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "egui_demo_lib"
|
||||
version = "0.12.0"
|
||||
version = "0.13.0"
|
||||
dependencies = [
|
||||
"criterion",
|
||||
"egui",
|
||||
|
@ -807,7 +807,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "egui_glium"
|
||||
version = "0.12.0"
|
||||
version = "0.13.0"
|
||||
dependencies = [
|
||||
"chrono",
|
||||
"copypasta",
|
||||
|
@ -824,7 +824,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "egui_web"
|
||||
version = "0.12.0"
|
||||
version = "0.13.0"
|
||||
dependencies = [
|
||||
"egui",
|
||||
"epi",
|
||||
|
@ -845,7 +845,7 @@ checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
|
|||
|
||||
[[package]]
|
||||
name = "emath"
|
||||
version = "0.12.0"
|
||||
version = "0.13.0"
|
||||
dependencies = [
|
||||
"mint",
|
||||
"serde",
|
||||
|
@ -866,7 +866,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "epaint"
|
||||
version = "0.12.0"
|
||||
version = "0.13.0"
|
||||
dependencies = [
|
||||
"ab_glyph",
|
||||
"ahash",
|
||||
|
@ -880,7 +880,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "epi"
|
||||
version = "0.12.0"
|
||||
version = "0.13.0"
|
||||
dependencies = [
|
||||
"egui",
|
||||
"ron",
|
||||
|
|
|
@ -64,7 +64,7 @@ if ui.button("Click each year").clicked() {
|
|||
ui.label(format!("Hello '{}', age {}", name, age));
|
||||
```
|
||||
|
||||
<img src="media/demo-2021-01-17.gif">
|
||||
<img src="media/demo.gif">
|
||||
|
||||
## Goals
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
Binary file not shown.
|
@ -3,6 +3,10 @@ All notable changes to the `eframe` crate.
|
|||
|
||||
|
||||
## Unreleased
|
||||
|
||||
|
||||
## 0.13.0 - 2021-06-24
|
||||
|
||||
* `App::setup` now takes a `Frame` and `Storage` by argument.
|
||||
* `App::load` has been removed. Implement `App::setup` instead.
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "eframe"
|
||||
version = "0.12.0"
|
||||
version = "0.13.0"
|
||||
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
||||
description = "egui framework - write GUI apps that compiles to web and/or natively"
|
||||
edition = "2018"
|
||||
|
@ -23,16 +23,16 @@ all-features = true
|
|||
[lib]
|
||||
|
||||
[dependencies]
|
||||
egui = { version = "0.12.0", path = "../egui", default-features = false }
|
||||
epi = { version = "0.12.0", path = "../epi" }
|
||||
egui = { version = "0.13.0", path = "../egui", default-features = false }
|
||||
epi = { version = "0.13.0", path = "../epi" }
|
||||
|
||||
# For compiling natively:
|
||||
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
|
||||
egui_glium = { version = "0.12.0", path = "../egui_glium", default-features = false }
|
||||
egui_glium = { version = "0.13.0", path = "../egui_glium", default-features = false }
|
||||
|
||||
# For compiling to web:
|
||||
[target.'cfg(target_arch = "wasm32")'.dependencies]
|
||||
egui_web = { version = "0.12.0", path = "../egui_web", default-features = false }
|
||||
egui_web = { version = "0.13.0", path = "../egui_web", default-features = false }
|
||||
|
||||
[features]
|
||||
default = ["default_fonts"]
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "egui"
|
||||
version = "0.12.0"
|
||||
version = "0.13.0"
|
||||
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
||||
description = "Simple, portable immediate mode GUI library for Rust"
|
||||
edition = "2018"
|
||||
|
@ -20,7 +20,7 @@ include = [
|
|||
[lib]
|
||||
|
||||
[dependencies]
|
||||
epaint = { version = "0.12.0", path = "../epaint", default-features = false }
|
||||
epaint = { version = "0.13.0", path = "../epaint", default-features = false }
|
||||
serde = { version = "1", features = ["derive", "rc"], optional = true }
|
||||
ron = { version = "0.6.4", optional = true }
|
||||
|
||||
|
|
|
@ -141,8 +141,6 @@ impl CtxRef {
|
|||
show_error(prev_rect.min, format!("First use of ID {}", id_str));
|
||||
show_error(new_rect.min, format!("Second use of ID {}", id_str));
|
||||
}
|
||||
|
||||
// TODO: a tooltip explaining this.
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -320,12 +320,13 @@ impl RawInput {
|
|||
#[derive(Clone, Copy, Debug, Eq, PartialEq, PartialOrd, Ord)]
|
||||
pub struct TouchDeviceId(pub u64);
|
||||
|
||||
/// Unique identifiction of a touch occurence (finger or pen or ...).
|
||||
/// Unique identification of a touch occurrence (finger or pen or ...).
|
||||
/// A Touch ID is valid until the finger is lifted.
|
||||
/// A new ID is used for the next touch.
|
||||
#[derive(Clone, Copy, Debug, Eq, PartialEq, PartialOrd, Ord)]
|
||||
pub struct TouchId(pub u64);
|
||||
|
||||
/// In what phase a touch event is in.
|
||||
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
|
||||
pub enum TouchPhase {
|
||||
/// User just placed a touch point on the touch surface
|
||||
|
|
|
@ -102,7 +102,8 @@
|
|||
//!
|
||||
//! # Integrating with egui
|
||||
//!
|
||||
//! Most likely you are using an existing `egui` backend/integration such as [`eframe`](https://docs.rs/eframe) or [`bevy_egui`](https://docs.rs/bevy_egui),
|
||||
//! Most likely you are using an existing `egui` backend/integration such as [`eframe`](https://docs.rs/eframe), [`bevy_egui`](https://docs.rs/bevy_egui),
|
||||
//! or [`egui-miniquad`](https://github.com/not-fl3/egui-miniquad),
|
||||
//! but if you want to integrate `egui` into a new game engine, this is the section for you.
|
||||
//!
|
||||
//! To write your own integration for egui you need to do this:
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "egui_demo_app"
|
||||
version = "0.12.0"
|
||||
version = "0.13.0"
|
||||
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
||||
license = "MIT OR Apache-2.0"
|
||||
edition = "2018"
|
||||
|
@ -10,8 +10,8 @@ publish = false
|
|||
crate-type = ["cdylib", "rlib"]
|
||||
|
||||
[dependencies]
|
||||
eframe = { version = "0.12.0", path = "../eframe", features = ["time"] }
|
||||
egui_demo_lib = { version = "0.12.0", path = "../egui_demo_lib" }
|
||||
eframe = { version = "0.13.0", path = "../eframe", features = ["time"] }
|
||||
egui_demo_lib = { version = "0.13.0", path = "../egui_demo_lib" }
|
||||
|
||||
[features]
|
||||
default = ["persistence"]
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "egui_demo_lib"
|
||||
version = "0.12.0"
|
||||
version = "0.13.0"
|
||||
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
||||
description = "Example library for egui"
|
||||
edition = "2018"
|
||||
|
@ -23,8 +23,8 @@ all-features = true
|
|||
[lib]
|
||||
|
||||
[dependencies]
|
||||
egui = { version = "0.12.0", path = "../egui", default-features = false }
|
||||
epi = { version = "0.12.0", path = "../epi" }
|
||||
egui = { version = "0.13.0", path = "../egui", default-features = false }
|
||||
epi = { version = "0.13.0", path = "../epi" }
|
||||
unicode_names2 = { version = "0.4.0", default-features = false }
|
||||
|
||||
# feature "http":
|
||||
|
|
|
@ -5,8 +5,12 @@ All notable changes to the `egui_glium` integration will be noted in this file.
|
|||
|
||||
## Unreleased
|
||||
|
||||
|
||||
## 0.13.0 - 2021-06-24
|
||||
|
||||
* Add `EguiGlium::is_quit_event` to replace `control_flow` arguemnt to `EguiGlium::on_event`.
|
||||
* [Fix modifier key for zoom with mouse wheel on Mac](https://github.com/emilk/egui/issues/401)
|
||||
* [Fix stuck modifier keys](https://github.com/emilk/egui/pull/479)
|
||||
|
||||
## 0.12.0 - 2021-05-10
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "egui_glium"
|
||||
version = "0.12.0"
|
||||
version = "0.13.0"
|
||||
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
||||
description = "Bindings for using egui natively using the glium library"
|
||||
edition = "2018"
|
||||
|
@ -23,8 +23,8 @@ all-features = true
|
|||
|
||||
[dependencies]
|
||||
copypasta = "0.7"
|
||||
egui = { version = "0.12.0", path = "../egui", default-features = false, features = ["single_threaded"] }
|
||||
epi = { version = "0.12.0", path = "../epi" }
|
||||
egui = { version = "0.13.0", path = "../egui", default-features = false, features = ["single_threaded"] }
|
||||
epi = { version = "0.13.0", path = "../epi" }
|
||||
glium = "0.30"
|
||||
webbrowser = "0.5"
|
||||
|
||||
|
|
|
@ -5,6 +5,9 @@ All notable changes to the `egui_web` integration will be noted in this file.
|
|||
|
||||
## Unreleased
|
||||
|
||||
|
||||
## 0.13.0 - 2021-06-24
|
||||
|
||||
### Changed 🔧
|
||||
* Default to light visuals unless the system reports a preference for dark mode.
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "egui_web"
|
||||
version = "0.12.0"
|
||||
version = "0.13.0"
|
||||
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
||||
description = "Bindings for compiling egui code to WASM for a web page"
|
||||
license = "MIT OR Apache-2.0"
|
||||
|
@ -25,8 +25,8 @@ all-features = true
|
|||
crate-type = ["cdylib", "rlib"]
|
||||
|
||||
[dependencies]
|
||||
egui = { version = "0.12.0", path = "../egui", default-features = false, features = ["single_threaded"] }
|
||||
epi = { version = "0.12.0", path = "../epi" }
|
||||
egui = { version = "0.13.0", path = "../egui", default-features = false, features = ["single_threaded"] }
|
||||
epi = { version = "0.13.0", path = "../epi" }
|
||||
js-sys = "0.3"
|
||||
ron = { version = "0.6", optional = true }
|
||||
serde = { version = "1", optional = true }
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "emath"
|
||||
version = "0.12.0"
|
||||
version = "0.13.0"
|
||||
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
||||
description = "Minimal 2D math library for GUI work"
|
||||
edition = "2018"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "epaint"
|
||||
version = "0.12.0"
|
||||
version = "0.13.0"
|
||||
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
||||
description = "Minimal 2D graphics library for GUI work"
|
||||
edition = "2018"
|
||||
|
@ -22,7 +22,7 @@ include = [
|
|||
[lib]
|
||||
|
||||
[dependencies]
|
||||
emath = { version = "0.12.0", path = "../emath" }
|
||||
emath = { version = "0.13.0", path = "../emath" }
|
||||
|
||||
ab_glyph = "0.2.11"
|
||||
ahash = { version = "0.7", features = ["std"], default-features = false }
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "epi"
|
||||
version = "0.12.0"
|
||||
version = "0.13.0"
|
||||
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
||||
description = "Backend-agnostic interface for writing apps using egui"
|
||||
edition = "2018"
|
||||
|
@ -23,7 +23,7 @@ all-features = true
|
|||
[lib]
|
||||
|
||||
[dependencies]
|
||||
egui = { version = "0.12.0", path = "../egui", default-features = false, features = ["single_threaded"] }
|
||||
egui = { version = "0.13.0", path = "../egui", default-features = false, features = ["single_threaded"] }
|
||||
ron = { version = "0.6", optional = true }
|
||||
serde = { version = "1", optional = true }
|
||||
|
||||
|
|
BIN
media/demo.gif
Normal file
BIN
media/demo.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 149 KiB |
Binary file not shown.
Before Width: | Height: | Size: 136 KiB After Width: | Height: | Size: 135 KiB |
Binary file not shown.
Before Width: | Height: | Size: 1.7 MiB After Width: | Height: | Size: 1.3 MiB |
Loading…
Reference in a new issue