Tue, 29 Oct 2024 11:52:01 +0100
improve window close handling
/* * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright 2017 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. */ /* * display widgets without user input */ #ifndef UI_DISPLAY_H #define UI_DISPLAY_H #include "toolkit.h" #ifdef __cplusplus extern "C" { #endif enum UiAlignment { UI_ALIGN_DEFAULT = 0, UI_ALIGN_LEFT, UI_ALIGN_RIGHT, UI_ALIGN_CENTER }; typedef enum UiAlignment UiAlignment; enum UiLabelStyle { UI_LABEL_STYLE_DEFAULT = 0, UI_LABEL_STYLE_TITLE, UI_LABEL_STYLE_SUBTITLE, UI_LABEL_STYLE_DIM }; typedef enum UiLabelStyle UiLabelStyle; typedef struct UiLabelArgs { UiTri fill; UiBool hexpand; UiBool vexpand; int colspan; int rowspan; const char* label; UiAlignment align; UiLabelStyle style; UiString* value; const char* varname; } UiLabelArgs; typedef struct UiProgressbarArgs { UiTri fill; UiBool hexpand; UiBool vexpand; int colspan; int rowspan; int width; double min; double max; UiDouble* value; const char* varname; } UiProgressbarArgs; typedef struct UiProgressbarSpinnerArgs { UiTri fill; UiBool hexpand; UiBool vexpand; int colspan; int rowspan; UiInteger* value; const char* varname; } UiProgressbarSpinnerArgs; /* label widgets */ #define ui_label(obj, ...) ui_label_create(obj, (UiLabelArgs) { __VA_ARGS__ }) #define ui_llabel(obj, ...) ui_llabel_create(obj, (UiLabelArgs) { __VA_ARGS__ }) #define ui_rlabel(obj, ...) ui_rlabel_create(obj, (UiLabelArgs) { __VA_ARGS__ }) UIEXPORT UIWIDGET ui_label_create(UiObject* obj, UiLabelArgs args); UIEXPORT UIWIDGET ui_llabel_create(UiObject* obj, UiLabelArgs args); UIEXPORT UIWIDGET ui_rlabel_create(UiObject* obj, UiLabelArgs args); UIWIDGET ui_space_deprecated(UiObject *obj); UIWIDGET ui_separator_deprecated(UiObject *obj); /* progress bar/spinner */ #define ui_progressbar(obj, ...) ui_progressbar_create(obj, (UiProgressbarArgs) { __VA_ARGS__ } ) #define ui_progressspinner(obj, ...) ui_progressspinner_create(obj, (UiProgressbarSpinnerArgs) { __VA_ARGS__ } ) UIEXPORT UIWIDGET ui_progressbar_create(UiObject *obj, UiProgressbarArgs args); UIEXPORT UIWIDGET ui_progressspinner_create(UiObject* obj, UiProgressbarSpinnerArgs args); #ifdef __cplusplus } #endif #endif /* UI_DISPLAY_H */