renamed libraries
This commit is contained in:
parent
0531f58a56
commit
de64746fdf
2
TODO
2
TODO
@ -28,6 +28,8 @@ to maintain focus until mouse release (fix scroll bars)
|
|||||||
[ ] gif support?
|
[ ] gif support?
|
||||||
[ ] layout_set_max_rows() and layout_set_max_columns()
|
[ ] layout_set_max_rows() and layout_set_max_columns()
|
||||||
[ ] Maybe SDF sprites??
|
[ ] Maybe SDF sprites??
|
||||||
|
[ ] Stylesheets and stylesheet import
|
||||||
|
[ ] use SDF to draw anti-aliased rounded rectangles https://zed.dev/blog/videogame
|
||||||
|
|
||||||
## Layout
|
## Layout
|
||||||
|
|
||||||
|
Binary file not shown.
16
src/main.c3
16
src/main.c3
@ -113,18 +113,6 @@ fn int main(String[] args)
|
|||||||
while (!rl::windowShouldClose()) {
|
while (!rl::windowShouldClose()) {
|
||||||
clock.mark();
|
clock.mark();
|
||||||
|
|
||||||
/*
|
|
||||||
KeyboardKey k;
|
|
||||||
do {
|
|
||||||
k = rl::get_key_pressed();
|
|
||||||
if (!k) { break; }
|
|
||||||
if (rl::is_key_down(k)) { io::print("down "); }
|
|
||||||
if (rl::is_key_pressed(k)) { io::print("pressed "); }
|
|
||||||
if (rl::is_key_released(k)) { io::print("released "); }
|
|
||||||
io::printfn("%s", k);
|
|
||||||
} while (k != 0);
|
|
||||||
*/
|
|
||||||
|
|
||||||
ugui::ModKeys mod;
|
ugui::ModKeys mod;
|
||||||
mod.rctrl = rl::isKeyDown(rl::KEY_RIGHT_CONTROL);
|
mod.rctrl = rl::isKeyDown(rl::KEY_RIGHT_CONTROL);
|
||||||
mod.lctrl = rl::isKeyDown(rl::KEY_LEFT_CONTROL);
|
mod.lctrl = rl::isKeyDown(rl::KEY_LEFT_CONTROL);
|
||||||
@ -194,6 +182,10 @@ fn int main(String[] args)
|
|||||||
|
|
||||||
ui.layout_next_column()!!;
|
ui.layout_next_column()!!;
|
||||||
ui.button_label("Continua!")!!;
|
ui.button_label("Continua!")!!;
|
||||||
|
|
||||||
|
ui.layout_next_row()!!;
|
||||||
|
static bool check;
|
||||||
|
ui.checkbox("check1", "", ugui::Point{}, &check)!!;
|
||||||
|};
|
|};
|
||||||
ui.draw_sprite("sprite1", "tux")!!;
|
ui.draw_sprite("sprite1", "tux")!!;
|
||||||
ui.div_end()!!;
|
ui.div_end()!!;
|
||||||
|
@ -8,6 +8,8 @@ struct ElemButton {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// draw a button, return the events on that button
|
// draw a button, return the events on that button
|
||||||
|
// FIXME: "state" should be renamed "active" to toggle between an usable button and
|
||||||
|
// an inactive (greyed-out) button
|
||||||
fn ElemEvents! Ctx.button(&ctx, String label, Rect size, bool state = false)
|
fn ElemEvents! Ctx.button(&ctx, String label, Rect size, bool state = false)
|
||||||
{
|
{
|
||||||
Id id = ctx.gen_id(label)!;
|
Id id = ctx.gen_id(label)!;
|
||||||
@ -83,3 +85,41 @@ fn ElemEvents! Ctx.button_label(&ctx, String label, Rect size = Rect{0,0,short.m
|
|||||||
|
|
||||||
return elem.events;
|
return elem.events;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FIXME: this should be inside the style
|
||||||
|
const ushort DEFAULT_CHECKBOX_SIZE = 16;
|
||||||
|
fn void! Ctx.checkbox(&ctx, String label, String description, Point off, bool* state)
|
||||||
|
{
|
||||||
|
Id id = ctx.gen_id(label)!;
|
||||||
|
|
||||||
|
Elem *parent = ctx.get_parent()!;
|
||||||
|
Elem *elem = ctx.get_elem(id)!;
|
||||||
|
// add it to the tree
|
||||||
|
ctx.tree.add(id, ctx.active_div)!;
|
||||||
|
|
||||||
|
// FIXME: for now checkboxes and buttons have no members so the element types
|
||||||
|
// can be the same
|
||||||
|
if (elem.flags.is_new) {
|
||||||
|
elem.type = ETYPE_BUTTON;
|
||||||
|
} else if (elem.type != ETYPE_BUTTON) {
|
||||||
|
return UgError.WRONG_ELEMENT_TYPE?;
|
||||||
|
}
|
||||||
|
|
||||||
|
Rect size = {off.x, off.y, DEFAULT_CHECKBOX_SIZE, DEFAULT_CHECKBOX_SIZE};
|
||||||
|
elem.bounds = ctx.position_element(parent, size, true);
|
||||||
|
|
||||||
|
// if the bounds are null the element is outside the div view,
|
||||||
|
// no interaction should occur so just return
|
||||||
|
if (elem.bounds.is_null()) return;
|
||||||
|
|
||||||
|
Color col = 0x0000ffffu.to_rgba();
|
||||||
|
elem.events = ctx.get_elem_events(elem);
|
||||||
|
if (state) {
|
||||||
|
col = 0xff0000ffu.to_rgba();
|
||||||
|
} else if (ctx.elem_focus(elem) || elem.events.mouse_hover) {
|
||||||
|
col = 0xff00ffffu.to_rgba();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Draw the button
|
||||||
|
ctx.push_rect(elem.bounds, col, do_border: true, do_radius: true)!;
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user