so I am trying to create Qt's qml, but from scratch. for learning purposes but also I think it would be cool if it was an option to use qml without Qt
This is the qml, that produces this output:
Item {
Rectangle {
x: red.x - 5
y: red.y - 5
width: 150
height: 100
color: "#333"
}
Rectangle {
id: red
x: 55
y: 55
width: 150
height: 100
color: "#a22"
MouseArea {
id: red_mouse_area
x: red.x
y: red.y
width: red.width
height: red.height
}
}
Text {
text: "Hello World!"
x: red.x
y: red.y - height - 5
height: 15
}
}
the c code only sets the red rectangle's location, the others follow automatically because the qml tells them to do so 😄
void
an_event_happened(void* user_data, struct event_t e)
{
struct app_state_t* app_state = (struct app_state_t*)user_data;
size_t red = engine_get_object_by_id(lol_engine(app_state->lol), "red");
int64_t red_w = engine_object_width(lol_engine(app_state->lol), red);
int64_t red_h = engine_object_height(lol_engine(app_state->lol), red);
engine_object_set_x(lol_engine(app_state->lol), red, e.mouse_x - red_w/2);
engine_object_set_y(lol_engine(app_state->lol), red, e.mouse_y - red_h/2);
}