diff -r 77254bd6dccb -r c3dfcb8f0be7 ui/ui/button.h --- a/ui/ui/button.h Sun Jul 20 22:04:39 2025 +0200 +++ b/ui/ui/button.h Sun Aug 24 15:24:16 2025 +0200 @@ -35,6 +35,12 @@ extern "C" { #endif +enum UiLinkType { + UI_LINK_TEXT = 0, + UI_LINK_BUTTON +}; +typedef enum UiLinkType UiLinkType; + typedef struct UiButtonArgs { UiBool fill; UiBool hexpand; @@ -81,21 +87,59 @@ const int* groups; } UiToggleArgs; + +typedef struct UiLinkButtonArgs { + UiBool fill; + UiBool hexpand; + UiBool vexpand; + UiBool hfill; + UiBool vfill; + UiBool override_defaults; + int colspan; + int rowspan; + const char *name; + const char *style_class; + + const char *label; + const char *uri; + UiString *value; + const char *varname; + ui_callback onclick; + void *onclickdata; + UiBool nofollow; + UiLinkType type; + + const int* groups; +} UiLinkButtonArgs; #define ui_button(obj, ...) ui_button_create(obj, &(UiButtonArgs){ __VA_ARGS__ } ) #define ui_togglebutton(obj, ...) ui_togglebutton_create(obj, &(UiToggleArgs){ __VA_ARGS__ } ) #define ui_checkbox(obj, ...) ui_checkbox_create(obj, &(UiToggleArgs){ __VA_ARGS__ } ) #define ui_switch(obj, ...) ui_switch_create(obj, &(UiToggleArgs){ __VA_ARGS__ } ) #define ui_radiobutton(obj, ...) ui_radiobutton_create(obj, &(UiToggleArgs){ __VA_ARGS__ } ) +#define ui_linkbutton(obj, ...) ui_linkbutton_create(obj, &(UiLinkButtonArgs){ __VA_ARGS__ }) -UIEXPORT UIWIDGET ui_button_create(UiObject* obj, UiButtonArgs *args); -UIEXPORT UIWIDGET ui_togglebutton_create(UiObject* obj, UiToggleArgs *args); -UIEXPORT UIWIDGET ui_checkbox_create(UiObject* obj, UiToggleArgs *args); -UIEXPORT UIWIDGET ui_switch_create(UiObject* obj, UiToggleArgs *args); -UIEXPORT UIWIDGET ui_radiobutton_create(UiObject* obj, UiToggleArgs *args); +UIEXPORT UIWIDGET ui_button_create(UiObject *obj, UiButtonArgs *args); +UIEXPORT UIWIDGET ui_togglebutton_create(UiObject *obj, UiToggleArgs *args); +UIEXPORT UIWIDGET ui_checkbox_create(UiObject *obj, UiToggleArgs *args); +UIEXPORT UIWIDGET ui_switch_create(UiObject *obj, UiToggleArgs *args); +UIEXPORT UIWIDGET ui_radiobutton_create(UiObject *obj, UiToggleArgs *args); +UIEXPORT UIWIDGET ui_linkbutton_create(UiObject *obj, UiLinkButtonArgs *args); + +UIEXPORT void ui_button_set_label(UIWIDGET button, const char *label); +UIEXPORT void ui_button_set_icon(UIWIDGET button, const char *icon); +UIEXPORT void ui_linkbutton_value_set(UiString *str, const char *label, const char *uri); +UIEXPORT void ui_linkbutton_value_set_label(UiString *str, const char *label); +UIEXPORT void ui_linkbutton_value_set_uri(UiString *str, const char *uri); +UIEXPORT void ui_linkbutton_value_set_visited(UiString *str, UiBool visited); - +UIEXPORT void ui_linkbutton_set_label(UIWIDGET button, const char *label); +UIEXPORT void ui_linkbutton_set_uri(UIWIDGET button, const char *label); +UIEXPORT void ui_linkbutton_set_visited(UIWIDGET button, UiBool visited); +UIEXPORT char* ui_linkbutton_get_label(UIWIDGET button); +UIEXPORT char* ui_linkbutton_get_uri(UIWIDGET button); +UIEXPORT UiBool ui_linkbutton_get_visited(UIWIDGET button); #ifdef __cplusplus }