sync
This commit is contained in:
parent
50ee6e6b77
commit
4366c64851
@ -129,7 +129,7 @@ live_design! {
|
|||||||
<H4>{ text: "Input"}
|
<H4>{ text: "Input"}
|
||||||
|
|
||||||
<SelectorItem> {
|
<SelectorItem> {
|
||||||
text: "Selector Item"
|
text: "PPI"
|
||||||
}
|
}
|
||||||
|
|
||||||
<Group> {
|
<Group> {
|
||||||
|
|||||||
@ -46,12 +46,32 @@ live_design! {
|
|||||||
}
|
}
|
||||||
|
|
||||||
SelectorItem = {{SelectorItem}} {
|
SelectorItem = {{SelectorItem}} {
|
||||||
height: Fit
|
height: 64.0
|
||||||
width: Fit
|
width: 64.0
|
||||||
|
flow: Down
|
||||||
|
align: {x:0.5}
|
||||||
|
|
||||||
draw_bg: {
|
draw_bg: {
|
||||||
|
|
||||||
|
instance radius:5.0
|
||||||
|
instance color: #0048E1
|
||||||
|
instance inset: vec4(0.0, 0.0, 0.0, 0.0)
|
||||||
|
|
||||||
|
fn get_color(self) -> vec4 {
|
||||||
|
return self.color
|
||||||
|
}
|
||||||
|
|
||||||
fn pixel(self) -> vec4 {
|
fn pixel(self) -> vec4 {
|
||||||
return mix(#7,#4,self.pos.y);
|
let sdf = Sdf2d::viewport(self.pos * self.rect_size)
|
||||||
|
sdf.box(
|
||||||
|
self.inset.x,
|
||||||
|
self.inset.y,
|
||||||
|
self.rect_size.x - (self.inset.x + self.inset.z),
|
||||||
|
self.rect_size.y - (self.inset.y + self.inset.w),
|
||||||
|
max(1.0, self.radius)
|
||||||
|
)
|
||||||
|
sdf.fill_keep(self.get_color())
|
||||||
|
return sdf.result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
draw_label: {
|
draw_label: {
|
||||||
@ -64,10 +84,12 @@ live_design! {
|
|||||||
// svg_file: ICO_SEARCH,
|
// svg_file: ICO_SEARCH,
|
||||||
svg_file: dep("crate://self/resources/logo_makepad.svg")
|
svg_file: dep("crate://self/resources/logo_makepad.svg")
|
||||||
fn get_color(self) -> vec4 {
|
fn get_color(self) -> vec4 {
|
||||||
return (THEME_COLOR_D_1)
|
return (#ffffff)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
icon_walk: {width: 250.0, height: Fit}
|
icon_walk: {width: Fill, height: Fit}
|
||||||
|
|
||||||
|
label_walk: {width: Fit, height: Fit}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -95,6 +117,8 @@ pub enum SelectorItemAction {
|
|||||||
#[derive(Live, Widget)]
|
#[derive(Live, Widget)]
|
||||||
pub struct SelectorItem {
|
pub struct SelectorItem {
|
||||||
#[redraw]
|
#[redraw]
|
||||||
|
#[rust]
|
||||||
|
area: Area,
|
||||||
#[live]
|
#[live]
|
||||||
draw_bg: DrawQuad,
|
draw_bg: DrawQuad,
|
||||||
#[live]
|
#[live]
|
||||||
@ -106,6 +130,10 @@ pub struct SelectorItem {
|
|||||||
|
|
||||||
#[live]
|
#[live]
|
||||||
icon_walk: Walk,
|
icon_walk: Walk,
|
||||||
|
#[live]
|
||||||
|
label_walk: Walk,
|
||||||
|
#[layout]
|
||||||
|
layout: Layout,
|
||||||
|
|
||||||
#[rust]
|
#[rust]
|
||||||
selected: bool,
|
selected: bool,
|
||||||
@ -113,6 +141,9 @@ pub struct SelectorItem {
|
|||||||
id: usize,
|
id: usize,
|
||||||
#[live]
|
#[live]
|
||||||
pub text: ArcStringMut,
|
pub text: ArcStringMut,
|
||||||
|
|
||||||
|
#[rust]
|
||||||
|
pub keyboard_shift: f64,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Widget for SelectorItem {
|
impl Widget for SelectorItem {
|
||||||
@ -135,15 +166,29 @@ impl Widget for SelectorItem {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
fn draw_walk(&mut self, cx: &mut Cx2d, scope: &mut Scope, walk: Walk) -> DrawStep {
|
fn draw_walk(&mut self, cx: &mut Cx2d, scope: &mut Scope, walk: Walk) -> DrawStep {
|
||||||
self.draw_bg.begin(cx, walk, Layout::default());
|
self.begin(cx, self.walk);
|
||||||
|
self.draw_bg.begin(cx, self.walk, self.layout);
|
||||||
self.draw_icon.draw_walk(cx, self.icon_walk);
|
self.draw_icon.draw_walk(cx, self.icon_walk);
|
||||||
self.draw_label
|
|
||||||
.draw_walk(cx, walk, Align::default(), self.text.as_ref());
|
|
||||||
self.draw_bg.end(cx);
|
self.draw_bg.end(cx);
|
||||||
|
self.end(cx);
|
||||||
|
|
||||||
|
self.begin(cx, walk);
|
||||||
|
self.draw_label.draw_walk(cx, Walk::fit(), Align { x: 0.5, y: 0.5 }, self.text.as_ref());
|
||||||
|
self.end(cx);
|
||||||
DrawStep::done()
|
DrawStep::done()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl SelectorItem {}
|
impl SelectorItem {
|
||||||
|
fn begin(&mut self, cx: &mut Cx2d, walk: Walk) {
|
||||||
|
cx.begin_turtle(walk, self.layout.with_scroll(dvec2(0.,self.keyboard_shift)));
|
||||||
|
}
|
||||||
|
|
||||||
|
fn end(&mut self, cx: &mut Cx2d) {
|
||||||
|
cx.end_turtle_with_area(&mut self.area);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
impl LiveHook for SelectorItem {}
|
impl LiveHook for SelectorItem {}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user