diff options
| author | 2020-12-22 14:58:39 +0100 | |
|---|---|---|
| committer | 2020-12-22 14:58:39 +0100 | |
| commit | f8aef03456ecc185098b6305a8cd0e22f5297d06 (patch) | |
| tree | bdd8fd190980840235c4d10365cac98f3a260c21 /graphics | |
| parent | a366600e7347c24bbb6679118a12b616a031deff (diff) | |
| parent | e815c5bbd72f618ad890e1d3c5a67c811cd07108 (diff) | |
| download | iced-f8aef03456ecc185098b6305a8cd0e22f5297d06.tar.gz iced-f8aef03456ecc185098b6305a8cd0e22f5297d06.tar.bz2 iced-f8aef03456ecc185098b6305a8cd0e22f5297d06.zip | |
Merge pull request #657 from clarkmoody/feature/pane-grid-title-contents
Generic Element Content in Pane Grid TitleBar
Diffstat (limited to '')
| -rw-r--r-- | graphics/src/widget/pane_grid.rs | 33 | 
1 files changed, 11 insertions, 22 deletions
| diff --git a/graphics/src/widget/pane_grid.rs b/graphics/src/widget/pane_grid.rs index f09984fc..29478447 100644 --- a/graphics/src/widget/pane_grid.rs +++ b/graphics/src/widget/pane_grid.rs @@ -7,16 +7,11 @@  //! drag and drop, and hotkey support.  //!  //! [`pane_grid` example]: https://github.com/hecrj/iced/tree/0.2/examples/pane_grid -use crate::backend::{self, Backend};  use crate::defaults; -use crate::{Primitive, Renderer}; +use crate::{Backend, Primitive, Renderer};  use iced_native::mouse;  use iced_native::pane_grid; -use iced_native::text; -use iced_native::{ -    Element, HorizontalAlignment, Layout, Point, Rectangle, Vector, -    VerticalAlignment, -}; +use iced_native::{Element, Layout, Point, Rectangle, Vector};  pub use iced_native::pane_grid::{      Axis, Configuration, Content, Direction, DragEvent, Pane, ResizeEvent, @@ -34,7 +29,7 @@ pub type PaneGrid<'a, Message, Backend> =  impl<B> pane_grid::Renderer for Renderer<B>  where -    B: Backend + backend::Text, +    B: Backend,  {      fn draw<Message>(          &mut self, @@ -188,14 +183,12 @@ where          defaults: &Self::Defaults,          bounds: Rectangle,          style_sheet: &Self::Style, -        title: &str, -        title_size: u16, -        title_font: Self::Font, -        title_bounds: Rectangle, +        content: (&Element<'_, Message, Self>, Layout<'_>),          controls: Option<(&Element<'_, Message, Self>, Layout<'_>)>,          cursor_position: Point,      ) -> Self::Output {          let style = style_sheet.style(); +        let (title_content, title_layout) = content;          let defaults = Self::Defaults {              text: defaults::Text { @@ -205,16 +198,12 @@ where          let background = crate::widget::container::background(bounds, &style); -        let (title_primitive, _) = text::Renderer::draw( +        let (title_primitive, title_interaction) = title_content.draw(              self,              &defaults, -            title_bounds, -            title, -            title_size, -            title_font, -            None, -            HorizontalAlignment::Left, -            VerticalAlignment::Top, +            title_layout, +            cursor_position, +            &bounds,          );          if let Some((controls, controls_layout)) = controls { @@ -234,7 +223,7 @@ where                          controls_primitive,                      ],                  }, -                controls_interaction, +                controls_interaction.max(title_interaction),              )          } else {              ( @@ -245,7 +234,7 @@ where                  } else {                      title_primitive                  }, -                mouse::Interaction::default(), +                title_interaction,              )          }      } | 
