The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
###############################################################################
# CHANGELOG
# $Id: CHANGELOG,v 1.57 2005/07/10 11:24:29 robertemay Exp $
###############################################################################

Win32-GUI ChangeLog
===================

+ [Robert May] : v1.02 release
    - Listview.xs: Corrected prototype for GetOrigin.
    - GUI.pm upped version to 1.02
    - tagged HEAD as Win32-GUI-1_02

+ [Robert May] : more MSVC6 fixes
		- Hopefully fixed build issues introduced wth last changes
		- Fixed Makefile.PL so that GUI.res depends on GUI.rc
		- Changes for MSVC6 build environment

+ [Robert May] : cygwin patches, build process
    - Merged cygwin patches from Reini Urban (includes new cygwin.c file)
    - Merged Makefile_m.pl and Makefile.PL to give a consistent build
      procedure regardless of environment.  Now supports MSWin32 with VC++ and MinGW compilers,
      and cygwin.
    - ToolTip.xs renamed to Tooltip.xs (for cygwin)
    - Merged MSVC6 patches from Reini Urban for early SDK.
    - build_tools that use pod2html now tidy up the pod2html cache files
    - version upped to 1.01_03

+ [Robert May] : Documentation re-work
    - new documentation structure
    - new build_tools directory with scripts for building the documentation
    - additions to makefiles to build docs as part of a standard build
    - removal of old, superceeded scripts
    - addition of ppm target to makefiles, including building of HTML docs
    - auto generation of Readme and Readme.html from Win32::GUI::UserGuide::Readme POD
    - upped version to 1.01_02
    - tidied up MANIFEST.SKIP
    - new MANIFEST to reflect changes
    - added $Id: CHANGELOG,v 1.57 2005/07/10 11:24:29 robertemay Exp $ ident to documentation files 

+ [Robert May] : Changes for release 1.01
    - GUI.pm :
      + Upped version to 1.01_01
      + Modified VERSION code as recommended by perldoc perlmodstyle
    - README.txt
      + Upped version and set dates
      + added text for installing from PPM

+ [Robert May] :
    - Label.xs: Tracker 1164780: fix to -bitmap option for labels
      + Fixed test for icon/bitmap in Label_onPostCreate
    - Richedit.xs:
      + Minor documentation changes
    - docs/dohtml.pl:
      + change to CSS path for correct install location .../html/site/lib/Win32/GUI

+ [Alexander Romanenko]
    - GridLayout.pm
      + Fix for alignment into multi-cells

+ [Robert May] : Fixes for Toolbars:
    - Toolbar.xs:
      + Fixed message processing to switch on lparam->code, rather than HIWORD(wparam)
      + Various documentation changes where functions take command identifier, rather than button index
      + Fixed GetButtonInfo test for error conditions
      + Fixed GetButtonInfo returned flags to be 0 or 1 only.
      + Added missing GetString method 
      + Fixed SetButtonInfo to set required cbsize element of button structure.
    - GUI.h
      + Added define for TB_GETSTRING for MinGW.
      
+ [Robert May] : Support for Coolmenu
    - GUI.h
      + Added prototype for ProcessEventError so it can be called from GUI_Helpers.cpp 
      + Added 'message' WM_TRACKPOPUP_MSGHOOK to use as a callback handle in the hooks array (see TrackPopupMenu, GUI.xs)

    - GUI_Helpers.cpp
      + Added WindowsHookMsgProc callback to be used by SetWindowsHookEx in TrackPopupMenu (GUI.xs)

    - GUI.xs
      +  Re-worked TrackPopupMenu to:
        (1) allow X,Y to be optional, and use current cursor position if not provided.
        (2) use TrackPopupMenuEx, rather than TrackPopupMenu, and allow an (optional) excluded rectangle to be provided
        (3) to allow a (optional) code reference to a callback funtion to be provided that will be called for events
            occuring while the menu is displayed.
      + Added RemoveMenu() to Win32::GUI::Menu 

+ [Robert May] : Support for chevrons in rebars
    - GUI.h
      + Added define for RBN_CHEVRONPUSHED for MinGW.
    - GUI_Options.cpp:
      + Added -idealwidth to ParseRebarBandOptions
    - Rebar.xs
      + Added ChevronPushed event: Rebar_onParseEvent, Rebar_onEvent
      + Added -idealwidth to GetBandInfo, InsertBand, and SetBandInfo (via ParseRebarBandOptions), including documentation
      + Documented RBBS_USECHEVRON style

+ [Robert May] :
    - GUI_MessageLoops.cpp
      + Fixed second parameter to DoHook() during WM_NOTIFY messages to be lparam->code, rather than HIWORD(wparam).

+ [Robert May] :
    - GUI.pm (Fix for Richedit crash. Tracker: 1064828, 1153899)
      + Moved LoadLibrary for richedit.dll to constructor to prevent loading library unnecessarily
      + Removed end block to FreeLibrary*(), as not necessary (and can get executed before Richedit's DESTROY method)
      
+ [Robert May] :
    - Trackbar.xs
      + Modifed Pos() to get one argument call have correct default for second argument.
      + Modifed Min() to get one argument call have correct default for second argument.
      + Modifed Max() to get one argument call have correct default for second argument.
      + Modifed SelStart() to get one argument call have correct default for second argument.
      + Modifed SelEnd() to get one argument call have correct default for second argument.

+ [Jeremy White] :
    - GUI.xs
       + Added SetWindowRgn method
    - DC.xs 
       + Added CombineRgn method
       
+ [Jeremy White] :
    - ListView.xs:
       + Improved documentation for SetImageList
       
+ [Alexander Romanenko]
    - GridLayout.pm
      + Fixes and enhancements

+ [Jeremy White] :
    - GUI.xs:
      + Added WaitMessage
      + Fixed EnumMyWindows
    - GUI_Helpers.cpp
      + Fixed EnumMyWindows
      
+ [Jeremy White] :
    - GUI.xs:
      + Added GetCapture,LoadCursor and ShellExecute
        
+ [Jeremy White] :
    - GUI_Events.cpp:
      + Hooked events now report errors, also moved a strncmp function in ProcessEventError to
        be only performed when there is an error.
      
+ [Jeremy White] :
    - Combobox.xs:
      + Added CloseUp and DropDown events.

+ [Jeremy White & Chris Wearn] :
    - ListView.xs
        + Added the BeginDrag event
    - GUI.xs 
        + Added the ClientToScreen method 
        
+ [Jeremy White] :
    - UpDown.xs, GUI.pm :
        + Fixed the crash when using the SetBuddy, Buddy and GetBuddy methods
          Improvements still needed.
        
+ [Laurent Rocher] :
    - GUI.pm, GUI.xs, Readme.txt, Readme
        + VERSION 1.0

+ [Jeremy White] :
    - GUI.xs :
        + Fix SetEvent
        
+ [Laurent Rocher] :
    - GUI.xs :
        + Fix MessageBeep XS interface.
    - Button.xs 
        + Fix -align option

+ [Laurent Rocher] :
    - Readme.txt, readme, GUI.pm, GUI.xs
        + VERSION to 0.99_1 for first release candidate to 1.0
    - Add somes samples

+ [Glenn W Munroe] :
    - ListView.xs :
        + Add more events and new style flag.

+ [Glenn Linderman] :
    - GUI.pm
        + Bump VERSION to 0.0.682 
    - GUI.xs :
        + Minor fix to -multisel handling for GetOpenFileName
        + Fix to Scroll to support 32 bit range for SB_THUMBTRACK and SB_THUMBPOSITION
    - samples/BitmapScroll.pl
        + Enhancements.

+ [Laurent Rocher] :
    - MakeFile.pl, MakeFile_m.pl
        + Use tab as space in rule for use with dmake
    - GUI.pm, GUI.xs
        + Add -brush option for Win32::GUI::Class.
    - GUI_Helper.cpp
        + classname_From and handle_From : Replace strlen as static string length.
    - Window.xs, GUI_MessageLoops.cpp, Samples\BitmpaScroll.pl :
        + Move Paint event in Window_onEvent.
        + Use DoEvent_Paint function like Graphic
    - ToolTip.xs :
        + Add -balloon option

+ [Glenn Linderman] :
    - GUI.xs :
        + Deprecate  -overdriveprompt  in favor of  -overwriteprompt  in
          GetSaveFileName

+ [Glenn Linderman] :
    - GUI.xs :
        + Add extra, optional parameter to Win32::GUI::Scroll to better
          support dynamic display of windows when scrolling.  The internals
          add support for the SB_THUMBTRACK event.

+ [Glenn Linderman] :
    - GUI.pm :
        + Add definition of @acc to Win32::GUI::AcceleratorTable::new
          to avoid cumulative accelerator key references among windows

+ [Jeremy White] : Added -onPaint event for windows
    - Window.xs, GUI_MessageLoops.cpp
        + Added -onPaint event for windows

+ [Laurent Rocher] :
    - GUI.pm, GUI_Constants.cpp :
        + Add MessageBox return value constants.
    - GUI.xs :
        + Create : Force a window name for all control.
        + Add MessageBeep.
        + ChooseFont : Change -size by -pointsize option and return value.
    - GUI_Events.cpp :
        + DoEvent_Menu : Add Self for NEM event.
    - GUI_Helpers.cpp :
        + Perlud_Free : Check if svSelf is a valid SV before use it.
    - GUI_MessageLoops.cpp :
        + WindowMsgLoop : Add WM_INITMENU event.
    - Textfield.xs :
        + Fix EN_UPDATE event handler name.
        + New Methods : CanPaste & HaveSel.
    - Window.xs:
        + New InitMenu event.
    - Samples\Notepad.pl : New file

+ [Jeremy White] : Added example and new function
    - samples\BitmapScroll.pl 
    - GUI.xs
        + Added LoadString Function 
        
+ [Glenn Linderman] : Fix GetOpenFileName
    - GUI.h:
        + change VERSION
    - GUI.xs:
        + change  GetOpenFileName to  support -multisel =>  N, where  N is
          multiplied  by 4000  to  obtain the  results  buffer size.   The
          minimum results buffer size is 256 for N <= 0, and 4000 for N ==
          1.

+ [Laurent Rocher] : Add MonthCal Control
    - MonthCall.xs : New file
    - GUI.h :
        + Add new event argtype for SV*.
        + New MonthCall control callback function and constant.
    - GUI.pm :
        + Add MonthCall control.
    - GUI_Constants.cpp :
        + Add MonthCall class constant.
    - GUI_Events.cpp :
        + DoEvent : Add new type argument for SV*.
    - GUI_Helpers.cpp :
        + Add MonthCall control.
    - Makefile.pl, Makefile_m.pl :
        + Add MonthCall.xs
    - Samples\MonthCal.pl : New file
    - Docs\DoDoc.pl : 
        + Add MonthCall.xs

+ [Steven M. Martin] : Fix TextField -prompt option.
    - GUI.pm :
        +  Win32::GUI::Textfield new : Fix TextField -prompt option when prompt left was negative.

+ [Jeremy White] : New Events for Treeview control
    - TreeView.xs
       + Added BeginLabelEdit Event
       + Added EndLabelEdit Event
       
+ [Laurent Rocher] : Fix IdFirstChild option for MDIClient.
    - GUI.pm :
        + Remove registered class for MDIClient.
    - GUI.xs :
        + RegisterClassEx : Remove MDIClient value for -widget option.
        + Create : SubClass MDIClient window.
        + Added SetActiveWindow.
    - GUI_MessageLoops.cpp :
        + MDIClientMsgLoop: Rewrite as simple subclass MsgLoop.
    - MDI.xs :
        + MDIClient_onPreCreate : Change classname.
        + MDIChild_onPreCreate  : Change default style.

+ [Laurent Rocher] : Restore AUTOLOAD
    - GUI.pm :
        + Uncomment AUTOLOAD
        + Add AUTOLOAD to MDIFrame, MDIClient.

+ [Laurent Rocher] : Add MDI Window Support and Fix Tied property & Window Destruction.
    - GUI.h :
        + Added new MDI Constants and Callback functions.
        + Added a dwData field in PERLWIN32GUI_USERDATA.
    - GUI.pm :
        + _new : Fix tied hash property.
        + Comment AUTOLOAD in Win32::GUI::Window : Is usefull ?
        + New Win32::GUI::MDIFrame, Win32::GUI::MDIClient, Win32::GUI::MDIChild class.
        + Win32::GUI::WindowProps : Fix Destroy managing.
        + Register new class for MDI.
    - GUI.xs :
        + In GetKeyboardState : Use a stack array for key.
        + In RegisterClassEx : 
            + Added MDIFrame, MDIClient, MDIChild widget option.
            + Avoid reccursive Window Msg Loop call.
        + In Create :
            + Use a weaken reference for perlpud->SvSelf for clean reference count and memory free.
            + Added MDI support.
            + Added dwData field support.
        + In Change : Added MDI support.
        + In Dialog, DoEvents, DoModal : Added MDI event loop support.
        + LockWindowUpdate : Rewrite shorter.
    - GUI_Constants.cpp :
        + Added MDI class constants.
    - GUI_Helpers.cpp :
        + Addes MDI class callback.
        + Perlud_Free : Correct destruction problem.
    - GUI_MessageLoops.cpp :
        + In CommonMsgLoop : Don't manage WM_GETMINMAXINFO for MDI Child.
        + In WindowMsgLoop : 
            + Added support for WndProc call.
            + For WM_DESTROY, call default MsgLoop before free perlud.
            + Handle WM_MDIACTIVATE & WM_SETFOCUS for MDI Window.
        + Added DefMDIFrameLoop and MDIFrameMsgLoop for MDIFrame Window.
        + Added MDIClientMsgLoop for MDICLient window.
        + Added DefMDIChildLoop and MDIChildMsgLoop for MDIChild Window.
    - GUI_Options.cpp :
        + In ParseWindowOptions : Added a missing else for class specific option parsing.
    - Makefile.pl &  Makefile_m.pl : Add new MDI.xs file.
    - MDI.xs : Manage MDI window.
    - Window.xs : Remove MDI class and add MDI event documentation.
    - Samples\MDI.pl : New Sample form MDI use.
    - Docs\DoDoc.pl : Add new MDI.xs file.

+ [Jeremy White] : DoModal bug fix (windows would flicker)

+ [Jeremy White] : New methods/functions (from Adhoc.pm by Johan Lindström).
    - DC.xs
        + Added SetBrushOrgEx Method
        + Added GetBrushOrgEx Method
    - GUI.xs
        + Added LockWindowUpdate Method
        + Added GetKeyboardState Function
        + Added GetAsyncKeyState Function

+ [Jeremy White] : New DC method
    - DC.xs 
        + Added DrawIcon Method

+ [Jeremy White] : New Window method
    - GUI.pm
        + Added Center method (Code from Adhoc.pm by Johan Lindström).

+ [Jeremy White] : Improvements in Windows GDI support.
    - DC.xs 
        + Changed Region constructors to use object calling convention   

+ [Jeremy White] : Improvements in Windows GDI support.
    - DC.xs 
        + CreateCompatibleDC method now returns a DC object
        + Added CreateCompatibleBitmap method
        + Added Line method (combination of MoveTo and LineTo)
        + Added Win32::GUI::Region object (used for clipping)
           + Added CreateRectRgn
           + Added CreateEllipticRgn
           + Added CreateRoundRectRgn
           + Added PtInRegion
           + Added RectInRegion
           + Added SetRectRgn
           + Added OffsetRgn
           + Added GetRgnBox
           + Added EqualRgn
        + Added SelectClipRgn
        + Added FillRgn
        + Added FrameRgn
        + Added InvertRgn
        + Added PaintRgn
        
+ [Laurent Rocher] : Add new options and documentation.
    - Button.xs : 
        + Add new style option and documentation.
    - Combobox.xs
        + Add new style option and documentation.
    - Header.xs
        + Add new style option and documentation.
    - GUI_Helper.cpp :
        + CreateObjectWithHandle : Fix memory leak 
    - GUI.pm :
        + Add documentation.
    - Label.xs :
        + Add new option.
    - Rebar.xs :
        + Add new option.
    - Trackbar.xs :
        + Add documentation.
    - Window.xs :
        + Add documentation.
    
+ [Laurent Rocher] : Complet ImageList and TabStrip API.
    - Font.xs :
        + Improve parsing font options.
    - GUI.h :
        + Add new prototype.
    - GUI.pm :
        + Add method AddMasked for ImageList.
        + Add method Change for NotifyIcon.
    - ImageList.xs:
        + Add new methods and documentation.
    - StatusBar.xs:
        + Add new style option.
    - TabStrip.xs:
        + Add new methods, styles options and documentation.
    - Trackbar.xs :
        + Change styles name options.
    - Todo :
        + Complete todo

+ [Laurent Rocher] : Complet Tooltip API.
    - GUI.h :
        + Add new prototype.
    - GUI_Options.cpp :
        + Add ParseTooltipOptions.
    - ToolTip.xs :
        + Complet API.

+ [Laurent Rocher] : Fix some build problem with perl5.6 and remove some MinGW warning.

+ [Laurent Rocher] : Complet API and documentation

    - Combobox.xs, DateTime.xs, GUI.pm, GUI.xs :
        + Add some documentation
    - DC.xs :
        + Add lot of new methods
    - GUI.h :
        + Add some new prototype
    - GUI_Options.cpp
        + Add new parse options function.
    - Header.xs :
        + Add new methods and styles options.
    - Label.xs :
        + Add new styles options.
    - Listbox.xs :
        + Add new styles options and documentation.
    - ListView.xs :
        + Add new methods, styles options and documentation.
    - Rebar.xs :
        + Add new methods, styles options and documentation.
    - Toolbar.xs :
        + Add new methods, styles options and documentation.
    - Trackbar.xs :
        + Add new styles options and documentation.
    - TreeView.xs :
        + Add new styles options and documentation.
    - TYPEMAP
        + Add HRGN.

+ [Laurent Rocher] : New Accelerator event NEM code.

    - GUI.h :
        + Add FindChildWindowsProc prototype and search typedef struct.
    - GUI_Events.cpp :
        + Rewrite DoEvent_Accelerator.
    -  GUI_Helpers.cpp :
        + Add FindChildWindowsProc for search a child with specific name.

+ [Laurent Rocher]

    - GUI.h :
        + Add Animate_OpenEx macro for MinGW
        + Add a IS_MODAL dwPlStyle flag.
        + Add EnableWindowsProc callback.
    - GUI.xs :
        + DoModal() : 
            - Return false if function already in DoModal.
            - Add a boolean parameter for disable all Top Window and not only parent/caller.
    - GUI_Helpers.cpp :
        + Add EnableWindowsProc : Activate or Deactivate current thread top window.
    - GUI.pm :
        + Remove Win32::GUI::Window::DESTROY because unecessary and conflic with Win32::GUI::WindowProps.

+ [Laurent Rocher]

    - UpDown :
        + Fix Scroll event.
    - GUI_Events.cpp :
        + In DoEvent_* functions : PERLWIN32GUI_EVENTHANDLING is set after event call.

+ [Laurent Rocher]
    [#627779] : Not able use with embedded perl 
    [#918896] : No [Dbl]RightClick events in NEM
    [#921170] : 670: DC Circle strange arguments
    [#918899] : No NotifyIcon support in NEM
    [#880798] : Accelerators don't work with NEM

    Add destroy window mechanism and free perlud ressource when windows destroy
    Add NEM support for notifyIcon.
    Add full mouse support (left/middle/right mousedown, mouseup, mouseDblClick)

    - Annimation.xs : 
        + Correct Event handling and add OpenEx method.
    - Button.xs : 
        + Use dwFlags & dwFlagsMask in perlcs for set check state.
        + Fix GetCheck and SetCheck Alias.
    - Combobox.xs :
        + Add ComboboxEx ExtendedStyle.
        + Add some documentation and missing methods.
    - DC.xs : 
        + Fix Circle method.
    - GUI.h :
        + Add new dwFlagsMask value in PERLWIN32GUI_CREATESTRUCT and a BitmaskOptionValueMask macro
        + Add PERLUD_FREE macro calling new Perlud_Free function.
        + Add new common Event constant.
    - GUI.pm :
        + Win32::GUI::_new : Use tie return value for safe.
        + Win32::GUI::Window::DESTROY : Change timer/notifyicon clean up (probably no more need).
        + Win32::GUI::Timer : Change new and Destroy method.
          We store timer name in -timers parent hash, and Timer object only 1 time as parent child.
          We don't store window parent reference in Timer object for avoid circular reference. 
        + Win32::GUI::NotifyIcon : Change new and Destroy method.
          Same mechanism than Timer.
        + In Win32::GUI::WindowProps HASH mechanism : 
          Add a DESTROY method and call DestroyWindow for remove Self Window.
    - GUI.xs :
        + RegisterClassEx() : Unregister class if first register fail, and re-try to register.
        + Create : Increment self reference when add to parent hash.
        + DoModal : Remove a forget printf.
    - GUI_Events.cpp :
        + DoEvent_Timer() : Change timer name search (related new method change)
        + DoEvent_NotifyIcon() : Change NotifiIcon name and object search (related new method change)
          and add NEM event support.
    - GUI_Helpers.cpp :
        + Add Perlud_Free : Free all allocated data in perlud (hvEvent, avHooks, svSelf and perlpud).
          Use PERLUD_FREE macro for call it.
    - GUI_MessageLoops.cpp :
        + Add PERLUD_FREE on WN_DESTROY event.
        + Add new standard event : MouseDblClick, MouseRightDown, MouseRightUp, MouseRightDblClick, 
                                   MouseMiddleDown, MouseMiddleUp, MouseMiddleDblClick, Char.
        + Add new NotifyIcon event : DblClick, RightDblClick, MiddleClick, MiddleDblClick.
        + In CustomMsgLoop : Call ControlMsgLoop if PERLWIN32GUI_INTERACTIVE style flag is set.
    - GUI_Options.cpp :
        + ParseNEMEvent : Add new standard event.
        + Add ParseNotifyIconOptions and ParseNEMNotifyIconEvent : add NEM support for NotifyIcon.
    - NotifyIcon.xs :
        + Use ParseNotifyIconOptions for parsing option and NEM event.
    - Splitter.xs :
        + Splitter_onEvent : Fix PerlResult return.
    - Window.xs :
        + Graphic_onEvent & Graphic_onParseEvent : Clean Interactive graphics event handling.
          Now, CustomMsgLoop call ControlMsgLoop if PERLWIN32GUI_INTERACTIVE style flag is set.
    
+ [Laurent Rocher]
    - GUI.h : PERLUD_FROM_WND macro return now 0 (MingW Warning).
    - GUI.pm : 
        + new Graphic method use standard _new creation (and replace hard coded constant)
        + Fix timer DESTROY
    - Window.xs : Graphic_onEvent return Perlresult (and not 0).

+ [Laurent Rocher]
    [#673252] : Win32::GUI and PERL_CONTEXT
    [#879424] : Modal Window Support
    - New Base code : 
        + Separate each control in a specific XS file.
        + Add callback function for each control (onPreCreate, onParseOption, onPostCreate, onParseEvent, OnEvent).
        + Rewrite Event Loop.
        + Merge all event firing code in on function (DoEvent) for OEM and NEM.
        + New DoModal function.
        + Improve Change method.
        + Add lot of control Win32 API method. (Keep alphabetical order and standard API name).         
        + Add new events for control.
        + Some Clean Up.
        + Reduce size of allocate structure per window.
        + Add Perl context handling.
    - Fix doc tools generator (DoDoc.pl and DoHtml.pl)

Before return to MAIN branch

Win32-GUI-665-Fix ChangeLog
===========================

+ [Laurent Rocher]
    - GUI_MessageLoops.cpp : Fix multiple problem with NEM event and painting problem.
    - GUI.xs : Correct problem with wndprocPreNEM changed two time.
    - GUI_Options.cpp : Correct uninitialised variable problem.

Win32-GUI-0_0_671 :

+ [Laurent Rocher]
    - GUI.pm : Change version to 0.0.671
    - GUI.xs : Change version to 0.0.671
    - README : Change version to 0.0.671
    - Readme.txt : Change version to 0.0.671
    - GUI.h : Add av_delete macro for perl 5.005
    - GUI_Events.cpp : In DoEvent_NEM_Menu correct event test (use SvOK).
    - MANIFEST : Update file

+ [Steve Pick]
    - GUI.xs : LoadImage() now tries to find resources in the exe first, and only if that fails does it look on-disk. This means you can use ResHacker or some similar resource editor to add resources to your distributed exe.
    - GUI.xs : Win32::GUI::LoadResource(NAME) added - loads a resource from the current executable and returns it as a scalar. Resource type must be RCDATA (i.e. raw data).

+ [Steve Pick]
    - ListView.xs : Made ListViews aware of the -background option.
    - Toolbar.xs : Implemented all of Ramy's perl toolbar extension in XS code. Added constants as well.
    - GUI_Constants.cpp : Added tons of toolbar-related constants. Note that you should probably use the TBSTYLE_xxx constants instead of the BTNS_xxx constants for toolbar button styles right now as the latter doesnt work depending on your compiler.
    - GUI.pm : Added constants
    - GUI_Events.cpp : Fixed NeedText so it doesnt crash on exit (needed to extend memory reserved by one byte). Modified the way ButtonClick is handled for toolbars - If a dropdown menu should be expanded, there is a new second argument to ButtonClick which is set to 1.
    - TreeView.xs : Fix in InsertItem. Wasn't reserving enough memory for the strings form the -text option.
    - StatusBar.xs : Parts method now detects scalar/array context and returns # parts / list of parts as appropriate
    - GUI_MessageLoops.cpp : Fix for noflicker (previously, the whole client area was not validated - now it is), also added onPaint event to NEM (for graphic objects).
    - GUI.xs : Added GetEvent() and SetEvent() methods. GetEvent(EVENTNAME) will return a coderef to the handler for the specified NEM event name (e.g. "Resize"), SetEvent(EVENTNAME,CODEREF) will set a handler for the event. Made AbsLeft() and AbsTop() accept co-ordinates.

+ [Laurent Rocher]
    - GUI_MessageLoops.cpp : Revrite WM_CTLCOLOREDIT, WM_CTLCOLORSTATIC, WM_CTLCOLORBTN, WM_CTLCOLORLISTBOX event handling in CommonMsgLoop. Correct Both event handling in NEM_WindowMsgLoop.

+ [Jez White & Laurent Rocher]
    - Rebar.xs : Added documentation for all the methods .
             New methods : ShowBand, HideBand, MoveBand, GetBandBorder, GetBarHeight.
             Fix BandInfo crash.

+ [Steve Pick & Laurent Rocher]
    - GUI.xs : Extended support for scrollbars in a window's non-client area. Added NEM event "onScroll" and OEM event "_Scroll" for Window and DialogBox. New functions for Window/Dialog: $w->ScrollRange(SCROLLBAR,[MIN,MAX]), $w->ScrollPos(SCROLLBAR,[POS]), $w->ScrollPage(SCROLLBAR,[PAGESIZE]), $w->Scroll(SCROLLBAR, OPERATION, POSITION). Docs in source as usual. Check GUI.xs.
    - GUI_Events and GUI.h : Support for _Scroll and onScroll events for windows / dialogs
    - GUI_MessageLoops : Fix for $object->Result(x) method, [thanks go to Glenn Linderman for pointing the problem out]
    - StatusBar.xs : Various fixes and optimizations by Laurent Rocher.
    - GUI_Constants.cpp : Added Scrollbar constants (SB_*) and statusbar constants (SBT_*)

+ [Steve Pick]
    - Added StatusBar.xs to handle new StatusBar methods. Each method is documented in this file, but the documentation has not been re-generated.

+ [Steve Pick]
    - GUI.xs : Made ProgressBar aware of -foreground and -background colour settings
    - GUI.xs : Added Result(handle, code) call for explicitly setting the returned LRESULT from a handler. (normally the value returned from Perl handlers was not returned from their calling wndproc, this allows you to specify a result that will be returned.)
    - GUI_MessageLoops.cpp : If CommonMsgLoop must be called then it is called before any Hook handlers are called.

+ [Steve Pick]
    - GUI.xs : Huge update to Hook() and UnHook(). You can now add multiple hooks per message, catch WM_NOTIFY and WM_COMMAND messages, and it works with both New and Old Event Models. Documentation for both functions is present.
    - GUI_MessageLoops.cpp : Addition of DoHook() function and DoHook() calls in NEM_WindowMsgLoop, WindowMsgLoop, and NEM_ChildMsgLoop. DoHook is internal.

+ [Glenn Linderman]
    - GUI.pm : In MakeMenu, Set a default event name to every item with an empty string.
    - GUI_Options.cpp : Added new menu options.

+ [Jeremy White & Laurent Rocher]
    - TabStip.xs : Add new methods and some documentation.

+ [Steve Pick]
    - GUI_MessageLoops.cpp : Added anti-flicker code.
    - GUI_Options.cpp : Added -noflicker option to window/dialogbox.
    - GUI.h : Added flickerFree property to USERDATA and CREATESTRUCT structs
    - GUI.pm : Added documentation line for -noflicker option

+ [Steve Pick & Laurent Rocher]
    - GUI.xs : Left() and Top() now not perform ScreenToClient() on the rectangle for non child window.

Win32-GUI-0_0_670 :

+ [Laurent Rocher]
    - GUI.pm : Change version to 0.0.670
    - GUI.h  : Set NO_XSLOCKS for perl 5.005
    - GUI_MessageLoops.cpp : Fix for perl 5.005
+ [Steve Pick]
    - GUI.xs : Update to Hook() - now returns previous handler coderef on hook reassignment, 0 if no previous assignment, and undef if error.
    - GUI_MessageLoops.cpp : Added code to call Hook()ed handlers to NEM_ChildMsgLoop
+ [Laurent Rocher]
    - GUI.pm : Add AddDatetime, AddGraphics methods
    - GUI.xs : Fix DoEvents double event, add some DateTime methods (GetTime, SetTime, SetNone, IsNone).
    - GUI_Options.cpp : Add option parsing for DateTime control (-align, -format, -shownone, -updown)
    - Typemap : LPARAM handle as string or integer.
+ [Steve Pick]
    - GUI.xs : Added Hook and UnHook methods. These let you do $win->Hook(MsgID, \&somesub); to hook a message to a sub. The sub must be a coderef, and is called with self, wparam and lparam args when the message is received by the window.
    - GUI.h  : Addition of avHooks to PERLWIN32GUI_CREATESTRUCT and PERLWIN32GUI_USERDATA.
    - GUI_MessageLoops.cpp : Addition of hook-calling code to NEM_WindowMsgLoop.
+ [Laurent Rocher]
    - GUI.pm : Fix -prompt option for TextField, correct color option for class (Win98SE).
    - GUI_Options.cpp : Correct -popstyle and -popexstyle like options.
+ [Glenn Linderman] GUI_Options.cpp : Correct menu -enabled option.
+ [Steve Pick] GUI.h : Added PERLWIN32GUI_NEM_TIMER event.
    - GUI.pm: fixed Win32::GUI::Class::new to avoid the "white background" syndrome on Windows 2000. Fixed conditional so that all operating systems with version above and including 5.1 have the no-white-background fix.
    - GUI_MessageLoops.cpp: added WM_TIMER event to NEM_WindowMsgLoop, now NEM handler -onTimer will be called whenever a timer added to the window triggers. The NAME of the timer is provided as an argument to the handler.
    - GUI_Options.cpp: Fix to allow -onTimer.
    - GUI_Events.cpp: NEM Events always returned PerlResult of -2, even if a handler was found and called for the event. Now it returns 0 if everything was successful, as it should judging by the rest of the code.
+ [Laurent Rocher] Add build with MinGW and ExtUtils-FakeConfig support.
  You can build Win32-GUI for ActiveState Perl with Free MingW Compiler.
  See HowTo : http://perso.club-internet.fr/rocherl/Win32GUI.html
+ [Steve Pick] GUI.pm: Fix ImageList bug
+ [Glenn Linderman] MessageLoops.cpp: Fix Window Cursor bug (Without return FALSE statement)
+ [Steve Pick] GUI.xs : Fix PeekMessage (move SvROK in inner if and remove sv_2mortal)
+ [Aldo Calpini] GUI.pm
    - fixed Win32::GUI::Class::new to avoid the "white background" syndrome on XP)
    - fixed a bug with options parsing in Win32::GUI::Textfield::new
    - reworked a little the code for Win32::GUI::AcceleratorTable
+ [Glenn Linderman] Accelerator key patch, Correct NotifyIcon DESTROY, add PM_* constants for use with TrackPopupMenu.
+ [Laurent Rocher] Fix some warnings, Remove unused variables, remove constants.c file.
+ [Trevor Garside] Add new RichEdit methods.
+ [Steve Pick & Laurent Rocher] Add parameters for WM_KEYDOWN and WM_KEYUP NEM events in NEM_ChildMsgLoop.
+ [Johan Lindstrom] Add WM_DROPFILES event in WindowMsgLoop.
+ [Laurent Rocher] Add new options for GetOpenFileName and GetSaveFileName.
+ [Jeremy White & Laurent Rocher] Add new datetime control methods and DTS_* styles constants.