Fri, 13 Jun 2025 21:37:00 +0200
add wrapper for sidebar and splitpane args
/* * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright 2025 Olaf Wintermann. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #include "args.h" #include <string.h> #include <stdlib.h> #include "../ui/container.h" /* ---------------------------- UiMenuItemArgs ---------------------------- */ UiMenuItemArgs* ui_menuitem_args_new(void) { UiMenuItemArgs *args = malloc(sizeof(UiMenuItemArgs)); memset(args, 0, sizeof(UiMenuItemArgs)); return args; } void ui_menuitem_args_set_label(UiMenuItemArgs *args, const char *label) { args->label = strdup(label); } void ui_menuitem_args_set_stockid(UiMenuItemArgs *args, const char *stockid) { args->stockid = strdup(stockid); } void ui_menuitem_args_set_icon(UiMenuItemArgs *args, const char *icon) { args->icon = strdup(icon); } void ui_menuitem_args_set_onclick(UiMenuItemArgs *args, ui_callback callback) { args->onclick = callback; } void ui_menuitem_args_set_onclickdata(UiMenuItemArgs *args, void *onclickdata) { args->onclickdata = onclickdata; } void ui_menuitem_args_free(UiMenuItemArgs *args) { free((void*)args->label); free((void*)args->stockid); free((void*)args->icon); free(args); } /* ---------------------------- UiMenuToggleItemArgs ---------------------------- */ UiMenuToggleItemArgs* ui_menutoggleitem_args_new(void) { UiMenuToggleItemArgs *args = malloc(sizeof(UiMenuToggleItemArgs)); memset(args, 0, sizeof(UiMenuToggleItemArgs)); return args; } void ui_menutoggleitem_args_set_label(UiMenuToggleItemArgs *args, const char *label) { args->label = strdup(label); } void ui_menutoggleitem_args_set_stockid(UiMenuToggleItemArgs *args, const char *stockid) { args->stockid = strdup(stockid); } void ui_menutoggleitem_args_set_icon(UiMenuToggleItemArgs *args, const char *icon) { args->icon = strdup(icon); } void ui_menutoggleitem_args_set_varname(UiMenuToggleItemArgs *args, const char *varname) { args->varname = strdup(varname); } void ui_menutoggleitem_args_set_onchange(UiMenuToggleItemArgs *args, ui_callback callback) { args->onchange = callback; } void ui_menutoggleitem_args_set_onchangedata(UiMenuToggleItemArgs *args, void *onclickdata) { args->onchangedata = onclickdata; } void ui_menutoggleitem_args_free(UiMenuToggleItemArgs *args) { free((void*)args->label); free((void*)args->stockid); free((void*)args->icon); free((void*)args->varname); free(args); } /* --------------------------- UiMenuItemListArgs --------------------------- */ UiMenuItemListArgs* ui_menuitemlist_args_new(void) { UiMenuItemListArgs *args = malloc(sizeof(UiMenuItemListArgs)); memset(args, 0, sizeof(UiMenuItemListArgs)); return args; } void ui_menuitemlist_args_set_varname(UiMenuItemListArgs *args, const char *varname) { args->varname = strdup(varname); } void ui_menuitemlist_args_set_getvalue(UiMenuItemListArgs *args, ui_getvaluefunc func) { args->getvalue = func; } void ui_menuitemlist_args_set_onselect(UiMenuItemListArgs *args, ui_callback callback) { args->onselect = callback; } void ui_menuitemlist_args_set_onselectdata(UiMenuItemListArgs *args, void *data){ args->onselectdata = data; } void ui_menuitemlist_args_set_addseparator(UiMenuItemListArgs *args, UiBool value) { args->addseparator = value; } void ui_menuitemlist_args_free(UiMenuItemListArgs *args){ free((void*)args->varname); free(args); } /* ---------------------------- UiContainerArgs ---------------------------- */ UiContainerArgs* ui_container_args_new(void) { UiContainerArgs *args = malloc(sizeof(UiContainerArgs)); memset(args, 0, sizeof(UiContainerArgs)); return args; } void ui_container_args_set_fill(UiContainerArgs *args, UiBool fill) { args->fill = fill ? UI_ON : UI_OFF; } void ui_container_args_set_hexpand(UiContainerArgs *args, UiBool value) { args->hexpand = value; } void ui_container_args_set_vexpand(UiContainerArgs *args, UiBool value) { args->vexpand = value; } void ui_container_args_set_hfill(UiContainerArgs *args, UiBool value) { args->hfill = value; } void ui_container_args_set_vfill(UiContainerArgs *args, UiBool value) { args->vfill = value; } void ui_container_args_set_override_defaults(UiContainerArgs *args, UiBool value) { args->override_defaults = value; } void ui_container_args_set_colspan(UiContainerArgs *args, int colspan) { args->colspan = colspan; } void ui_container_args_set_rowspan(UiContainerArgs *args, int rowspan) { args->rowspan = rowspan; } void ui_container_args_set_def_hexpand(UiContainerArgs *args, UiBool value) { args->def_hexpand = value; } void ui_container_args_set_def_vexpand(UiContainerArgs *args, UiBool value) { args->def_vexpand = value; } void ui_container_args_set_def_hfill(UiContainerArgs *args, UiBool value) { args->def_hfill = value; } void ui_container_args_set_def_vfill(UiContainerArgs *args, UiBool value) { args->def_vfill = value; } void ui_container_args_set_name(UiContainerArgs *args, const char *name) { args->name = strdup(name); } void ui_container_args_set_style_class(UiContainerArgs *args, const char *classname) { args->style_class = strdup(classname); } void ui_container_args_set_margin(UiContainerArgs *args, int value) { args->margin = value; } void ui_container_args_set_spacing(UiContainerArgs *args, int value) { args->spacing = value; } void ui_container_args_set_columnspacing(UiContainerArgs *args, int value) { args->columnspacing = value; } void ui_container_args_set_rowspacing(UiContainerArgs *args, int value) { args->rowspacing = value; } void ui_container_args_free(UiContainerArgs *args) { free((void*)args->name); free((void*)args->style_class); free(args); } /* ------------------------------- UiFrameArgs ------------------------------*/ UiFrameArgs* ui_frame_args_new(void) { UiFrameArgs *args = malloc(sizeof(UiFrameArgs)); memset(args, 0, sizeof(UiContainerArgs)); return args; } void ui_frame_args_set_fill(UiFrameArgs *args, UiBool fill) { args->fill = fill ? UI_ON : UI_OFF; } void ui_frame_args_set_hexpand(UiFrameArgs *args, UiBool value) { args->hexpand = value; } void ui_frame_args_set_vexpand(UiFrameArgs *args, UiBool value) { args->vexpand = value; } void ui_frame_args_set_hfill(UiFrameArgs *args, UiBool value) { args->hfill = value; } void ui_frame_args_set_vfill(UiFrameArgs *args, UiBool value) { args->vfill = value; } void ui_frame_args_set_override_defaults(UiFrameArgs *args, UiBool value) { args->override_defaults = value; } void ui_frame_args_set_colspan(UiFrameArgs *args, int colspan) { args->colspan = colspan; } void ui_frame_args_set_rowspan(UiFrameArgs *args, int rowspan) { args->rowspan = rowspan; } void ui_frame_args_set_name(UiFrameArgs *args, const char *name) { args->name = strdup(name); } void ui_frame_args_set_style_class(UiFrameArgs *args, const char *classname) { args->style_class = strdup(classname); } void ui_frame_args_set_margin(UiFrameArgs *args, int value) { args->margin = value; } void ui_frame_args_set_spacing(UiFrameArgs *args, int value) { args->spacing = value; } void ui_frame_args_set_columnspacing(UiFrameArgs *args, int value) { args->columnspacing = value; } void ui_frame_args_set_rowspacing(UiFrameArgs *args, int value) { args->rowspacing = value; } void ui_frame_args_set_expanded(UiFrameArgs *args, UiBool value) { args->isexpanded = value; } void ui_frame_args_set_label(UiFrameArgs *args, const char *label) { args->label = strdup(label); } void ui_frame_args_free(UiFrameArgs *args) { free((void*)args->name); free((void*)args->style_class); free((void*)args->label); free(args); } /* ---------------------------- UiSidebarArgs -------------------------------*/ UiSidebarArgs* ui_sidebar_args_new(void) { UiSidebarArgs *args = malloc(sizeof(UiSidebarArgs)); memset(args, 0, sizeof(UiSidebarArgs)); return args; } void ui_sidebar_args_set_name(UiSidebarArgs *args, const char *name) { args->name = strdup(name); } void ui_sidebar_args_set_style_class(UiSidebarArgs *args, const char *classname) { args->style_class = strdup(classname); } void ui_sidebar_args_set_margin(UiSidebarArgs *args, int value) { args->margin = value; } void ui_sidebar_args_set_spacing(UiSidebarArgs *args, int value) { args->spacing = value; } void ui_sidebar_args_free(UiSidebarArgs *args) { free((void*)args->name); free((void*)args->style_class); free(args); } /* --------------------------- UiSplitPaneArgs ------------------------------*/ UiSplitPaneArgs* ui_splitpane_args_new(void) { UiSplitPaneArgs *args = malloc(sizeof(UiSplitPaneArgs)); memset(args, 0, sizeof(UiSplitPaneArgs)); return args; } void ui_splitpane_args_set_fill(UiSplitPaneArgs *args, UiBool fill) { args->fill = fill ? UI_ON : UI_OFF; } void ui_splitpane_args_set_hexpand(UiSplitPaneArgs *args, UiBool value) { args->hexpand = value; } void ui_splitpane_args_set_vexpand(UiSplitPaneArgs *args, UiBool value) { args->vexpand = value; } void ui_splitpane_args_set_hfill(UiSplitPaneArgs *args, UiBool value) { args->hfill = value; } void ui_splitpane_args_set_vfill(UiSplitPaneArgs *args, UiBool value) { args->vfill = value; } void ui_splitpane_args_set_override_defaults(UiSplitPaneArgs *args, UiBool value) { args->override_defaults = value; } void ui_splitpane_args_set_colspan(UiSplitPaneArgs *args, int colspan) { args->colspan = colspan; } void ui_splitpane_args_set_rowspan(UiSplitPaneArgs *args, int rowspan) { args->rowspan = rowspan; } void ui_splitpane_args_set_name(UiSplitPaneArgs *args, const char *name) { args->name = strdup(name); } void ui_splitpane_args_set_style_class(UiSplitPaneArgs *args, const char *classname) { args->style_class = strdup(classname); } void ui_splitpane_args_set_margin(UiSplitPaneArgs *args, int value) { args->margin = value; } void ui_splitpane_args_set_spacing(UiSplitPaneArgs *args, int value) { args->spacing = value; } void ui_splitpane_args_set_columnspacing(UiSplitPaneArgs *args, int value) { args->columnspacing = value; } void ui_splitpane_args_set_rowspacing(UiSplitPaneArgs *args, int value) { args->rowspacing = value; } void ui_splitpane_args_set_initial_position(UiSplitPaneArgs *args, int pos) { args->initial_position = pos; } void ui_splitpane_args_set_varname(UiSplitPaneArgs *args, const char *varname) { args->varname = strdup(varname); } void ui_splitpane_args_set_value(UiSplitPaneArgs *args, UiInteger *value) { args->value = value; } void ui_splitpane_args_set_max_panes(UiSplitPaneArgs *args, int max) { args->max_panes = max; } void ui_splitpane_args_free(UiSplitPaneArgs *args) { free((void*)args->name); free((void*)args->style_class); free((void*)args->varname); free(args); } /* ---------------------------- UiButtonArgs -------------------------------*/ UiButtonArgs* ui_button_args_new(void) { UiButtonArgs *args = malloc(sizeof(UiButtonArgs)); memset(args, 0, sizeof(UiButtonArgs)); return args; } void ui_button_args_set_fill(UiButtonArgs *args, UiBool fill) { args->fill = fill ? UI_ON : UI_OFF; } void ui_button_args_set_hexpand(UiButtonArgs *args, UiBool value) { args->hexpand = value; } void ui_button_args_set_vexpand(UiButtonArgs *args, UiBool value) { args->vexpand = value; } void ui_button_args_set_hfill(UiButtonArgs *args, UiBool value) { args->hfill = value; } void ui_button_args_set_vfill(UiButtonArgs *args, UiBool value) { args->vfill = value; } void ui_button_args_set_override_defaults(UiButtonArgs *args, UiBool value) { args->override_defaults = value; } void ui_button_args_set_colspan(UiButtonArgs *args, int colspan) { args->colspan = colspan; } void ui_button_args_set_rowspan(UiButtonArgs *args, int rowspan) { args->rowspan = rowspan; } void ui_button_args_set_name(UiButtonArgs *args, const char *name) { args->name = strdup(name); } void ui_button_args_set_style_class(UiButtonArgs *args, const char *classname) { args->style_class = strdup(classname); } void ui_button_args_set_label(UiButtonArgs *args, const char *label){ args->label = strdup(label); } void ui_button_args_set_stockid(UiButtonArgs *args, const char *stockid){ args->stockid = strdup(stockid); } void ui_button_args_set_icon(UiButtonArgs *args, const char *icon){ args->icon = strdup(icon); } void ui_button_args_set_labeltype(UiButtonArgs *args, int labeltype){ args->labeltype = labeltype; } void ui_button_args_set_onclick(UiButtonArgs *args, ui_callback callback){ args->onclick = callback; } void ui_button_args_set_onclickdata(UiButtonArgs *args, void *onclickdata){ args->onclickdata = onclickdata; } void ui_button_args_set_groups(UiButtonArgs *args, int *groups){ // TODO } void ui_button_args_free(UiButtonArgs *args) { free((void*)args->name); free((void*)args->style_class); free((void*)args->label); free((void*)args->stockid); free((void*)args->icon); free((void*)args->groups); free(args); } /* ------------------------- UiToggleArgs ----------------------------*/ UiToggleArgs* ui_toggle_args_new(void) { UiToggleArgs *args = malloc(sizeof(UiToggleArgs)); memset(args, 0, sizeof(UiToggleArgs)); return args; } void ui_toggle_args_set_fill(UiToggleArgs *args, UiBool fill) { args->fill = fill ? UI_ON : UI_OFF; } void ui_toggle_args_set_hexpand(UiToggleArgs *args, UiBool value) { args->hexpand = value; } void ui_toggle_args_set_vexpand(UiToggleArgs *args, UiBool value) { args->vexpand = value; } void ui_toggle_args_set_hfill(UiToggleArgs *args, UiBool value) { args->hfill = value; } void ui_toggle_args_set_vfill(UiToggleArgs *args, UiBool value) { args->vfill = value; } void ui_toggle_args_set_override_defaults(UiToggleArgs *args, UiBool value) { args->override_defaults = value; } void ui_toggle_args_set_colspan(UiToggleArgs *args, int colspan) { args->colspan = colspan; } void ui_toggle_args_set_rowspan(UiToggleArgs *args, int rowspan) { args->rowspan = rowspan; } void ui_toggle_args_set_name(UiToggleArgs *args, const char *name) { args->name = strdup(name); } void ui_toggle_args_set_style_class(UiToggleArgs *args, const char *classname) { args->style_class = strdup(classname); } void ui_toggle_args_set_label(UiToggleArgs *args, const char *label){ args->label = strdup(label); } void ui_toggle_args_set_stockid(UiToggleArgs *args, const char *stockid){ args->stockid = strdup(stockid); } void ui_toggle_args_set_icon(UiToggleArgs *args, const char *icon){ args->icon = strdup(icon); } void ui_toggle_args_set_labeltype(UiToggleArgs *args, int labeltype){ args->labeltype = labeltype; } void ui_toggle_args_set_onchange(UiToggleArgs *args, ui_callback callback){ args->onchange = callback; } void ui_toggle_args_set_onchangedata(UiToggleArgs *args, void *onchangedata){ args->onchangedata = onchangedata; } void ui_toggle_args_set_varname(UiToggleArgs *args, const char *varname) { args->varname = strdup(varname); } void ui_toggle_args_set_value(UiToggleArgs *args, UiInteger *value) { args->value = value; } void ui_toggle_args_set_enablegroup(UiToggleArgs *args, int group) { args->enable_group = group; } void ui_toggle_args_set_groups(UiToggleArgs *args, int *groups){ // TODO } void ui_toggle_args_free(UiToggleArgs *args) { free((void*)args->name); free((void*)args->style_class); free((void*)args->label); free((void*)args->stockid); free((void*)args->icon); free((void*)args->varname); free((void*)args->groups); free(args); }