druid 0.8.2

Data-oriented Rust UI design toolkit.
Documentation
// Copyright 2018 The Druid Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

//! Common widgets.

// First as it defines macros
#[macro_use]
mod widget_wrapper;

mod added;
mod align;
mod aspect_ratio_box;
mod button;
mod checkbox;
mod click;
mod clip_box;
mod common;
mod container;
mod controller;
mod disable_if;
mod either;
mod env_scope;
mod flex;
mod identity_wrapper;
mod image;
mod intrinsic_width;
mod invalidation;
mod label;
mod lens_wrap;
mod list;
mod maybe;
mod padding;
mod painter;
mod parse;
mod progress_bar;
mod radio;
mod scope;
mod scroll;
mod sized_box;
mod slider;
mod spinner;
mod split;
mod stepper;
#[cfg(feature = "svg")]
#[cfg_attr(docsrs, doc(cfg(feature = "svg")))]
mod svg;
mod switch;
mod tabs;
mod textbox;
mod value_textbox;
mod view_switcher;
#[allow(clippy::module_inception)]
mod widget;
mod widget_ext;
mod z_stack;

pub use self::image::Image;
pub use added::Added;
pub use align::Align;
pub use aspect_ratio_box::AspectRatioBox;
pub use button::Button;
pub use checkbox::Checkbox;
pub use click::Click;
pub use clip_box::{ClipBox, Viewport};
pub use common::FillStrat;
pub use container::Container;
pub use controller::{Controller, ControllerHost};
pub use disable_if::DisabledIf;
pub use either::Either;
pub use env_scope::EnvScope;
pub use flex::{Axis, CrossAxisAlignment, Flex, FlexParams, MainAxisAlignment};
pub use identity_wrapper::IdentityWrapper;
pub use intrinsic_width::IntrinsicWidth;
pub use label::{Label, LabelText, LineBreaking, RawLabel};
pub use lens_wrap::LensWrap;
pub use list::{List, ListIter};
pub use maybe::Maybe;
pub use padding::Padding;
pub use painter::{BackgroundBrush, Painter};
#[allow(deprecated)]
pub use parse::Parse;
pub use progress_bar::ProgressBar;
pub use radio::{Radio, RadioGroup};
pub use scope::{DefaultScopePolicy, LensScopeTransfer, Scope, ScopePolicy, ScopeTransfer};
pub use scroll::Scroll;
pub use sized_box::SizedBox;
pub use slider::{KnobStyle, RangeSlider, Slider};
pub use spinner::Spinner;
pub use split::Split;
pub use stepper::Stepper;
#[cfg(feature = "svg")]
pub use svg::{Svg, SvgData};
pub use switch::Switch;
pub use tabs::{TabInfo, Tabs, TabsEdge, TabsPolicy, TabsState, TabsTransition};
pub use textbox::TextBox;
pub use value_textbox::{TextBoxEvent, ValidationDelegate, ValueTextBox};
pub use view_switcher::ViewSwitcher;
#[doc(hidden)]
pub use widget::{Widget, WidgetId};
#[doc(hidden)]
pub use widget_ext::WidgetExt;
pub use widget_wrapper::WidgetWrapper;
pub use z_stack::ZStack;

/// The types required to implement a [`Widget`].
///
/// # Structs
/// [`BoxConstraints`](crate::BoxConstraints)\
/// [`Env`](crate::Env)\
/// [`EventCtx`](crate::EventCtx)\
/// [`LayoutCtx`](crate::LayoutCtx)\
/// [`LifeCycleCtx`](crate::LifeCycleCtx)\
/// [`PaintCtx`](crate::PaintCtx)\
/// [`Size`](crate::Size)\
/// [`UpdateCtx`](crate::UpdateCtx)\
/// [`WidgetId`](crate::WidgetId)\
///
/// # Enums
/// [`Event`](crate::Event)\
/// [`LifeCycle`](crate::LifeCycle)\
///
/// # Traits
/// [`Data`](crate::Data)\
/// [`RenderContext`](crate::RenderContext)\
/// [`Widget`]
///
/// [`Widget`]: crate::Widget
// NOTE: \ at the end works as a line break, but skip on last line!
pub mod prelude {
    #[doc(hidden)]
    pub use crate::{
        BoxConstraints, Data, Env, Event, EventCtx, LayoutCtx, LifeCycle, LifeCycleCtx, PaintCtx,
        RenderContext, Size, UpdateCtx, Widget, WidgetId,
    };
}