Hi All,
I commit new changes.
- Window properties now re-work.
- Handle correctly Window life and Perl variable life
(i hope it work because i loose my hair on it ;o)
- Add MDI window support (3 new class MDIFrame, MDIClient and
MDIChild).
For MDI, i have add a sample in Samples directory.
It's work but one stuff don't work as expected :-(
I have a trouble with menu identifer when try to add a window menu to
MDIClient.
It's use 0 based identifier for window child menu item but not assigned
default MDIChild identifier.
So, i have a conflict with standard menu item. Need to investigate ...
Laurent.
Changelog : 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.