static void Widget_get_parent (LIScrArgs* args) { LIWdgWidget* self = args->self; if (self->parent != NULL) liscr_args_seti_data (args, self->parent->script); }
static void Widgets_find_widget (LIScrArgs* args) { int x; int y; LIExtModule* module; LIWdgWidget* widget; LIMatVector vector; LIScrData* data; if (!liscr_args_gets_vector (args, "point", &vector) && !liscr_args_geti_vector (args, 0, &vector)) { SDL_GetMouseState (&x, &y); vector = limat_vector_init (x, y, 0.0f); } module = liscr_script_get_userdata (args->script, LIEXT_SCRIPT_WIDGETS); widget = liwdg_manager_find_widget_by_point (module->widgets, (int) vector.x, (int) vector.y); if (widget == NULL) return; data = liwdg_widget_get_script (widget); if (data == NULL) return; liscr_args_seti_data (args, data); }
static void Widgets_get_focused_widget (LIScrArgs* args) { int x; int y; LIExtModule* module; LIWdgWidget* widget; LIScrData* data; SDL_GetMouseState (&x, &y); module = liscr_script_get_userdata (args->script, LIEXT_SCRIPT_WIDGETS); widget = liwdg_manager_find_widget_by_point (module->widgets, x, y); if (widget == NULL) return; data = liwdg_widget_get_script (widget); if (data == NULL) return; liscr_args_seti_data (args, data); }