#pragma once
/*
 *  $Id: sanity.h 30028 2026-06-09 13:45:30Z yeti-dn $
 *  Copyright (C) 2024 David Necas (Yeti).
 *  E-mail: yeti@gwyddion.net.
 *
 *  This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public
 *  License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any
 *  later version.
 *
 *  This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
 *  warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
 *  details.
 *
 *  You should have received a copy of the GNU General Public License along with this program; if not, write to the
 *  Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 */

#ifndef __GWYAPP_SANITY_H__
#define __GWYAPP_SANITY_H__

#include <gtk/gtk.h>
#include <libgwyui/utils.h>

G_BEGIN_DECLS

/* I want icon names validated *compile time*!  Why in hell can't GTK+ provide macros for the standard icon names to
 * make sure valid names are used?
 * XXX: We may actually turn this to an enum and have our function which returns the icon (if it exists) try
 * multiple things like gtk-close and dialog-close. Some of them exist only in Mint or something. Some have reasonable
 * variants in hicolor, but called differently. It is a mess. */

/* These generally do not exist and we pack them. */
#define GWY_ICON_GTK_APPLY         "gtk-apply"
#define GWY_ICON_GTK_CANCEL        "gtk-cancel"
#define GWY_ICON_GTK_OK            "gtk-ok"
#define GWY_ICON_GTK_EDIT          "gtk-edit"
#define GWY_ICON_GTK_QUIT          "gtk-quit"

/* These are kind of standard and probably exist. */
#define GWY_ICON_GTK_ABOUT         "help-about"
#define GWY_ICON_GTK_ADD           "list-add"
#define GWY_ICON_GTK_CLEAR         "edit-clear"
#define GWY_ICON_GTK_CLOSE         "window-close"
#define GWY_ICON_GTK_COPY          "edit-copy"
#define GWY_ICON_GTK_DELETE        "edit-delete"
#define GWY_ICON_GTK_EXECUTE       "system-run"
#define GWY_ICON_GTK_FIND          "edit-find"
#define GWY_ICON_GTK_GO_DOWN       "go-down"
#define GWY_ICON_GTK_GO_UP         "go-up"
#define GWY_ICON_GTK_HELP          "help-contents"
#define GWY_ICON_GTK_MISSING_IMAGE "image-missing"
#define GWY_ICON_GTK_NEW           "document-new"
#define GWY_ICON_GTK_OPEN          "document-open"
#define GWY_ICON_GTK_REDO          "edit-redo"
#define GWY_ICON_GTK_REMOVE        "list-remove"
#define GWY_ICON_GTK_RESET         "edit-reset"
#define GWY_ICON_GTK_SAVE_AS       "document-save-as"
#define GWY_ICON_GTK_SAVE          "document-save"
#define GWY_ICON_GTK_UNDO          "edit-undo"

/* But we may simply provide our own icon set. */

G_END_DECLS

#endif

/* vim: set cin columns=120 tw=118 et ts=4 sw=4 cino=>1s,e0,n0,f0,{0,}0,^0,\:1s,=0,g1s,h0,t0,+1s,c3,(0,u0 : */
