Dynamic Windows 3.1
This is a stable release of Dynamic Windows version 3.1.
The current Dynamic Windows source base is considered stable on: OS/2, Mac, Windows, Linux, FreeBSD and OpenSolaris.
Changes from version 3.0:
- Added support for MacOS versions through Big Sur 11.0, Windows versions through 10 build 20H2.
- Fixed a handle leak on OS/2 when built with (Open)Watcom.
- Added dark mode support on MacOS Mojave 10.14 and later.
- Added experimental dark mode support on Windows 10 build 1809 (disabled by default).
- Added embedding Microsoft Edge (Chromium) support on Windows 7 and higher.
Requires Windows 8 or higher SDK to build and the nuget package from: https://www.nuget.org/packages/Microsoft.Web.WebView2 unzipped into .\packages\Microsoft.Web.WebView2 Install runtime: https://developer.microsoft.com/en-us/microsoft-edge/webview2/ Will prefer to use the runtime above, but will fallback to an installed browser.
- Added notification APIs: dw_notification_new() dw_notification_send() dw_app_id_set()
Requires Windows 8 or higher. MacOS 10.8 or higher. GLib 2.40 or higher on Unix. MacOS also requires the application bundle being signed or self-signed. Unix requires a desktop file link with the application ID used in dw_app_id_set(). Unzip WinToast from https://github.com/mohabouje/WinToast into .\packages\WinToast
- Added webkit2gtk support and removed dead gtkmozembed and libgtkhtml2 support on Unix.
- Added embedded HTML javascript support on Mac, Windows and Unix with webkit(2)gtk.
Added function dw_html_javascript_run() to execute javascript code. Added DW_SIGNAL_HTML_RESULT signal for getting the results from javascript. DW_SIGNAL_HTML_RESULT requires webkit2gtk on Unix.
- Added DW_SIGNAL_HTML_CHANGED signal handler for getting the status of embedded HTML.
Status can be: DW_HTML_CHANGE_STARTED/REDIRECT/LOADING/COMPLETE
- Fixed international calendar issues on Mac.
- Added dw_mle_set_auto_complete() to enable completion, only available on Mac.
- Changed to using GTK3 by default instead of GTK2. --with-gtk2 is now available.
- Changed to using winsock2 on Windows ending support for Win95 and NT 3.5.
- Changed to using Rich Edit for MLE controls on Windows. This can be disabled with: dw_feature_set(DW_FEATURE_MLE_RICH_EDIT, DW_FEATURE_DISABLED);
- Added support for domain sockets on Windows 10 in the dwcompat sockpipe() macro.
If compiled with Visual Studio 2017 or later, otherwise the old method is used.
- Added dw_feature_set/get() to test if certain features are available on the current library and operating system combination at runtime or enabled/disable features.
- Added support for GResource embedded images on GTK2/3 with GLib 2.32. The old resouce system is still available via configure --with-deprecated if needed.
- Added support for NSView based Tree, Container and Listbox widgets on Mac 10.7+.
- Removed DW_FCF_COMPOSITED support from Windows 8 and higher.
This flag will still function to create a glass effect on Windows Vista and 7. The transparent key feature used to create it causes issues on 8 and 10, plus the glass effect, the main reason for the flag was removed in Windows 8.
- Removed the incomplete Photon port.
Changes from version 2.5:
- Added package configuration (pkg-config) support on Unix.
- Changed DW_CLR_DEFAULT behavior to improve consistency.
- Added dw_signal_connect_data() which features a callback on signal disconnection.
- Improvements for building on 64bit Windows with MinGW. Window styles, HTML and Toolbar widgets are now supported.
- Added dw_shutdown() for use when shutting down Dynamic Windows but not quite ready to exit immediately. (Functions like dw_exit() without the exit())
- Separated the container "title" (string) and "data" (pointer) into separate spaces.
The "classic" functions which take (char *) parameters now maintain their own string memory backing so you no longer need to keep the data available.
- Removed dw_container_set_row_data() and dw_container_change_row_data() macros.
- Added dw_container_set_row_data() and dw_container_change_row_data() functions.
- Removed the "_dw_textcomp" container data flag, dw_container_cursor() and dw_container_delete_row() which take (char *) now function in text compare mode.
- Added dw_container_cursor_by_data() and dw_container_delete_row_by_data() functions which do the same things except in pointer comparison mode.
- Added DW_CR_RETDATA flag to dw_container_query_*() functions to return the data pointer instead of the string pointer, this may change in the future.
- Added exported internal functions _dw_init_thread() and _dw_deinit_thread() for language bindings to setup/cleanup threads created for DW use.
- Fixed some memory leaks.
- WARNING: Changed how tree and container titles are returned, they are now duplicated and need to be freed with dw_free(). This affects the following functions:
dw_tree_get_title(), dw_container_query_start() and dw_container_query_next() You should audit any code using these functions for leaks if using verison 3.
Changes from version 2.4:
- Added dw_window_set_focus() to focus a widget after the window is shown
- Added DW_FCF_TEXTURED flag on Mac, which enables textured backgrounds which had been the default on Mac prior to 2.5.
- Added keyboard support for non-entryfield controls on Mac.
- Added tab support for notebook controls on Windows and OS/2 and in the process rewrote and optimized the existing tab code.
- Added bitmap button support for dw_window_set_bitmap().
- Added full alpha channel support for bitmaps from file on GTK2.
- Added support for handling Mac application menu Quit and dock Quit.
Use DW_DESKTOP as window handle to dw_signal_connect().
- Improved transparency support for pixmaps/bitmaps from file on OS/2.
- Fixed tab support for bitmap buttons which broke in 2.4 on Windows.
- Fixed a notebook crash early in creation on Mac.
- Fixed unusable scrollbars on Ubuntu Linux when overlay scrollbars are enabled. We now disable overlay scrollbars when creating.
- Fixed dw_window_function() not working on non-toplevel windows on Windows and OS/2.
- Fixed building 64bit with Visual C 2012 and MINGW gcc on Windows.
Changes from version 2.3:
- Added support for MacOS 10.8 Mountain Lion.
- Added fullscreen support on Mac for resizable windows on Lion.
- Added UNICODE build mode on Windows allowing UTF-8 encoded text.
ANSI builds are supported by removing -DUNICODE -D_UNICODE and -DAEROGLASS
- Added support for antialiased drawing on Windows via GDI+.
- Added UNICODE build mode on OS/2 using codepage 1208 (UTF-8) as the active codepage; Non-Unicode mode will use the default codepage.
- Added support for Control-Click on Mac for button press events.
- Added DW_POINTER() macro for casting parameters to (void *).
- Added dw_box_unpack() and dw_box_unpack_at_index() for removing items from boxes without destroying them. Also allows removal of padding.
- Added GBM (Generalized Bitmap Module) support for OS/2 and eCS for loading Non-OS/2 native file formats. GBM comes with eCS 1.2 and later.
It is also available at http://hobbes.nmsu.edu
- Added resizing HICNs to 24x24 max size on platforms which do not do it automatically (Mac and GTK). OS/2 and Windows limit the size.
- Added toolbar control support to replace existing bitmap buttons on Windows.
- Added dw_filesystem_set_column_title() to fill a hole in localization.
- Added new optional UTF-8 parameter to the key press callback.
This is a pointer to a UTF-8 string representing the key pressed. The buffer pointed to is only good for the duration of the callback.
- Added UTF-8/Wide string conversion functions for Unicode buffer management.
- Fixed dwindows-config --version not returning the version at all.
- Fixed value changed events not working for spinbuttons on OS/2 and Windows.
- Fixed issues drawing arcs on GTK2, GTK3 and Mac.
- Fixed a crash in the color chooser on Mac running Lion.
- Fixed a layout issue with render widgets on OS/2.
- Fixed an expose event issue on OS/2.
- Fixed an issue with GTK 3.4 due to properties being inherited from the parent.
- Fixed issues with bitmap buttons using icon/pointers on OS/2 and Windows.
- Fixed an issue with dw_window_destroy() on Mac.
- Fixed issues rendering to printer pixmaps on Windows with GDI+ enabled.
- Fixed dw_window_set_bitmap_from_data() prefering the resource ID over the data passed in on most platforms.
- Fixed dw_container_delete_row() failing and/or crashing on Mac.
- Fixed memory and resource leaks on Windows and Mac.
- Fixed incorrect display of status text fields on Mac 10.5 and 10.8.
- Fixed compiler warnings on Mac 10.5 and 10.8 by checking selectors directly and removing use of now deprecated APIs.
- Fixed incorrect display of textured background non-resizable windows on Mac.
- Updated the test program removing deprecated flags and using new ones.