[egui] rename "with_serde" feature flag to just "serde"
This commit is contained in:
parent
b58142ba15
commit
b06c9e94fb
26 changed files with 86 additions and 89 deletions
|
@ -7,7 +7,7 @@ edition = "2018"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
#egui = { git = "https://github.com/emilk/emigui" }
|
#egui = { git = "https://github.com/emilk/emigui" }
|
||||||
egui = { path = "../egui", features = ["with_serde"] }
|
egui = { path = "../egui", features = ["serde"] }
|
||||||
#egui_glium = { git = "https://github.com/emilk/emigui" }
|
#egui_glium = { git = "https://github.com/emilk/emigui" }
|
||||||
egui_glium = { path = "../egui_glium" }
|
egui_glium = { path = "../egui_glium" }
|
||||||
serde = { version = "1", features = ["derive"] }
|
serde = { version = "1", features = ["derive"] }
|
||||||
|
|
|
@ -9,8 +9,8 @@ edition = "2018"
|
||||||
crate-type = ["cdylib", "rlib"]
|
crate-type = ["cdylib", "rlib"]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
# egui = { git = "https://github.com/emilk/emigui", features = ["with_serde"] }
|
# egui = { git = "https://github.com/emilk/emigui", features = ["serde"] }
|
||||||
egui = { path = "../egui", features = ["with_serde"] }
|
egui = { path = "../egui", features = ["serde"] }
|
||||||
# egui_web = { git = "https://github.com/emilk/emigui" }
|
# egui_web = { git = "https://github.com/emilk/emigui" }
|
||||||
egui_web = { path = "../egui_web" }
|
egui_web = { path = "../egui_web" }
|
||||||
js-sys = "0.3"
|
js-sys = "0.3"
|
||||||
|
|
|
@ -212,12 +212,12 @@ function makeMutClosure(arg0, arg1, dtor, f) {
|
||||||
|
|
||||||
return real;
|
return real;
|
||||||
}
|
}
|
||||||
function __wbg_adapter_24(arg0, arg1) {
|
function __wbg_adapter_24(arg0, arg1, arg2) {
|
||||||
wasm._dyn_core__ops__function__FnMut_____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h74e3475b1fcd9cd1(arg0, arg1);
|
wasm._dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h8ac16b787f5fa676(arg0, arg1, addHeapObject(arg2));
|
||||||
}
|
}
|
||||||
|
|
||||||
function __wbg_adapter_27(arg0, arg1, arg2) {
|
function __wbg_adapter_27(arg0, arg1) {
|
||||||
wasm._dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h8ac16b787f5fa676(arg0, arg1, addHeapObject(arg2));
|
wasm._dyn_core__ops__function__FnMut_____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__hf394391f07d20fc8(arg0, arg1);
|
||||||
}
|
}
|
||||||
|
|
||||||
function __wbg_adapter_30(arg0, arg1, arg2) {
|
function __wbg_adapter_30(arg0, arg1, arg2) {
|
||||||
|
@ -225,7 +225,7 @@ function __wbg_adapter_30(arg0, arg1, arg2) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function __wbg_adapter_33(arg0, arg1) {
|
function __wbg_adapter_33(arg0, arg1) {
|
||||||
wasm._dyn_core__ops__function__FnMut_____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__hf394391f07d20fc8(arg0, arg1);
|
wasm._dyn_core__ops__function__FnMut_____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h74e3475b1fcd9cd1(arg0, arg1);
|
||||||
}
|
}
|
||||||
|
|
||||||
function __wbg_adapter_36(arg0, arg1, arg2) {
|
function __wbg_adapter_36(arg0, arg1, arg2) {
|
||||||
|
@ -727,28 +727,28 @@ async function init(input) {
|
||||||
var ret = wasm.memory;
|
var ret = wasm.memory;
|
||||||
return addHeapObject(ret);
|
return addHeapObject(ret);
|
||||||
};
|
};
|
||||||
imports.wbg.__wbindgen_closure_wrapper366 = function(arg0, arg1, arg2) {
|
imports.wbg.__wbindgen_closure_wrapper363 = function(arg0, arg1, arg2) {
|
||||||
var ret = makeMutClosure(arg0, arg1, 76, __wbg_adapter_24);
|
var ret = makeMutClosure(arg0, arg1, 76, __wbg_adapter_30);
|
||||||
return addHeapObject(ret);
|
return addHeapObject(ret);
|
||||||
};
|
};
|
||||||
imports.wbg.__wbindgen_closure_wrapper364 = function(arg0, arg1, arg2) {
|
imports.wbg.__wbindgen_closure_wrapper367 = function(arg0, arg1, arg2) {
|
||||||
var ret = makeMutClosure(arg0, arg1, 76, __wbg_adapter_36);
|
|
||||||
return addHeapObject(ret);
|
|
||||||
};
|
|
||||||
imports.wbg.__wbindgen_closure_wrapper370 = function(arg0, arg1, arg2) {
|
|
||||||
var ret = makeMutClosure(arg0, arg1, 76, __wbg_adapter_27);
|
|
||||||
return addHeapObject(ret);
|
|
||||||
};
|
|
||||||
imports.wbg.__wbindgen_closure_wrapper361 = function(arg0, arg1, arg2) {
|
|
||||||
var ret = makeMutClosure(arg0, arg1, 76, __wbg_adapter_33);
|
var ret = makeMutClosure(arg0, arg1, 76, __wbg_adapter_33);
|
||||||
return addHeapObject(ret);
|
return addHeapObject(ret);
|
||||||
};
|
};
|
||||||
imports.wbg.__wbindgen_closure_wrapper362 = function(arg0, arg1, arg2) {
|
imports.wbg.__wbindgen_closure_wrapper362 = function(arg0, arg1, arg2) {
|
||||||
var ret = makeMutClosure(arg0, arg1, 76, __wbg_adapter_39);
|
var ret = makeMutClosure(arg0, arg1, 76, __wbg_adapter_27);
|
||||||
return addHeapObject(ret);
|
return addHeapObject(ret);
|
||||||
};
|
};
|
||||||
imports.wbg.__wbindgen_closure_wrapper368 = function(arg0, arg1, arg2) {
|
imports.wbg.__wbindgen_closure_wrapper365 = function(arg0, arg1, arg2) {
|
||||||
var ret = makeMutClosure(arg0, arg1, 76, __wbg_adapter_30);
|
var ret = makeMutClosure(arg0, arg1, 76, __wbg_adapter_24);
|
||||||
|
return addHeapObject(ret);
|
||||||
|
};
|
||||||
|
imports.wbg.__wbindgen_closure_wrapper369 = function(arg0, arg1, arg2) {
|
||||||
|
var ret = makeMutClosure(arg0, arg1, 76, __wbg_adapter_36);
|
||||||
|
return addHeapObject(ret);
|
||||||
|
};
|
||||||
|
imports.wbg.__wbindgen_closure_wrapper371 = function(arg0, arg1, arg2) {
|
||||||
|
var ret = makeMutClosure(arg0, arg1, 76, __wbg_adapter_39);
|
||||||
return addHeapObject(ret);
|
return addHeapObject(ret);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Binary file not shown.
|
@ -21,9 +21,6 @@ rusttype = "0.9"
|
||||||
serde = { version = "1", features = ["derive"], optional = true }
|
serde = { version = "1", features = ["derive"], optional = true }
|
||||||
serde_json = { version = "1", optional = true }
|
serde_json = { version = "1", optional = true }
|
||||||
|
|
||||||
[features]
|
|
||||||
with_serde = ["serde", "serde_json"]
|
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
criterion = { version = "0.3", default-features = false }
|
criterion = { version = "0.3", default-features = false }
|
||||||
|
|
||||||
|
|
|
@ -63,14 +63,14 @@ pub trait Storage {
|
||||||
fn set_string(&mut self, key: &str, value: String);
|
fn set_string(&mut self, key: &str, value: String);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "with_serde")]
|
#[cfg(feature = "serde_json")]
|
||||||
pub fn get_value<T: serde::de::DeserializeOwned>(storage: &dyn Storage, key: &str) -> Option<T> {
|
pub fn get_value<T: serde::de::DeserializeOwned>(storage: &dyn Storage, key: &str) -> Option<T> {
|
||||||
storage
|
storage
|
||||||
.get_string(key)
|
.get_string(key)
|
||||||
.and_then(|value| serde_json::from_str(value).ok())
|
.and_then(|value| serde_json::from_str(value).ok())
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "with_serde")]
|
#[cfg(feature = "serde_json")]
|
||||||
pub fn set_value<T: serde::Serialize>(storage: &mut dyn Storage, key: &str, value: &T) {
|
pub fn set_value<T: serde::Serialize>(storage: &mut dyn Storage, key: &str, value: &T) {
|
||||||
storage.set_string(key, serde_json::to_string(value).unwrap());
|
storage.set_string(key, serde_json::to_string(value).unwrap());
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,7 @@ use crate::*;
|
||||||
|
|
||||||
/// State that is persisted between frames
|
/// State that is persisted between frames
|
||||||
#[derive(Clone, Copy, Debug)]
|
#[derive(Clone, Copy, Debug)]
|
||||||
#[cfg_attr(feature = "with_serde", derive(serde::Deserialize, serde::Serialize))]
|
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
||||||
pub(crate) struct State {
|
pub(crate) struct State {
|
||||||
/// Last known pos
|
/// Last known pos
|
||||||
pub pos: Pos2,
|
pub pos: Pos2,
|
||||||
|
@ -22,7 +22,7 @@ pub(crate) struct State {
|
||||||
|
|
||||||
/// You can throw a moveable Area. It's fun.
|
/// You can throw a moveable Area. It's fun.
|
||||||
/// TODO: separate out moveable to container?
|
/// TODO: separate out moveable to container?
|
||||||
#[cfg_attr(feature = "with_serde", serde(skip))]
|
#[cfg_attr(feature = "serde", serde(skip))]
|
||||||
pub vel: Vec2,
|
pub vel: Vec2,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,13 +8,13 @@ use crate::{
|
||||||
};
|
};
|
||||||
|
|
||||||
#[derive(Clone, Copy, Debug)]
|
#[derive(Clone, Copy, Debug)]
|
||||||
#[cfg_attr(feature = "with_serde", derive(serde::Deserialize, serde::Serialize))]
|
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
||||||
#[cfg_attr(feature = "with_serde", serde(default))]
|
#[cfg_attr(feature = "serde", serde(default))]
|
||||||
pub(crate) struct State {
|
pub(crate) struct State {
|
||||||
open: bool,
|
open: bool,
|
||||||
|
|
||||||
// Times are relative, and we don't want to continue animations anyway, hence `serde(skip)`
|
// Times are relative, and we don't want to continue animations anyway, hence `serde(skip)`
|
||||||
#[cfg_attr(feature = "with_serde", serde(skip))]
|
#[cfg_attr(feature = "serde", serde(skip))]
|
||||||
toggle_time: f64,
|
toggle_time: f64,
|
||||||
|
|
||||||
/// Height of the region when open. Used for animations
|
/// Height of the region when open. Used for animations
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
use crate::*;
|
use crate::*;
|
||||||
|
|
||||||
#[derive(Clone, Copy, Debug)]
|
#[derive(Clone, Copy, Debug)]
|
||||||
#[cfg_attr(feature = "with_serde", derive(serde::Deserialize, serde::Serialize))]
|
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
||||||
pub(crate) struct State {
|
pub(crate) struct State {
|
||||||
/// This is the size that the user has picked by dragging the resize handles.
|
/// This is the size that the user has picked by dragging the resize handles.
|
||||||
/// This may be smaller and/or larger than the actual size.
|
/// This may be smaller and/or larger than the actual size.
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
use crate::*;
|
use crate::*;
|
||||||
|
|
||||||
#[derive(Clone, Copy, Debug)]
|
#[derive(Clone, Copy, Debug)]
|
||||||
#[cfg_attr(feature = "with_serde", derive(serde::Deserialize, serde::Serialize))]
|
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
||||||
#[cfg_attr(feature = "with_serde", serde(default))]
|
#[cfg_attr(feature = "serde", serde(default))]
|
||||||
pub(crate) struct State {
|
pub(crate) struct State {
|
||||||
/// Positive offset means scrolling down/right
|
/// Positive offset means scrolling down/right
|
||||||
offset: Vec2,
|
offset: Vec2,
|
||||||
|
@ -11,7 +11,7 @@ pub(crate) struct State {
|
||||||
|
|
||||||
// Times are relative, and we don't want to continue animations anyway, hence `serde(skip)`
|
// Times are relative, and we don't want to continue animations anyway, hence `serde(skip)`
|
||||||
/// Used to animate the showing of the scroll bar
|
/// Used to animate the showing of the scroll bar
|
||||||
#[cfg_attr(feature = "with_serde", serde(skip))]
|
#[cfg_attr(feature = "serde", serde(skip))]
|
||||||
toggle_time: f64,
|
toggle_time: f64,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,8 +5,8 @@ use crate::{app, color::*, containers::*, demos::FractalClock, paint::*, widgets
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
#[derive(Default)]
|
#[derive(Default)]
|
||||||
#[cfg_attr(feature = "with_serde", derive(serde::Deserialize, serde::Serialize))]
|
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
||||||
#[cfg_attr(feature = "with_serde", serde(default))]
|
#[cfg_attr(feature = "serde", serde(default))]
|
||||||
pub struct DemoApp {
|
pub struct DemoApp {
|
||||||
previous_web_location_hash: String,
|
previous_web_location_hash: String,
|
||||||
open_windows: OpenWindows,
|
open_windows: OpenWindows,
|
||||||
|
@ -144,7 +144,7 @@ impl app::App for DemoApp {
|
||||||
self.ui(ui, web_location_hash);
|
self.ui(ui, web_location_hash);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "with_serde")]
|
#[cfg(feature = "serde_json")]
|
||||||
fn on_exit(&mut self, storage: &mut dyn app::Storage) {
|
fn on_exit(&mut self, storage: &mut dyn app::Storage) {
|
||||||
app::set_value(storage, app::APP_KEY, self);
|
app::set_value(storage, app::APP_KEY, self);
|
||||||
}
|
}
|
||||||
|
@ -152,7 +152,7 @@ impl app::App for DemoApp {
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
#[cfg_attr(feature = "with_serde", derive(serde::Deserialize, serde::Serialize))]
|
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
||||||
struct OpenWindows {
|
struct OpenWindows {
|
||||||
demo: bool,
|
demo: bool,
|
||||||
fractal_clock: bool,
|
fractal_clock: bool,
|
||||||
|
@ -228,7 +228,7 @@ fn show_menu_bar(ui: &mut Ui, windows: &mut OpenWindows) {
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
/// Showcase some ui code
|
/// Showcase some ui code
|
||||||
#[cfg_attr(feature = "with_serde", derive(serde::Deserialize, serde::Serialize))]
|
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
||||||
pub struct DemoWindow {
|
pub struct DemoWindow {
|
||||||
num_columns: usize,
|
num_columns: usize,
|
||||||
|
|
||||||
|
@ -343,8 +343,8 @@ impl DemoWindow {
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
#[cfg_attr(feature = "with_serde", derive(serde::Deserialize, serde::Serialize))]
|
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
||||||
#[cfg_attr(feature = "with_serde", serde(default))]
|
#[cfg_attr(feature = "serde", serde(default))]
|
||||||
struct Widgets {
|
struct Widgets {
|
||||||
button_enabled: bool,
|
button_enabled: bool,
|
||||||
count: usize,
|
count: usize,
|
||||||
|
@ -425,8 +425,8 @@ impl Widgets {
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
#[cfg_attr(feature = "with_serde", derive(serde::Deserialize, serde::Serialize))]
|
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
||||||
#[cfg_attr(feature = "with_serde", serde(default))]
|
#[cfg_attr(feature = "serde", serde(default))]
|
||||||
struct BoxPainting {
|
struct BoxPainting {
|
||||||
size: Vec2,
|
size: Vec2,
|
||||||
corner_radius: f32,
|
corner_radius: f32,
|
||||||
|
@ -476,8 +476,8 @@ impl BoxPainting {
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
#[derive(Default)]
|
#[derive(Default)]
|
||||||
#[cfg_attr(feature = "with_serde", derive(serde::Deserialize, serde::Serialize))]
|
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
||||||
#[cfg_attr(feature = "with_serde", serde(default))]
|
#[cfg_attr(feature = "serde", serde(default))]
|
||||||
struct Painting {
|
struct Painting {
|
||||||
lines: Vec<Vec<Vec2>>,
|
lines: Vec<Vec<Vec2>>,
|
||||||
}
|
}
|
||||||
|
@ -536,8 +536,8 @@ impl Painting {
|
||||||
|
|
||||||
use crate::layout::*;
|
use crate::layout::*;
|
||||||
|
|
||||||
#[cfg_attr(feature = "with_serde", derive(serde::Deserialize, serde::Serialize))]
|
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
||||||
#[cfg_attr(feature = "with_serde", serde(default))]
|
#[cfg_attr(feature = "serde", serde(default))]
|
||||||
struct LayoutDemo {
|
struct LayoutDemo {
|
||||||
dir: Direction,
|
dir: Direction,
|
||||||
align: Option<Align>, // None == jusitifed
|
align: Option<Align>, // None == jusitifed
|
||||||
|
@ -623,7 +623,7 @@ enum Action {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Default)]
|
#[derive(Clone, Default)]
|
||||||
#[cfg_attr(feature = "with_serde", derive(serde::Deserialize, serde::Serialize))]
|
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
||||||
struct Tree(Vec<Tree>);
|
struct Tree(Vec<Tree>);
|
||||||
|
|
||||||
impl Tree {
|
impl Tree {
|
||||||
|
|
|
@ -2,8 +2,8 @@ use std::sync::Arc;
|
||||||
|
|
||||||
use crate::{containers::*, paint::PaintCmd, widgets::*, *};
|
use crate::{containers::*, paint::PaintCmd, widgets::*, *};
|
||||||
|
|
||||||
#[cfg_attr(feature = "with_serde", derive(serde::Deserialize, serde::Serialize))]
|
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
||||||
#[cfg_attr(feature = "with_serde", serde(default))]
|
#[cfg_attr(feature = "serde", serde(default))]
|
||||||
pub struct FractalClock {
|
pub struct FractalClock {
|
||||||
paused: bool,
|
paused: bool,
|
||||||
time: f64,
|
time: f64,
|
||||||
|
|
|
@ -28,7 +28,7 @@ use std::hash::Hash;
|
||||||
/// Then there are widgets that need no identifiers at all, like labels,
|
/// Then there are widgets that need no identifiers at all, like labels,
|
||||||
/// because they have no state nor are interacted with.
|
/// because they have no state nor are interacted with.
|
||||||
#[derive(Clone, Copy, Debug, Hash, Eq, PartialEq)]
|
#[derive(Clone, Copy, Debug, Hash, Eq, PartialEq)]
|
||||||
#[cfg_attr(feature = "with_serde", derive(serde::Deserialize, serde::Serialize))]
|
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
||||||
pub struct Id(u64);
|
pub struct Id(u64);
|
||||||
|
|
||||||
impl Id {
|
impl Id {
|
||||||
|
|
|
@ -4,7 +4,7 @@ use crate::{math::Rect, paint::PaintCmd, Id};
|
||||||
|
|
||||||
/// Different layer categories
|
/// Different layer categories
|
||||||
#[derive(Clone, Copy, Debug, Hash, Eq, PartialEq, Ord, PartialOrd)]
|
#[derive(Clone, Copy, Debug, Hash, Eq, PartialEq, Ord, PartialOrd)]
|
||||||
#[cfg_attr(feature = "with_serde", derive(serde::Deserialize, serde::Serialize))]
|
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
||||||
pub enum Order {
|
pub enum Order {
|
||||||
/// Painted behind all floating windows
|
/// Painted behind all floating windows
|
||||||
Background,
|
Background,
|
||||||
|
@ -19,7 +19,7 @@ pub enum Order {
|
||||||
/// An identifier for a paint layer.
|
/// An identifier for a paint layer.
|
||||||
/// Also acts as an identifier for `Area`:s.
|
/// Also acts as an identifier for `Area`:s.
|
||||||
#[derive(Clone, Copy, Debug, Hash, Eq, PartialEq)]
|
#[derive(Clone, Copy, Debug, Hash, Eq, PartialEq)]
|
||||||
#[cfg_attr(feature = "with_serde", derive(serde::Deserialize, serde::Serialize))]
|
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
||||||
pub struct Layer {
|
pub struct Layer {
|
||||||
pub order: Order,
|
pub order: Order,
|
||||||
pub id: Id,
|
pub id: Id,
|
||||||
|
|
|
@ -4,8 +4,8 @@ use crate::{math::*, style::Style};
|
||||||
|
|
||||||
/// `Layout` direction (horizontal or vertical).
|
/// `Layout` direction (horizontal or vertical).
|
||||||
#[derive(Clone, Copy, Debug, PartialEq)]
|
#[derive(Clone, Copy, Debug, PartialEq)]
|
||||||
#[cfg_attr(feature = "with_serde", derive(serde::Deserialize, serde::Serialize))]
|
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
||||||
#[cfg_attr(feature = "with_serde", serde(rename_all = "snake_case"))]
|
#[cfg_attr(feature = "serde", serde(rename_all = "snake_case"))]
|
||||||
pub enum Direction {
|
pub enum Direction {
|
||||||
Horizontal,
|
Horizontal,
|
||||||
Vertical,
|
Vertical,
|
||||||
|
@ -19,8 +19,8 @@ impl Default for Direction {
|
||||||
|
|
||||||
/// left/center/right or top/center/bottom alignment for e.g. anchors and `Layout`s.
|
/// left/center/right or top/center/bottom alignment for e.g. anchors and `Layout`s.
|
||||||
#[derive(Clone, Copy, Debug, PartialEq)]
|
#[derive(Clone, Copy, Debug, PartialEq)]
|
||||||
#[cfg_attr(feature = "with_serde", derive(serde::Deserialize, serde::Serialize))]
|
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
||||||
#[cfg_attr(feature = "with_serde", serde(rename_all = "snake_case"))]
|
#[cfg_attr(feature = "serde", serde(rename_all = "snake_case"))]
|
||||||
pub enum Align {
|
pub enum Align {
|
||||||
/// Left/Top
|
/// Left/Top
|
||||||
Min,
|
Min,
|
||||||
|
@ -59,7 +59,7 @@ pub(crate) fn anchor_rect(rect: Rect, anchor: (Align, Align)) -> Rect {
|
||||||
|
|
||||||
/// The layout of a `Ui`, e.g. horizontal left-aligned.
|
/// The layout of a `Ui`, e.g. horizontal left-aligned.
|
||||||
#[derive(Clone, Copy, Debug, PartialEq)]
|
#[derive(Clone, Copy, Debug, PartialEq)]
|
||||||
// #[cfg_attr(feature = "with_serde", derive(serde::Deserialize, serde::Serialize))]
|
// #[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
||||||
pub struct Layout {
|
pub struct Layout {
|
||||||
/// Lay out things horizontally or vertically?
|
/// Lay out things horizontally or vertically?
|
||||||
dir: Direction,
|
dir: Direction,
|
||||||
|
|
|
@ -6,7 +6,7 @@ use std::ops::{Add, AddAssign, Div, Mul, MulAssign, Neg, RangeInclusive, Sub, Su
|
||||||
///
|
///
|
||||||
/// Normally given in points, e.g. logical pixels.
|
/// Normally given in points, e.g. logical pixels.
|
||||||
#[derive(Clone, Copy, Default)]
|
#[derive(Clone, Copy, Default)]
|
||||||
#[cfg_attr(feature = "with_serde", derive(serde::Deserialize, serde::Serialize))]
|
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
||||||
pub struct Vec2 {
|
pub struct Vec2 {
|
||||||
pub x: f32,
|
pub x: f32,
|
||||||
pub y: f32,
|
pub y: f32,
|
||||||
|
@ -248,7 +248,7 @@ impl std::fmt::Debug for Vec2 {
|
||||||
///
|
///
|
||||||
/// Normally given in points, e.g. logical pixels.
|
/// Normally given in points, e.g. logical pixels.
|
||||||
#[derive(Clone, Copy, Default)]
|
#[derive(Clone, Copy, Default)]
|
||||||
#[cfg_attr(feature = "with_serde", derive(serde::Deserialize, serde::Serialize))]
|
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
||||||
pub struct Pos2 {
|
pub struct Pos2 {
|
||||||
pub x: f32,
|
pub x: f32,
|
||||||
pub y: f32,
|
pub y: f32,
|
||||||
|
@ -393,7 +393,7 @@ impl std::fmt::Debug for Pos2 {
|
||||||
///
|
///
|
||||||
/// Normally given in points, e.g. logical pixels.
|
/// Normally given in points, e.g. logical pixels.
|
||||||
#[derive(Clone, Copy, Default, Eq, PartialEq)]
|
#[derive(Clone, Copy, Default, Eq, PartialEq)]
|
||||||
#[cfg_attr(feature = "with_serde", derive(serde::Deserialize, serde::Serialize))]
|
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
||||||
pub struct Rect {
|
pub struct Rect {
|
||||||
pub min: Pos2,
|
pub min: Pos2,
|
||||||
pub max: Pos2,
|
pub max: Pos2,
|
||||||
|
|
|
@ -12,10 +12,10 @@ use crate::{
|
||||||
///
|
///
|
||||||
/// If you want this to persist when closing your app you should serialize `Memory` and store it.
|
/// If you want this to persist when closing your app you should serialize `Memory` and store it.
|
||||||
#[derive(Clone, Debug, Default)]
|
#[derive(Clone, Debug, Default)]
|
||||||
#[cfg_attr(feature = "with_serde", derive(serde::Deserialize, serde::Serialize))]
|
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
||||||
#[cfg_attr(feature = "with_serde", serde(default))]
|
#[cfg_attr(feature = "serde", serde(default))]
|
||||||
pub struct Memory {
|
pub struct Memory {
|
||||||
#[cfg_attr(feature = "with_serde", serde(skip))]
|
#[cfg_attr(feature = "serde", serde(skip))]
|
||||||
pub(crate) interaction: Interaction,
|
pub(crate) interaction: Interaction,
|
||||||
|
|
||||||
// states of various types of widgets
|
// states of various types of widgets
|
||||||
|
@ -25,7 +25,7 @@ pub struct Memory {
|
||||||
pub(crate) scroll_areas: HashMap<Id, scroll_area::State>,
|
pub(crate) scroll_areas: HashMap<Id, scroll_area::State>,
|
||||||
pub(crate) text_edit: HashMap<Id, text_edit::State>,
|
pub(crate) text_edit: HashMap<Id, text_edit::State>,
|
||||||
|
|
||||||
#[cfg_attr(feature = "with_serde", serde(skip))]
|
#[cfg_attr(feature = "serde", serde(skip))]
|
||||||
pub(crate) window_interaction: Option<window::WindowInteraction>,
|
pub(crate) window_interaction: Option<window::WindowInteraction>,
|
||||||
|
|
||||||
pub(crate) areas: Areas,
|
pub(crate) areas: Areas,
|
||||||
|
@ -87,8 +87,8 @@ impl Interaction {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Debug, Default)]
|
#[derive(Clone, Debug, Default)]
|
||||||
#[cfg_attr(feature = "with_serde", derive(serde::Deserialize, serde::Serialize))]
|
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
||||||
#[cfg_attr(feature = "with_serde", serde(default))]
|
#[cfg_attr(feature = "serde", serde(default))]
|
||||||
pub struct Areas {
|
pub struct Areas {
|
||||||
areas: HashMap<Id, area::State>,
|
areas: HashMap<Id, area::State>,
|
||||||
/// Top is last
|
/// Top is last
|
||||||
|
|
|
@ -19,11 +19,11 @@ use crate::{widgets::*, *};
|
||||||
|
|
||||||
/// What is saved between frames.
|
/// What is saved between frames.
|
||||||
#[derive(Clone, Copy, Debug)]
|
#[derive(Clone, Copy, Debug)]
|
||||||
#[cfg_attr(feature = "with_serde", derive(serde::Deserialize, serde::Serialize))]
|
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
||||||
pub(crate) struct BarState {
|
pub(crate) struct BarState {
|
||||||
#[cfg_attr(feature = "with_serde", serde(skip))]
|
#[cfg_attr(feature = "serde", serde(skip))]
|
||||||
open_menu: Option<Id>,
|
open_menu: Option<Id>,
|
||||||
#[cfg_attr(feature = "with_serde", serde(skip))]
|
#[cfg_attr(feature = "serde", serde(skip))]
|
||||||
/// When did we open a menu?
|
/// When did we open a menu?
|
||||||
open_time: f64,
|
open_time: f64,
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// TODO: rename `Color` to `sRGBA` for clarity.
|
// TODO: rename `Color` to `sRGBA` for clarity.
|
||||||
/// 0-255 `sRGBA`. Uses premultiplied alpha.
|
/// 0-255 `sRGBA`. Uses premultiplied alpha.
|
||||||
#[derive(Clone, Copy, Debug, Default, Eq, Ord, PartialEq, PartialOrd)]
|
#[derive(Clone, Copy, Debug, Default, Eq, Ord, PartialEq, PartialOrd)]
|
||||||
#[cfg_attr(feature = "with_serde", derive(serde::Deserialize, serde::Serialize))]
|
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
||||||
pub struct Color {
|
pub struct Color {
|
||||||
pub r: u8,
|
pub r: u8,
|
||||||
pub g: u8,
|
pub g: u8,
|
||||||
|
|
|
@ -69,7 +69,7 @@ impl PaintCmd {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Copy, Debug)]
|
#[derive(Clone, Copy, Debug)]
|
||||||
#[cfg_attr(feature = "with_serde", derive(serde::Deserialize, serde::Serialize))]
|
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
||||||
pub struct LineStyle {
|
pub struct LineStyle {
|
||||||
pub width: f32,
|
pub width: f32,
|
||||||
pub color: Color,
|
pub color: Color,
|
||||||
|
|
|
@ -13,7 +13,7 @@ use super::{
|
||||||
|
|
||||||
// TODO: rename
|
// TODO: rename
|
||||||
#[derive(Copy, Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
|
#[derive(Copy, Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
|
||||||
// #[cfg_attr(feature = "with_serde", derive(serde::Deserialize, serde::Serialize))]
|
// #[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
||||||
pub enum TextStyle {
|
pub enum TextStyle {
|
||||||
Body,
|
Body,
|
||||||
Button,
|
Button,
|
||||||
|
@ -22,7 +22,7 @@ pub enum TextStyle {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Copy, Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
|
#[derive(Copy, Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
|
||||||
// #[cfg_attr(feature = "with_serde", derive(serde::Deserialize, serde::Serialize))]
|
// #[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
||||||
pub enum FontFamily {
|
pub enum FontFamily {
|
||||||
Monospace,
|
Monospace,
|
||||||
VariableWidth,
|
VariableWidth,
|
||||||
|
|
|
@ -5,7 +5,7 @@ use crate::{color::*, math::*, paint::LineStyle, types::*};
|
||||||
// TODO: split into Spacing and Style?
|
// TODO: split into Spacing and Style?
|
||||||
/// Specifies the look and feel of a `Ui`.
|
/// Specifies the look and feel of a `Ui`.
|
||||||
#[derive(Clone, Debug)]
|
#[derive(Clone, Debug)]
|
||||||
#[cfg_attr(feature = "with_serde", derive(serde::Deserialize, serde::Serialize))]
|
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
||||||
pub struct Style {
|
pub struct Style {
|
||||||
/// Horizontal and vertical padding within a window frame.
|
/// Horizontal and vertical padding within a window frame.
|
||||||
pub window_padding: Vec2,
|
pub window_padding: Vec2,
|
||||||
|
@ -101,7 +101,7 @@ impl Default for Style {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Copy, Debug)]
|
#[derive(Clone, Copy, Debug)]
|
||||||
#[cfg_attr(feature = "with_serde", derive(serde::Deserialize, serde::Serialize))]
|
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
||||||
pub struct Interact {
|
pub struct Interact {
|
||||||
pub active: WidgetStyle,
|
pub active: WidgetStyle,
|
||||||
pub hovered: WidgetStyle,
|
pub hovered: WidgetStyle,
|
||||||
|
@ -163,7 +163,7 @@ impl Interact {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Copy, Debug)]
|
#[derive(Clone, Copy, Debug)]
|
||||||
#[cfg_attr(feature = "with_serde", derive(serde::Deserialize, serde::Serialize))]
|
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
||||||
pub struct WidgetStyle {
|
pub struct WidgetStyle {
|
||||||
/// Background color of widget
|
/// Background color of widget
|
||||||
pub bg_fill: Option<Color>,
|
pub bg_fill: Option<Color>,
|
||||||
|
@ -187,7 +187,7 @@ pub struct WidgetStyle {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Copy, Debug)]
|
#[derive(Clone, Copy, Debug)]
|
||||||
#[cfg_attr(feature = "with_serde", derive(serde::Deserialize, serde::Serialize))]
|
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
||||||
pub struct Window {
|
pub struct Window {
|
||||||
pub corner_radius: f32,
|
pub corner_radius: f32,
|
||||||
}
|
}
|
||||||
|
@ -201,7 +201,7 @@ impl Default for Window {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Copy, Debug)]
|
#[derive(Clone, Copy, Debug)]
|
||||||
#[cfg_attr(feature = "with_serde", derive(serde::Deserialize, serde::Serialize))]
|
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
||||||
pub struct MenuBar {
|
pub struct MenuBar {
|
||||||
pub height: f32,
|
pub height: f32,
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ use crate::{math::Rect, Context, Ui};
|
||||||
/// What Egui emits each frame.
|
/// What Egui emits each frame.
|
||||||
/// The backend should use this.
|
/// The backend should use this.
|
||||||
#[derive(Clone, Default)]
|
#[derive(Clone, Default)]
|
||||||
// #[cfg_attr(feature = "with_serde", derive(serde::Serialize))]
|
// #[cfg_attr(feature = "serde", derive(serde::Serialize))]
|
||||||
pub struct Output {
|
pub struct Output {
|
||||||
/// Set the cursor to this icon.
|
/// Set the cursor to this icon.
|
||||||
pub cursor_icon: CursorIcon,
|
pub cursor_icon: CursorIcon,
|
||||||
|
@ -25,8 +25,8 @@ pub struct Output {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Copy)]
|
#[derive(Clone, Copy)]
|
||||||
// #[cfg_attr(feature = "with_serde", derive(serde::Serialize))]
|
// #[cfg_attr(feature = "serde", derive(serde::Serialize))]
|
||||||
// #[cfg_attr(feature = "with_serde", serde(rename_all = "snake_case"))]
|
// #[cfg_attr(feature = "serde", serde(rename_all = "snake_case"))]
|
||||||
pub enum CursorIcon {
|
pub enum CursorIcon {
|
||||||
Default,
|
Default,
|
||||||
/// Pointing hand, used for e.g. web links
|
/// Pointing hand, used for e.g. web links
|
||||||
|
@ -50,7 +50,7 @@ impl Default for CursorIcon {
|
||||||
///
|
///
|
||||||
/// For instance, this lets you know whether or not a widget has been clicked this frame.
|
/// For instance, this lets you know whether or not a widget has been clicked this frame.
|
||||||
#[derive(Clone, Copy, Debug)]
|
#[derive(Clone, Copy, Debug)]
|
||||||
// #[cfg_attr(feature = "with_serde", derive(serde::Serialize))]
|
// #[cfg_attr(feature = "serde", derive(serde::Serialize))]
|
||||||
pub struct InteractInfo {
|
pub struct InteractInfo {
|
||||||
/// The senses (click or drag) that the widget is interested in (if any).
|
/// The senses (click or drag) that the widget is interested in (if any).
|
||||||
pub sense: Sense,
|
pub sense: Sense,
|
||||||
|
@ -165,7 +165,7 @@ impl Into<InteractInfo> for GuiResponse {
|
||||||
|
|
||||||
/// What sort of interaction is a widget sensitive to?
|
/// What sort of interaction is a widget sensitive to?
|
||||||
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
|
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
|
||||||
// #[cfg_attr(feature = "with_serde", derive(serde::Serialize))]
|
// #[cfg_attr(feature = "serde", derive(serde::Serialize))]
|
||||||
pub struct Sense {
|
pub struct Sense {
|
||||||
/// buttons, sliders, windows ...
|
/// buttons, sliders, windows ...
|
||||||
pub click: bool,
|
pub click: bool,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
use crate::{paint::*, *};
|
use crate::{paint::*, *};
|
||||||
|
|
||||||
#[derive(Clone, Copy, Debug, Default)]
|
#[derive(Clone, Copy, Debug, Default)]
|
||||||
#[cfg_attr(feature = "with_serde", derive(serde::Deserialize, serde::Serialize))]
|
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
||||||
pub(crate) struct State {
|
pub(crate) struct State {
|
||||||
/// Charctaer based, NOT bytes.
|
/// Charctaer based, NOT bytes.
|
||||||
/// TODO: store as line + row
|
/// TODO: store as line + row
|
||||||
|
|
|
@ -14,7 +14,7 @@ include = [ "**/*.rs", "Cargo.toml"]
|
||||||
[dependencies]
|
[dependencies]
|
||||||
chrono = { version = "0.4" }
|
chrono = { version = "0.4" }
|
||||||
clipboard = "0.5"
|
clipboard = "0.5"
|
||||||
egui = { version = "0.1.3", path = "../egui", features = ["with_serde"] }
|
egui = { version = "0.1.3", path = "../egui", features = ["serde", "serde_json"] }
|
||||||
glium = "0.27"
|
glium = "0.27"
|
||||||
serde = "1"
|
serde = "1"
|
||||||
serde_json = "1"
|
serde_json = "1"
|
||||||
|
|
|
@ -15,7 +15,7 @@ include = [ "**/*.rs", "Cargo.toml"]
|
||||||
crate-type = ["cdylib", "rlib"]
|
crate-type = ["cdylib", "rlib"]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
egui = { version = "0.1.3", path = "../egui", features = ["with_serde"] }
|
egui = { version = "0.1.3", path = "../egui", features = ["serde"] }
|
||||||
js-sys = "0.3"
|
js-sys = "0.3"
|
||||||
parking_lot = "0.11"
|
parking_lot = "0.11"
|
||||||
serde = "1"
|
serde = "1"
|
||||||
|
|
Loading…
Reference in a new issue