/* * The MIT License (MIT) * * Copyright (c) 2023 Aggelos Tselios * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to * deal in the Software without restriction, including without limitation the * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or * sell copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS * IN THE SOFTWARE. */ #ifndef __nvdialog_h__ #define __nvdialog_h__ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ /** * @mainpage * Documentation * * This manual documents the NvDialog library, a dialog box library written in C * that uses the system theme. Instructions on how to build the library can be * found in @ref building "this page". * * To get started, you should read about @ref NvdDialogBox, which is a simple dialog * box with nothing special in it. NvDialog also provides the following features as part * of its API\: * - @ref NvdAboutDialog * - @ref NvdQuestionBox * - @ref NvdFileDialog * * # Examples * If you want to check out some code before using this library in your * project, this is a simple example: (Taken directly from the [GitHub README](https://github.com/AndroGR/nvdialog)). * @code * #include * int main(int argc, char** argv) { * nvd_init(argv[0]); * NvdDialogBox *dialog = nvd_dialog_box_new("Dialog Title", "Dialog Message", NVD_DIALOG_SIMPLE); * if (!dialog) return -1; * * nvd_show_dialog(dialog); * nvd_free_object(dialog); * * return 0; * } * @endcode * # Other Resources * - [GitHub URL](https://github.com/AndroGR/nvdialog.git) * - [Homepage](https://i.am.working.on.it) * - [Bug Tracker](https://github.com/AndroGR/nvdialog/issues) * - [Releases](https://github.com/AndroGR/nvdialog/releases) */ /** Major version of NvDialog at compile time. */ #define NVDIALOG_VERSION_MAJOR 0 /** Minor version of NvDialog at compile time. */ #define NVDIALOG_VERSION_MINOR 6 /** Patch version of NvDialog at compile time. */ #define NVDIALOG_VERSION_PATCH 1 /** @brief A macro to set the version at compile time. */ #define NVD_VERSION(x) { \ (NvdVersion) x.major = NVDIALOG_VERSION_MAJOR; \ (NvdVersion) x.minor = NVDIALOG_VERSION_MINOR; \ (NvdVersion) x.patch = NVDIALOG_VERSION_PATCH; \ } #if !defined(NVD_API_EXPORT) && !defined(NVD_API_IMPORT) && !defined(NVD_API) #if defined (_WIN32) || defined (WIN32) #if defined (__clang__) || defined(__GNUC__) #define NVD_API_EXPORT __attribute__((dllexport)) #else /* __clang__ */ #define NVD_API_EXPORT __declspec(dllexport) #endif /* NVD_API */ #else /* _WIN32 */ #define NVD_API_EXPORT #endif /* _WIN32 */ #if defined (_WIN32) || defined (WIN32) #if defined (__clang__) || defined(__GNUC__) #define NVD_API_IMPORT __attribute__((dllimport)) #else /* __clang__ */ #define NVD_API_IMPORT __declspec(dllimport) #endif /* NVD_API */ #else /* _WIN32 */ #define NVD_API_IMPORT #endif /* _WIN32 */ #if defined (NVD_EXPORT_SYMBOLS) #define NVD_API NVD_API_EXPORT #else #define NVD_API NVD_API_IMPORT #endif /* DLLEXPORT */ #endif /* !defined(NVD_API_EXPORT) && !defined(NVD_API_IMPORT) && !defined(NVD_API) */ #include "nvdialog_capab.h" #include "nvdialog_core.h" #include "nvdialog_dialog.h" #include "nvdialog_error.h" #include "nvdialog_types.h" #include "nvdialog_css_manager.h" #include "nvdialog_notification.h" /** * @brief Returns the version of nvdialog currently linked with. * @details For a compile time alternative implementation see the * NVDIALOG_VERSION_MAJOR, NVDIALOG_VERSION_MINOR and NVDIALOG_VERSION_PATCH * constants. * @note The versioning API was introduced in v0.2.0, and will cause problems with earlier versions. * @returns The version of NvDialog linked with at runtime. */ NvdVersion nvd_get_version(); #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* __nvdialog_h__ */