diff --git a/Cargo.lock b/Cargo.lock index d2c373df..8ee67a10 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -813,16 +813,6 @@ dependencies = [ "winit", ] -[[package]] -name = "egui_datepicker" -version = "0.16.0" -dependencies = [ - "chrono", - "egui", - "egui_dynamic_grid", - "serde", -] - [[package]] name = "egui_demo_app" version = "0.16.0" @@ -838,8 +828,7 @@ dependencies = [ "chrono", "criterion", "egui", - "egui_datepicker", - "egui_dynamic_grid", + "egui_extras", "ehttp", "enum-map", "epi", @@ -850,10 +839,12 @@ dependencies = [ ] [[package]] -name = "egui_dynamic_grid" +name = "egui_extras" version = "0.16.0" dependencies = [ + "chrono", "egui", + "serde", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index ee0b9ef3..a8113833 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,10 +1,9 @@ [workspace] resolver = "2" members = [ - "egui_datepicker", "egui_demo_app", "egui_demo_lib", - "egui_dynamic_grid", + "egui_extras", "egui_glium", "egui_glow", "egui_web", diff --git a/egui_datepicker/Cargo.toml b/egui_datepicker/Cargo.toml deleted file mode 100644 index fa0e9569..00000000 --- a/egui_datepicker/Cargo.toml +++ /dev/null @@ -1,10 +0,0 @@ -[package] -name = "egui_datepicker" -version = "0.16.0" -edition = "2018" - -[dependencies] -chrono = "0.4" -egui = { version = "0.16.0", path = "../egui", default-features = false } -egui_dynamic_grid = { version = "0.16.0", path = "../egui_dynamic_grid" } -serde = { version = "1", features = ["derive"] } diff --git a/egui_demo_lib/Cargo.toml b/egui_demo_lib/Cargo.toml index 798206b7..86a209be 100644 --- a/egui_demo_lib/Cargo.toml +++ b/egui_demo_lib/Cargo.toml @@ -21,8 +21,7 @@ all-features = true [dependencies] egui = { version = "0.16.0", path = "../egui", default-features = false } epi = { version = "0.16.0", path = "../epi" } -egui_dynamic_grid = { version = "0.16.0", path = "../egui_dynamic_grid" } -egui_datepicker = { version = "0.16.0", path = "../egui_datepicker", optional = true } +egui_extras = { version = "0.16.0", path = "../egui_extras" } chrono = { version = "0.4", features = ["js-sys", "wasmbind"], optional = true } enum-map = { version = "1", features = ["serde"] } @@ -48,7 +47,7 @@ criterion = { version = "0.3", default-features = false } [features] default = ["datetime"] -datetime = ["egui_datepicker", "chrono"] +datetime = ["egui_extras/datetime", "chrono"] # Enable additional checks if debug assertions are enabled (debug builds). extra_debug_asserts = ["egui/extra_debug_asserts"] @@ -56,7 +55,12 @@ extra_debug_asserts = ["egui/extra_debug_asserts"] extra_asserts = ["egui/extra_asserts"] http = ["ehttp", "image"] -persistence = ["egui/persistence", "epi/persistence", "serde"] +persistence = [ + "egui/persistence", + "epi/persistence", + "egui_extras/persistence", + "serde", +] serialize = ["egui/serialize", "serde"] syntax_highlighting = ["syntect"] diff --git a/egui_demo_lib/src/apps/demo/grid_demo.rs b/egui_demo_lib/src/apps/demo/grid_demo.rs index 5782523f..8487c315 100644 --- a/egui_demo_lib/src/apps/demo/grid_demo.rs +++ b/egui_demo_lib/src/apps/demo/grid_demo.rs @@ -1,5 +1,5 @@ use egui::Color32; -use egui_dynamic_grid::{GridBuilder, Padding, Size}; +use egui_extras::{GridBuilder, Padding, Size}; /// Shows off a table with dynamic layout #[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))] diff --git a/egui_demo_lib/src/apps/demo/table_demo.rs b/egui_demo_lib/src/apps/demo/table_demo.rs index ce322dc3..de553933 100644 --- a/egui_demo_lib/src/apps/demo/table_demo.rs +++ b/egui_demo_lib/src/apps/demo/table_demo.rs @@ -1,5 +1,5 @@ use egui::{Label, RichText}; -use egui_dynamic_grid::{Padding, Size, TableBuilder}; +use egui_extras::{Padding, Size, TableBuilder}; /// Shows off a table with dynamic layout #[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))] diff --git a/egui_demo_lib/src/apps/demo/widget_gallery.rs b/egui_demo_lib/src/apps/demo/widget_gallery.rs index 1ebc991b..73b976d4 100644 --- a/egui_demo_lib/src/apps/demo/widget_gallery.rs +++ b/egui_demo_lib/src/apps/demo/widget_gallery.rs @@ -207,7 +207,7 @@ impl WidgetGallery { #[cfg(feature = "datetime")] { ui.add(doc_link_label("DatePickerButton", "DatePickerButton")); - ui.add(egui_datepicker::DatePickerButton::new(date)); + ui.add(egui_extras::DatePickerButton::new(date)); ui.end_row(); } diff --git a/egui_dynamic_grid/Cargo.toml b/egui_extras/Cargo.toml similarity index 50% rename from egui_dynamic_grid/Cargo.toml rename to egui_extras/Cargo.toml index 80f2934a..af97659b 100644 --- a/egui_dynamic_grid/Cargo.toml +++ b/egui_extras/Cargo.toml @@ -1,19 +1,30 @@ [package] -name = "egui_dynamic_grid" +name = "egui_extras" version = "0.16.0" edition = "2018" -description = "Dynamic grid and table for egui" +description = "Extra widgets for egui" authors = [ "René Rössler ", "Dominik Rössler ", ] license = "MIT OR Apache-2.0" -homepage = "https://github.com/emilk/egui/tree/master/egui_dynamic_grid" +homepage = "https://github.com/emilk/egui/tree/master/egui_extras" readme = "README.md" -repository = "https://github.com/emilk/egui/tree/master/egui_dynamic_grid" +repository = "https://github.com/emilk/egui/tree/master/egui_extras" categories = ["gui", "graphics"] keywords = ["glium", "egui", "gui", "gamedev"] include = ["../LICENSE-APACHE", "../LICENSE-MIT", "**/*.rs", "Cargo.toml"] [dependencies] egui = { version = "0.16.0", path = "../egui", default-features = false } + +# feature "datetime": +chrono = { version = "0.4", optional = true } + +# feature "persistence": +serde = { version = "1", features = ["derive"], optional = true } + +[features] +default = ["datetime"] +datetime = ["chrono"] +persistence = ["serde"] diff --git a/egui_datepicker/src/lib.rs b/egui_extras/src/datepicker.rs similarity index 90% rename from egui_datepicker/src/lib.rs rename to egui_extras/src/datepicker.rs index 5c6c30c8..b163a3a7 100644 --- a/egui_datepicker/src/lib.rs +++ b/egui_extras/src/datepicker.rs @@ -1,10 +1,9 @@ -mod datepicker_button; -mod datepicker_popup; +mod button; +mod popup; +pub use button::DatePickerButton; use chrono::{Date, Datelike, Duration, NaiveDate, Utc, Weekday}; -pub use datepicker_button::DatePickerButton; - #[derive(Debug)] struct Week { number: u8, diff --git a/egui_datepicker/src/datepicker_button.rs b/egui_extras/src/datepicker/button.rs similarity index 96% rename from egui_datepicker/src/datepicker_button.rs rename to egui_extras/src/datepicker/button.rs index d84ad642..477fe8a4 100644 --- a/egui_datepicker/src/datepicker_button.rs +++ b/egui_extras/src/datepicker/button.rs @@ -1,10 +1,9 @@ +use super::popup::DatePickerPopup; use chrono::{Date, Utc}; use egui::{Area, Button, Frame, Key, Order, RichText, Ui, Widget}; -use serde::{Deserialize, Serialize}; -use crate::datepicker_popup::DatePickerPopup; - -#[derive(Default, Clone, Serialize, Deserialize)] +#[derive(Default, Clone)] +#[cfg_attr(feature = "persistence", derive(serde::Deserialize, serde::Serialize))] pub(crate) struct DatePickerButtonState { pub picker_visible: bool, } diff --git a/egui_datepicker/src/datepicker_popup.rs b/egui_extras/src/datepicker/popup.rs similarity index 98% rename from egui_datepicker/src/datepicker_popup.rs rename to egui_extras/src/datepicker/popup.rs index eafc8b7f..45f91410 100644 --- a/egui_datepicker/src/datepicker_popup.rs +++ b/egui_extras/src/datepicker/popup.rs @@ -1,11 +1,10 @@ +use super::{button::DatePickerButtonState, month_data}; +use crate::{GridBuilder, Padding, Size, TableBuilder}; use chrono::{Date, Datelike, NaiveDate, Utc, Weekday}; use egui::{Align, Button, Color32, ComboBox, Direction, Id, Label, Layout, RichText, Ui}; -use egui_dynamic_grid::{GridBuilder, Padding, Size, TableBuilder}; -use serde::{Deserialize, Serialize}; -use crate::{datepicker_button::DatePickerButtonState, month_data}; - -#[derive(Default, Clone, Serialize, Deserialize)] +#[derive(Default, Clone)] +#[cfg_attr(feature = "persistence", derive(serde::Deserialize, serde::Serialize))] struct DatePickerPopupState { year: i32, month: u32, diff --git a/egui_dynamic_grid/src/grid.rs b/egui_extras/src/grid.rs similarity index 100% rename from egui_dynamic_grid/src/grid.rs rename to egui_extras/src/grid.rs diff --git a/egui_dynamic_grid/src/layout.rs b/egui_extras/src/layout.rs similarity index 100% rename from egui_dynamic_grid/src/layout.rs rename to egui_extras/src/layout.rs diff --git a/egui_dynamic_grid/src/lib.rs b/egui_extras/src/lib.rs similarity index 76% rename from egui_dynamic_grid/src/lib.rs rename to egui_extras/src/lib.rs index 01d327e8..14510e50 100644 --- a/egui_dynamic_grid/src/lib.rs +++ b/egui_extras/src/lib.rs @@ -1,9 +1,11 @@ +mod datepicker; mod grid; mod layout; mod padding; mod sizing; mod table; +pub use datepicker::DatePickerButton; pub use grid::*; pub(crate) use layout::Layout; pub use padding::Padding; diff --git a/egui_dynamic_grid/src/padding.rs b/egui_extras/src/padding.rs similarity index 100% rename from egui_dynamic_grid/src/padding.rs rename to egui_extras/src/padding.rs diff --git a/egui_dynamic_grid/src/sizing.rs b/egui_extras/src/sizing.rs similarity index 100% rename from egui_dynamic_grid/src/sizing.rs rename to egui_extras/src/sizing.rs diff --git a/egui_dynamic_grid/src/table.rs b/egui_extras/src/table.rs similarity index 100% rename from egui_dynamic_grid/src/table.rs rename to egui_extras/src/table.rs