widget.h 628 B

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