widget.h 662 B

12345678910111213141516171819202122
  1. #pragma once
  2. #include <input/input.h>
  3. typedef struct GUI GUI;
  4. typedef struct Canvas Canvas;
  5. typedef struct Widget Widget;
  6. typedef void (*WidgetDrawCallback)(Canvas* canvas, void* context);
  7. typedef void (*WidgetInputCallback)(InputEvent* event, void* context);
  8. Widget* widget_alloc();
  9. void widget_free(Widget* widget);
  10. void widget_enabled_set(Widget* widget, bool enabled);
  11. bool widget_is_enabled(Widget* widget);
  12. void widget_draw_callback_set(Widget* widget, WidgetDrawCallback callback, void* context);
  13. void widget_input_callback_set(Widget* widget, WidgetInputCallback callback, void* context);
  14. // emit update signal
  15. void widget_update(Widget* widget);