2nd October, 2004
This is first Release candidate for Win32::GUI v1.0.
This version is a main development branch of Win32::GUI based on a rewritten base code.
- Completely new base code. - Full NEM/OEM support. - Lot of control Win32 API method. - Preserved Perl context. - New DoModal. - More documentation. - MDI application support. - Add MonthCal control. ...
+ [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] : Complete 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 conflict 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)