first pass of merging in warp (doesn't build)
This commit is contained in:
@@ -1,17 +1,13 @@
|
||||
mod params;
|
||||
pub mod themes;
|
||||
|
||||
use galaxy_core::ui::{
|
||||
appearance::Appearance,
|
||||
color::{ContrastingColor as _, contrast::MinimumAllowedContrast},
|
||||
};
|
||||
use galaxyui::{
|
||||
elements::{MouseState, MouseStateHandle},
|
||||
prelude::*,
|
||||
};
|
||||
|
||||
pub use params::*;
|
||||
pub use themes::Theme;
|
||||
use galaxy_core::ui::appearance::Appearance;
|
||||
use galaxy_core::ui::color::ContrastingColor as _;
|
||||
use galaxy_core::ui::color::contrast::MinimumAllowedContrast;
|
||||
use galaxyui_core::elements::{MouseState, MouseStateHandle};
|
||||
use galaxyui_core::prelude::*;
|
||||
|
||||
use crate::{keyboard_shortcut, tooltip};
|
||||
|
||||
|
||||
@@ -2,11 +2,12 @@ use std::borrow::Cow;
|
||||
|
||||
use galaxy_core::ui::Icon;
|
||||
use galaxy_core::ui::appearance::Appearance;
|
||||
use galaxyui::{fonts, keymap::Keystroke, prelude::stack};
|
||||
|
||||
use crate::{keyboard_shortcut, tooltip};
|
||||
use galaxyui_core::fonts;
|
||||
use galaxyui_core::keymap::Keystroke;
|
||||
use galaxyui_core::prelude::stack;
|
||||
|
||||
use super::Theme;
|
||||
use crate::{keyboard_shortcut, tooltip};
|
||||
|
||||
/// The parameters for rendering a button.
|
||||
pub struct Params<'a> {
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
use galaxy_core::ui::{
|
||||
appearance::Appearance, color::coloru_with_opacity, theme::Fill, theme::color::internal_colors,
|
||||
};
|
||||
use pathfinder_color::ColorU;
|
||||
use galaxy_core::ui::appearance::Appearance;
|
||||
use galaxy_core::ui::color::coloru_with_opacity;
|
||||
use galaxy_core::ui::theme::Fill;
|
||||
use galaxy_core::ui::theme::color::internal_colors;
|
||||
|
||||
/// Theming delegate for a button.
|
||||
pub trait Theme {
|
||||
|
||||
@@ -1,16 +1,17 @@
|
||||
use std::{borrow::Cow, sync::Arc};
|
||||
use std::borrow::Cow;
|
||||
use std::sync::Arc;
|
||||
|
||||
use galaxy_core::ui::{Icon, appearance::Appearance, theme::color::internal_colors};
|
||||
use galaxyui::{
|
||||
AppContext, EventContext,
|
||||
elements::{
|
||||
Border, ConstrainedBox, Container, CornerRadius, CrossAxisAlignment, Dismiss, Element,
|
||||
Flex, ParentElement, Radius, Shrinkable,
|
||||
},
|
||||
fonts::{Properties, Weight},
|
||||
keymap::Keystroke,
|
||||
prelude::{MainAxisAlignment, MainAxisSize, Text},
|
||||
use galaxy_core::ui::Icon;
|
||||
use galaxy_core::ui::appearance::Appearance;
|
||||
use galaxy_core::ui::theme::color::internal_colors;
|
||||
use galaxyui_core::elements::{
|
||||
Border, ConstrainedBox, Container, CornerRadius, CrossAxisAlignment, Dismiss, Element, Flex,
|
||||
ParentElement, Radius, Shrinkable,
|
||||
};
|
||||
use galaxyui_core::fonts::{Properties, Weight};
|
||||
use galaxyui_core::keymap::Keystroke;
|
||||
use galaxyui_core::prelude::{MainAxisAlignment, MainAxisSize, Text};
|
||||
use galaxyui_core::{AppContext, EventContext};
|
||||
|
||||
use crate::{Component, Options as _, Renderable, button};
|
||||
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
use std::borrow::Cow;
|
||||
|
||||
use galaxy_core::ui::{appearance::Appearance, icons::Icon};
|
||||
use galaxyui::{keymap::Keystroke, platform::OperatingSystem, prelude::*};
|
||||
use galaxy_core::ui::appearance::Appearance;
|
||||
use galaxy_core::ui::icons::Icon;
|
||||
use galaxyui_core::keymap::Keystroke;
|
||||
use galaxyui_core::platform::OperatingSystem;
|
||||
use galaxyui_core::prelude::*;
|
||||
|
||||
use crate::Component;
|
||||
|
||||
|
||||
@@ -6,9 +6,8 @@ pub mod switch;
|
||||
pub mod tooltip;
|
||||
|
||||
pub use keyboard_shortcut::KeyboardShortcut;
|
||||
|
||||
use galaxy_core::ui::appearance::Appearance;
|
||||
use galaxyui::Element;
|
||||
use galaxyui_core::Element;
|
||||
|
||||
/// A reusable UI component that can be rendered with configurable parameters.
|
||||
///
|
||||
@@ -32,7 +31,7 @@ use galaxyui::Element;
|
||||
/// ```rust
|
||||
/// use ui_components::{Component, Options, button};
|
||||
/// use galaxy_core::ui::appearance::Appearance;
|
||||
/// use galaxyui::prelude::*;
|
||||
/// use galaxyui_core::prelude::*;
|
||||
///
|
||||
/// // Store component as a field in your view.
|
||||
/// struct MyView {
|
||||
@@ -40,7 +39,7 @@ use galaxyui::Element;
|
||||
/// }
|
||||
///
|
||||
/// impl MyView {
|
||||
/// fn render_button(&self, appearance: &Appearance) -> Box<dyn galaxyui::Element> {
|
||||
/// fn render_button(&self, appearance: &Appearance) -> Box<dyn galaxyui_core::Element> {
|
||||
/// self.my_button.render(
|
||||
/// appearance,
|
||||
/// button::Params {
|
||||
@@ -63,7 +62,7 @@ use galaxyui::Element;
|
||||
/// ```rust
|
||||
/// use ui_components::Component;
|
||||
/// use galaxy_core::ui::appearance::Appearance;
|
||||
/// use galaxyui::prelude::*;
|
||||
/// use galaxyui_core::prelude::*;
|
||||
///
|
||||
/// // 1. Define the component struct with any persistent state.
|
||||
/// #[derive(Default)]
|
||||
@@ -233,7 +232,7 @@ pub trait Options {
|
||||
/// ```rust
|
||||
/// use ui_components::{Renderable, Options};
|
||||
/// use galaxy_core::ui::appearance::Appearance;
|
||||
/// use galaxyui::prelude::*;
|
||||
/// use galaxyui_core::prelude::*;
|
||||
///
|
||||
/// pub struct SwitchOptions<'a> {
|
||||
/// pub disabled: bool,
|
||||
@@ -283,8 +282,8 @@ where
|
||||
/// A function that handles mouse events.
|
||||
pub type MouseEventHandler = Box<
|
||||
dyn FnMut(
|
||||
&mut galaxyui::EventContext,
|
||||
&galaxyui::AppContext,
|
||||
&mut galaxyui_core::EventContext,
|
||||
&galaxyui_core::AppContext,
|
||||
pathfinder_geometry::vector::Vector2F,
|
||||
),
|
||||
>;
|
||||
|
||||
@@ -1,13 +1,15 @@
|
||||
use std::sync::Arc;
|
||||
|
||||
use galaxy_core::ui::{Icon, appearance::Appearance};
|
||||
use galaxyui::{
|
||||
assets::asset_cache::AssetSource,
|
||||
elements::{CacheOption, Dismiss, DispatchEventResult, EventHandler, Image, Shrinkable},
|
||||
keymap::Keystroke,
|
||||
prelude::{stack::*, *},
|
||||
};
|
||||
use pathfinder_geometry::vector::{Vector2F, vec2f};
|
||||
use galaxy_core::ui::Icon;
|
||||
use galaxy_core::ui::appearance::Appearance;
|
||||
use galaxyui_core::assets::asset_cache::AssetSource;
|
||||
use galaxyui_core::elements::{
|
||||
CacheOption, Dismiss, DispatchEventResult, EventHandler, Image, Shrinkable,
|
||||
};
|
||||
use galaxyui_core::keymap::Keystroke;
|
||||
use galaxyui_core::prelude::stack::*;
|
||||
use galaxyui_core::prelude::*;
|
||||
|
||||
use crate::{Component, Options as _, button};
|
||||
|
||||
@@ -130,7 +132,7 @@ impl Component for Lightbox {
|
||||
appearance,
|
||||
button::Params {
|
||||
content: button::Content::Icon(Icon::X),
|
||||
theme: &button::themes::Secondary,
|
||||
theme: &ButtonTheme,
|
||||
options: button::Options {
|
||||
size: button::Size::Small,
|
||||
on_click: Some(Box::new(move |ctx, app, _| {
|
||||
@@ -151,6 +153,7 @@ impl Component for Lightbox {
|
||||
let image = ConstrainedBox::new(
|
||||
Image::new(asset_source.clone(), CacheOption::Original)
|
||||
.contain()
|
||||
.layout_using_paint_bounds()
|
||||
.before_load(Align::new(loading_element(appearance)).finish())
|
||||
.finish(),
|
||||
)
|
||||
@@ -225,7 +228,7 @@ impl Component for Lightbox {
|
||||
appearance,
|
||||
button::Params {
|
||||
content: button::Content::Icon(Icon::ChevronLeft),
|
||||
theme: &button::themes::Secondary,
|
||||
theme: &ButtonTheme,
|
||||
options: button::Options {
|
||||
size: button::Size::Small,
|
||||
on_click: Some(Box::new(move |ctx, app, _| {
|
||||
@@ -253,7 +256,7 @@ impl Component for Lightbox {
|
||||
appearance,
|
||||
button::Params {
|
||||
content: button::Content::Icon(Icon::ChevronRight),
|
||||
theme: &button::themes::Secondary,
|
||||
theme: &ButtonTheme,
|
||||
options: button::Options {
|
||||
size: button::Size::Small,
|
||||
on_click: Some(Box::new(move |ctx, app, _| {
|
||||
@@ -294,3 +297,38 @@ fn loading_element(appearance: &Appearance) -> Box<dyn Element> {
|
||||
fn lightbox_text_size(appearance: &Appearance) -> f32 {
|
||||
appearance.ui_font_size() + LIGHTBOX_TEXT_SIZE_DELTA
|
||||
}
|
||||
|
||||
/// A custom button theme for lightbox buttons to force colors to match
|
||||
/// a Dark theme button, as these buttons always appear on top of a near-black
|
||||
/// scrim, independent of application theme.
|
||||
struct ButtonTheme;
|
||||
|
||||
impl button::Theme for ButtonTheme {
|
||||
fn background(
|
||||
&self,
|
||||
button_state: button::State,
|
||||
_appearance: &Appearance,
|
||||
) -> Option<galaxy_core::ui::theme::Fill> {
|
||||
match button_state {
|
||||
button::State::Default => None,
|
||||
button::State::Hovered => Some(galaxy_core::ui::theme::Fill::white().with_opacity(10)),
|
||||
button::State::Pressed => Some(galaxy_core::ui::theme::Fill::white().with_opacity(15)),
|
||||
}
|
||||
}
|
||||
|
||||
fn text_color(
|
||||
&self,
|
||||
_background: Option<galaxy_core::ui::theme::Fill>,
|
||||
_appearance: &Appearance,
|
||||
) -> ColorU {
|
||||
ColorU::new(255, 255, 255, 255)
|
||||
}
|
||||
|
||||
fn border(&self, _appearance: &Appearance) -> Option<ColorU> {
|
||||
Some(ColorU::new(51, 51, 51, 255))
|
||||
}
|
||||
|
||||
fn keyboard_shortcut_background(&self, _appearance: &Appearance) -> Option<ColorU> {
|
||||
Some(ColorU::new(38, 38, 38, 255))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
use std::sync::LazyLock;
|
||||
|
||||
use galaxy_core::ui::appearance::Appearance;
|
||||
use galaxyui::{
|
||||
elements::{MouseStateHandle, Rect},
|
||||
prelude::{stack::*, *},
|
||||
};
|
||||
use galaxyui_core::elements::{MouseStateHandle, Rect};
|
||||
use galaxyui_core::prelude::stack::*;
|
||||
use galaxyui_core::prelude::*;
|
||||
|
||||
use crate::{Component, MouseEventHandler, Renderable};
|
||||
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
use std::borrow::Cow;
|
||||
|
||||
use galaxy_core::ui::{appearance::Appearance, theme::color::internal_colors};
|
||||
use galaxyui::{keymap::Keystroke, prelude::*};
|
||||
use galaxy_core::ui::appearance::Appearance;
|
||||
use galaxy_core::ui::theme::color::internal_colors;
|
||||
use galaxyui_core::keymap::Keystroke;
|
||||
use galaxyui_core::prelude::*;
|
||||
|
||||
use crate::{Component, keyboard_shortcut};
|
||||
|
||||
@@ -39,7 +41,7 @@ impl Component for Tooltip {
|
||||
&self,
|
||||
appearance: &Appearance,
|
||||
params: Self::Params<'a>,
|
||||
) -> Box<dyn galaxyui::Element> {
|
||||
) -> Box<dyn galaxyui_core::Element> {
|
||||
let font_family = appearance.ui_font_family();
|
||||
let font_size = appearance.ui_font_size() + UI_FONT_SIZE_ADJUSTMENT;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user