I am please to announce that v1.04 of Win32::GUI is available for
download from SourceForge and CPAN.
Win32::GUI is a Perl extension allowing creation of native Win32 GUI
- Source and ActiveState Perl PPM distributions:
- Source only:
RELEASE NOTES AND CHANGES
Win32::GUI::ReleaseNotes::RN_1_04 - release notes for Version 1.04 of
15th October, 2006.
This section details issues that are essential to understand when
upgrading from earlier versions of Win32::GUI.
The way that Win32::GUI exports constants has changed. Ensure that you
read the "Deprecated feature status" section of this document so that
you understand the backwards compatibility issues.
This version of Win32::GUI includes the modules
Win32::GUI::AxWindow, Win32::GUI::DIBitmap, Win32::GUI::Grid,
and Win32::GUI::Scintilla (originally by Laurent Rocher:
Please uninstall any previous versions of these modules that you may
have installed before installing this version of Win32::GUI.
Summary of Changes
This is a summary of changes between V1.03 and V1.04 See the
CHANGELOG file in the distribution for the full detail.
Acceptfiles (Tracker: 1323988), Animate (Tracker: 1266930),
ClassData, GetKeyState, SetWindowPos (Tracker: 1469648).
ExtCreateRegion (Tracker: 1469648), GetRegionData.
AdjustRect, GetBubbleSize, SetTitle.
For all Windows
DropFiles (Tracker: 1323988).
Better documentation for the differences between SetCurSel and
SetSel (Tracker: 1177898).
Correct documentation for -autohscroll and -autovscroll.
Complete documentation for the Win32::GUI::Tooltip class
Better dialog navigation for Textfields
<TAB> can now be used to move out of a multi-line Textfield when
using the -dialogui option on a Window.
A -wantreturn option has been added to stop the <RETURN> key firing
the default Click event for a multi-line Textfield when using the
-dialogui option on a Window. This replaces the previous use of
"-addstyle => ES_WANTRETURN".
Ballon tooltips for NotifyIcon
The Win32::GUI::NotifyIcon pakage has been re-worked. There is
now no need to use the -id option, and balloon tooltips are
supported on Win2k and above. (Tracker: 1065072)
More options for Win32::GUI::DoEvents()
It is now possible to select which messages you want to process
More ways to create cursors, icons and bitmaps
The Cursor, Icon and Bitmap constructors have been enhanced to
allow creation from resources, including the "standard" windows
resources. See the standard_images.pl sample to browse the
Easier way to browse and run the demos
A new script win32-gui-demos will be installed in your perl bin
directory. You should be able to get a full list of the sample
code distributed with Win32::GUI, view the source and run the
demos by typing "win32-gui-demos" at your command prompt.
Better Splitter implementation
The Win32::GUI::Splitter implementation has been re-written to
provide more robust operation. The splitter bar can no longer be
moved outside the parent window, which used to result in drawing
problems, and the bar itself is now more nicely drawn.
The -background option now works for splitter windows.
Better behaviour from LoadLibrary
The Win32::GUI::LoadLibrary() function has been enhanced so that
it converts any passed path to a Win32 representation before
trying to use it. Specifically this means that slashes are
canonicised to '"\"', and under Cygwin, cygwin style paths are
converted to Win32 paths.
Complete re-work of Tooltip class
The Win32::GUI::Tooltip implementation has been re-worked to
allow all the features to be used, and now there should be no
crashes with many of the methods which had been incorrectly
implemented. The new implementaiton should be backwards
compatible with what was there before, but read the
documentation to find out about all the new features you can
The constructor has some new options "-nofade", "-noamimate"
and the "-balloon" option is documented. "-balloon" option along
with the new SetTitle method allows you to make use of balloon
The events (NeedText, Pop, Show) now have a second parameter
allowing you to correctly determine if the first parameter is a
window handle or a tool id.
Fix some crashes (Trackers 1243378 and 1248578)
Fix some memory leaks (Tracker: 1201190)
Fix drawing problems with coloured backgrounds (Tracker:1363141)
-background and -forground options now work for RichEdit windows
The SendMessageTimout implementation now matches the documentation
-truncate option now works correctly for Label windows
SetTabStops() method now works for ListBox windows
The demo code all works
Fix memory leak in Win32::GUI::DIBitmap::AlphaCopyToDC method
Deprecated feature status
This section documents features that have been deprecated in this
release, or in recent releases, and feature that will be deprecated
in up-coming releases.
The introduction of Win32::GUI::Constants means that we now have
access to a very large number of constants, so the current
behaviour of Win32::GUI to export all constants to the calling
namespace by default is no longer appropriate. So, a bare
now generates a warning that the old default behaviour will be
deprecated - although the export behaviour of Win32::GUI 1.03 is
maintained except for this warning.
To eliminate this warning and correct your script, do one of the
If you don't need any constants, use the empty list:
If you need some constants, name them explicitly:
use Win32::GUI qw(ES_WANTRETURN CW_USEDEFAULT); # Two
use Win32::GUI qw(/^MB_/); # Export all constants starting
See the Win32::GUI::Constants documentation for the full allowable
You are advised to fix your scripts now, as the next version will
stop exporting any constants by default.
Although not advised, you can supress the warnings by turning
deprecated warnings off:
no warnings 'deprecated';
Additionally accessing constants from within the Win32::GUI
namespace is deprecated. I.e.
-addstyle => Win32::GUI::WS_BORDER,
will generate a warning with this release, and will stop working
with the next release. Use one of the following methods instead:
use the Win32::GUI::Constants namespace instead
-addstyle => Win32::GUI::Constants::WS_BORDER(),
use any other namespace you fancy
use Win32::GUI qw(-exportpkg => A::B -autoload);
-addstyle => A::B::WS_BORDER(),
maintain compatibility of exising scripts
use Win32::GUI::Constants qw(-exportpkg => Win32::GUI
-addstyle => Win32::GUI::WS_BORDER,
It is no longer necessary to use the '-id' option to any of the
Win32::GUI::NotifyIcon methods. The ID is now entirely handled
internally. You will receive deprecated warnings if you use it.
In particular, removing Icons from the system tray should be done
and not by the (now deprecated)
$NI->Delete(-id => 1);
Removal of GUI:: namespace
For at least the last 6 years the Win32::GUI namespace has been
aliased to the GUI namespace for backwards compatibility with very
early scripts. This aliasing has been removed, and any remaining
scripts will need updating.
Contributors to this release
Win32::GUI, a perl extension for native Win32 applications