ui/common/args.c

Sat, 07 Jun 2025 08:25:00 +0200

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Sat, 07 Jun 2025 08:25:00 +0200
changeset 609
1dbfc944a773
parent 601
9f67b662f694
child 610
7255f59f339a
permissions
-rw-r--r--

add wrapper functions for menuitem 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);
}

/* ---------------------------- 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_rolspan(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_rolspan(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);
}


/* ---------------------------- UiButtonArgs -------------------------------*/

UiButtonArgs* ui_button_args_new(void) {
    UiButtonArgs *args = malloc(sizeof(UiButtonArgs));
    memset(args, 0, sizeof(UiContainerArgs));
    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_rolspan(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(UiContainerArgs));
    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_rolspan(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);
}

mercurial