Announce: Win32::GUI V1.04

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

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


   Project Homepage: /

   Project summary: /

   - Source and ActiveState Perl PPM distributions:
   - Source only:

   Release notes:


     Win32::GUI::ReleaseNotes::RN_1_04 - This is the release notes for
     Version 1.04 of Win32::GUI

Release Date
     15th October, 2006.

     This section details issues that are essential to understand when
     upgrading from earlier versions of Win32::GUI.

   Exported Constants
     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.

   Dual-life modules
     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.

   New Features
    New Packages

    New Methods
         Acceptfiles (Tracker: 1323988), Animate (Tracker: 1266930),
         ClassData, GetKeyState, SetWindowPos (Tracker: 1469648).

         ExtCreateRegion (Tracker: 1469648), GetRegionData.

         AdjustRect, GetBubbleSize, SetTitle.

    New Events
     For all Windows
         DropFiles (Tracker: 1323988).

    New Documentation
         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

    Other Features
     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 package 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
         creation from resources, including the "standard" windows
         See the sample to browse the standard resources.

     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 canonicalised to
         '"\"', and under Cygwin, cygwin style paths are converted to Win32

     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
         many of the methods which had been incorrectly implemented. The new
         implementation should be backwards compatible with what was there
         before, but read the documentation to find out about all the new
         features you can use.

         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 tooltips.

         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.

   Bug Fixes
    Reported Bugs
     Fix some crashes (Trackers 1243378 and 1248578)
     Fix some memory leaks (Tracker: 1201190)
     Fix drawing problems with coloured backgrounds (Tracker:1363141)

    Other Bugs
     -background and -foreground 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

       use Win32::GUI;

     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:
           use Win32::GUI();

     If you need some constants, name them explicitly:
           use Win32::GUI qw(ES_WANTRETURN CW_USEDEFAULT); # Two
constants exported
           use Win32::GUI qw(/^MB_/);   # Export all constants starting
with MB_

     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 suppress 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 existing 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 using


     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
     Robert May
     Reini Urban
     Jeremy White

Site Timeline