Releases: tseli0s/nvdialog
v0.8.1
v0.8.1
This is a patch release that fixes some bugs from the v0.8.0 release. Read the changelog below for further details. If you intend to run your application on Apple-based systems, then an upgrade may be necessary.
Changelog
- MacOS about dialog support returned (#50)
- (BREAKING) Removed first parameter on
nvd_init
, which was already unused since v0.7 (Previously compiled executables may not work) - Fixed some compiler warnings on Windows.
- Add icon support for
NvdAboutDialog
on Windows. (This may not work as expected yet, the next release will fix any bugs, especially with Wine) - Many improvements in
NvdAboutDialog
on Gtk3. - Documentation improvements
- Fix
NvdAboutDialog
on Linux not having an icon. NvdDialogBox
will no longer be marked as a popup on Linux/Gtk3. This will fix incorrect positioning on Wayland/GNOME.
Full Changelog: v0.8.0...v0.8.1
v0.8.0
v0.8.0
Apologies for the delay on this release. Although it did take some time due to me working on other projects simultaneously, it is a massive release with many bugs fixed and many improvements added. Make sure to read the changelog carefully; Some of these changes may break older binaries! (Though they shouldn't)
Changelog
- You can now set the dialog button text to a custom one.
- Dialogs in Gtk3 are now unresizable, due to artifacts formed on some systems
when resizing and worsened looks. - Dialogs are now marked as popup windows and not toplevel ones.
- On the Windows backend, NvDialog will now check if sending the notification to the user was successful.
- Added destructors on notification objects, to avoid memory leaks.
- Fixed some compiler warnings regarding
const
assignments when compiling the library. - Fixed Cocoa backend using different implementations of (public) types due to unmaintained code.
nvd_get_capabilities()
will now set an error code if the query is not supported (eg. Invalid enum).- Removed unused functions within the library.
- Fixed
nvd_dialog_box_set_accept_text
crashing on Linux. - Reduced memory usage by the library (See 3d967e7)
- Fixed missing declaration warning on the Gtk backend.
- Completely removed styling functions (Already deprecated since v0.7.0)
- Increased shared file version to 2 (Output files may contain libnvdialog.so.2 now)
- Fixed libnotify not loading on Linux (See #44 for details)
- Fixed a bug where NvDialog would abort the entire process despite no failure happening.
- Fixed dialog not disappearing after pressing the accept button (See #42)
Full Changelog: v0.7.0...v0.8.0
v0.7.0
Not a spectacular release, but surely better than nothing. This was planned for May 1st but I decided to leave it for the weekend. Enjoy :)
Changelog
- Gtk dialogs will now be guaranteed to have their title set.
- Gtk dialogs are now modal, meaning the user can't skip over them without
responding to them. - NvDialog will check if it has been initialized before any API call.
- Added extra null pointer / invalid parameter checking.
nvd_init
: The parameter 'program' of the function is now deprecated.- Initial work towards sandbox support (See #36), based off the Gtk3 backend.
- File dialogs now support extension filters. See documentation.
- Fixed notifications on Linux failing, NvDialog will now handle
dlopen()
errors. - All global static variables now are thread local, to improve safety on some platforms.
- GitHub workflows now use a target triple naming (arch-device-os-toolchain, eg.
x86_64-pc-windows-msvc) - C standard is now required to be at least 2011 or newer (See c7e68a0).
- Deprecated styling support (Now all backends will just return a "fail value" like a
NULL
pointer or a negative integer).
Full Changelog: v0.6.1...v0.7.0
v0.6.1 (Patch)
Release v0.6.1
Mainly fixes some bugs on a few newer distros. Recommended to upgrade if you notice issues with your application.
For extensive commit message click here: v0.6.0...v0.6.1
Changelog
- Fixed initialization call failing on Gtk3.
- New
NvdError
member:NVD_BACKEND_FAILURE
. - Fixed some build warnings.
v0.6.0
v0.6.0
This release includes a series of bug fixes and additions. It's a release that took time as there was a lot of work on all backends.
For a full changelog, see here: v0.5.0...v0.6.0
Changelog
- Removed domain name support in favor of plain application names.
- Added application name support.
- Added macOS support (Thanks to: @Frityet)
- Fix
nvd_get_error
return type. - Dialogs will now be destroyed immediately after closing them.
- Added
NVD_API
macro to export functions to Windows (or import them). This will only be used internally for better optimization. - Fixed
nvd_about_dialog_gtk
not working properly under the Gtk3 backend when custom icons were used instead of the default ones. - New function:
nvd_add_notification_action
. The description of this function is rather long,
seeinclude/nvdialog_notification.h
for the declaration and its documentation. nvd_init
will check if the library has been initialized already and return if so.- Fixed some build errors on newer distributions (Especially on the Adwaita backend).
- Improved the documentation largely. Now
doxygen
will be used to generate documentation. - Setting the environment variable
NVD_NO_NOTIFS
to1
will disable thelibnotify
dependency
on Unix systems. - New website for the library, created entirely with Doxygen: https://androgr.github.io/nv.dialog/ .
From now on, the website will also be constantly updated with new documentation. - Added notification support for Windows (Vista and above will work only).
- Fixed the Gtk4 file dialog not working.
New Contributors
v0.5.0
Release
This release is the first fully-complete release of NvDialog, focusing largely on stability. From now on, new features will only be added if all backends support them. There was an exception for the styling API (See the changelog below) as it could only be implemented for Gtk3.
Changelog
- Added custom CSS stylesheet support (
NvdCSSManager
). - Added notification support (
NvdNotification
). - Added testing units in CI.
- Fix
nvd_stringify_error
returning invalid pointer, causing undefined behavior. - Added two new library errors:
-NVD_FILE_INACCESSIBLE
(A file NvDialog tried to access is not accessible),
-NVD_BACKEND_INVALID
(A backend is invalid, eg. A symbol can't be accessed) - Added
NVD_VERSION
macro -- Stores the compile time version of NvDialog to theNvdVersion
variable passed. - Added
nvd_*_get_raw()
functions -- Allows to get the window implementation behind the dialog to use for the styling API. - Added
pkg-config
script to make NvDialog compatible with other build systems. - Removed previously deprecated functions.
- NvDialog can now build with other compilers than GCC and CLang.
- On
Adwaita
backend, theNvdAboutDialog
will now useAdwAboutWindow
instead, to make development easier. - Added
NvdFileDialog
support for save file dialog, mostly working.
Full Changelog: v0.3.0...v0.5.0
v0.3.0
About
v0.3.0 is released, bringing a lot of fundamental changes to NvDialog. See the changelog below for more.
Along with the changes on the library's API, and others described below, as you can see you can now download NvDialog precompiled for your platform. Feel free to use them if you want something that "works".
Changelog
- Changed the API to now use a new model, where creating and showing the dialog window are now seperate tasks.
- Rewritten the
NvdAboutDialog
with a better UI for Linux. - The source code tree is now reorganized in a much better working model.
- On Arch Linux, packages are going to be built from the local source code instead of the remote repository one, to allow for better integration with the package manager and stability.
- The Adwaita backend is no longer experimental, and has become the default backend on Unix systems.
- Fix
NvdFileDialog
not working under the Gtk3 backend. - Refreshed the website a little.
- Added CI, to better test if NvDialog is working properly across platforms. (WIP)
- Resulting shared library version has now been increased to 1. (f3128b6)
- Once again, updated the logo. This time it's much more modern and beautiful.
Full Changelog: v0.2.0...v0.3.0
v0.2.0
Changelog
- Fixed compilation errors on all backends (Especially Windows).
- API Upgraded to 0.2.0
- New function:
nvd_about_dialog_new
- Shows a window with information about your application. - New functions:
-nvd_set_parent
- Allows to set a foreign window as the parent of every dialog.
-nvd_get_parent
- Returns the current parent window or NULL otherwise.
-nvd_delete_parent
- Marks that no window is currently considered the parent. - Implemented Gtk4 backend (Currently still experimental).
nvd_about_dialog_new
-> Window size is now more compact (Gtk3 only)- Simple dialogs are no longer resizable (Gtk3 only).
- Fixed a bug where the process would remain open even though all the windows were closed.
- Added a function to query NvDialog's capabilities at runtime. (7511aaf)
setlinebuf(stdout)
will no longer be called on Windows.- NvDialog's website is ready (Click Here)
nvd-shell
is no longer part of this project, considered deprecated until later notice.- Fixed a bug in
nvd_stringify_error
where a local string would be returned instead of a heap one. - Assertion failures no longer output red text.
- Function names are now using a GCC extension to allow
main
to becomeint main(int, char**)
. - Ported API changes to Windows.
- Added
PKGBUILD
for Arch Linux.
v0.1.3
Changelog
- Fixed multiple compiler / linker errors
- Fixed a buffer overflow by using
NVDIALOG_MAXBUF
instead of a fixed 128 byte buffer. - New function (Incomplete):
nvd_about_dialog_new
. This function shows a simple dialog similar to those found in some 'About' app menu items. It will be stabilized in 0.2. - Added new example.
- Removed deprecated code, replaced with more modern and accurate alternatives.
- Partial
libadwaita
support complete. - New assertion system.
- Remove fallback backend, replaced with raw runtime assertions.
- Headers are now installed inside the
nvdialog/
directory in the standard include directory. - New logo (May change again)
Full Changelog: v0.1.2...v0.1.3
Warning
This release brings alot of new features since 0.1.2. This means code linked with the previous version has a chance of breaking. Since nvdialog can't guarantee everything works, make sure to open issues for API breakage. However, the main changes will only be detected at compile time since everything existing hasn't changed much.
v0.1.2
Changelog
- Fixed multiple miscalleneous bugs from 0.1.1 and a few memory leaks.
- Fixed compile error with the Makefie.
- Initial work towards Gtk4 and libadwaita porting.
- Update legacy code to v0.1.2
Full Changelog: v0.1.1...v0.1.2