implement operator overloading for rects
This commit is contained in:
parent
335624fcbe
commit
3d7be2a2df
@ -49,7 +49,7 @@ fn ElemEvents? Ctx.button_id(&ctx, Id id, String label, String icon)
|
|||||||
.max = (short)max(min_size, left_pad + icon_size.w + text_size.height.max + right_pad),
|
.max = (short)max(min_size, left_pad + icon_size.w + text_size.height.max + right_pad),
|
||||||
};
|
};
|
||||||
// add style border and padding
|
// add style border and padding
|
||||||
elem.layout.content_offset = style.margin.add(style.border).add(style.padding);
|
elem.layout.content_offset = style.margin + style.border + style.padding;
|
||||||
|
|
||||||
elem.layout.children.w = elem.layout.w;
|
elem.layout.children.w = elem.layout.w;
|
||||||
elem.layout.children.h = elem.layout.h;
|
elem.layout.children.h = elem.layout.h;
|
||||||
@ -83,12 +83,12 @@ fn ElemEvents? Ctx.button_id(&ctx, Id id, String label, String icon)
|
|||||||
s.bg = s.accent;
|
s.bg = s.accent;
|
||||||
}
|
}
|
||||||
|
|
||||||
Rect border_bounds = elem.bounds.pad(style.margin);
|
ctx.push_rect(elem.bounds.pad(style.margin), parent.div.z_index, &s)!;
|
||||||
ctx.push_rect(border_bounds, parent.div.z_index, &s)!;
|
|
||||||
if (icon != "") {
|
if (icon != "") {
|
||||||
ctx.push_sprite(icon_bounds, sprite.uv(), ctx.sprite_atlas.id, parent.div.z_index, type: sprite.type)!;
|
ctx.push_sprite(icon_bounds, sprite.uv(), ctx.sprite_atlas.id, parent.div.z_index, type: sprite.type)!;
|
||||||
}
|
}
|
||||||
if (label != "") {
|
if (label != "") {
|
||||||
|
ctx.push_rect(text_bounds, parent.div.z_index, &&{.bg=0xff0000abu.@to_rgba()})!;
|
||||||
ctx.push_string(text_bounds, label, parent.div.z_index, style.fg)!;
|
ctx.push_string(text_bounds, label, parent.div.z_index, style.fg)!;
|
||||||
}
|
}
|
||||||
return elem.events;
|
return elem.events;
|
||||||
|
@ -78,7 +78,7 @@ fn void? Ctx.div_begin_id(&ctx,
|
|||||||
.h = height,
|
.h = height,
|
||||||
.dir = dir,
|
.dir = dir,
|
||||||
.anchor = anchor,
|
.anchor = anchor,
|
||||||
.content_offset = style.margin.add(style.border).add(style.padding),
|
.content_offset = style.margin + style.border + style.padding,
|
||||||
};
|
};
|
||||||
|
|
||||||
// update parent grow children
|
// update parent grow children
|
||||||
|
@ -55,7 +55,7 @@ macro Rect containing_rect(Rect a, Rect b)
|
|||||||
macro bool Rect.is_null(Rect r) => r.x == 0 && r.y == 0 && r.x == 0 && r.w == 0;
|
macro bool Rect.is_null(Rect r) => r.x == 0 && r.y == 0 && r.x == 0 && r.w == 0;
|
||||||
|
|
||||||
// returns the element-wise addition of r1 and r2
|
// returns the element-wise addition of r1 and r2
|
||||||
macro Rect Rect.add(Rect r1, Rect r2)
|
macro Rect Rect.add(Rect r1, Rect r2) @operator_s(+)
|
||||||
{
|
{
|
||||||
return {
|
return {
|
||||||
.x = r1.x + r2.x,
|
.x = r1.x + r2.x,
|
||||||
@ -66,7 +66,7 @@ macro Rect Rect.add(Rect r1, Rect r2)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// returns the element-wise subtraction of r1 and r2
|
// returns the element-wise subtraction of r1 and r2
|
||||||
macro Rect Rect.sub(Rect r1, Rect r2)
|
macro Rect Rect.sub(Rect r1, Rect r2) @operator_s(-)
|
||||||
{
|
{
|
||||||
return {
|
return {
|
||||||
.x = r1.x - r2.x,
|
.x = r1.x - r2.x,
|
||||||
@ -77,7 +77,7 @@ macro Rect Rect.sub(Rect r1, Rect r2)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// returns the element-wise multiplication of r1 and r2
|
// returns the element-wise multiplication of r1 and r2
|
||||||
macro Rect Rect.mul(Rect r1, Rect r2)
|
macro Rect Rect.mul(Rect r1, Rect r2) @operator_s(*)
|
||||||
{
|
{
|
||||||
return {
|
return {
|
||||||
.x = r1.x * r2.x,
|
.x = r1.x * r2.x,
|
||||||
|
Loading…
Reference in New Issue
Block a user