On approximately 3/14/2004 12:12 PM, came the following characters from
the keyboard of Laurent ROCHER:
Hi All,
It's probably time to made a new Win32::GUI release based on
Win32-GUI-0_0_665-fix branch.
I can create a Win32-GUI-0.0.671 from this branch.
Does someone have something to put in this branch before release ?
JUST before release, would this be a good time to run all the code
through some pretty printer, to unify all the indentation, and remove
all the TABs (except for TABs that mean up-to-8-spaces, according to the
ASCII definition of TAB)?
After, it's probably time to stop working on this branch and start
working on next Win32-GUI with new event model implementation.
I have made huge work on Win32::GUI this week-end for refactoring
Win32::GUI code.
I have create a .xs file for each control and try to implement
all of SendMessage/Macro control API (not finish).
For each CLASS control, i have a XS file with :
* First part, define some control callback function :
- xxx_onPreCreate : this function set defaut style for control
- xxx_onParseOption: this function parse specific control option
- xxx_onPostCreate : this function handle specific control
option property (color,...)
This function is call after Window creation and in
Change method too.
We probably need a different name.
I think we can extend this concept of callback method for
all control and add more function.
After, we can replace all Switch(class) by a pFct[class]
call where pFct it's an array of pointer function.
It's possibly something to use for new event model, create a
special callback fonction for handle all event of control. Like this,
all code for a control it's in one file.
* Second Part, i implement all Control API
I use same ordre than MSDN documentation (alphabetic order)
and use same name than standard Window API (message name or macro name).
I use same name because, i think it's probably easier for
find documentation in MSDN .
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/wincontrols.asp
I create ALIAS for keep old Win32::GUI name.
For sample, with Textfield, i define GetSel (same name
as message name) and define an ALIAS for Selection() method.
###########################################################################
# (@)METHOD:GetSel()
#
# (@)METHOD:Selection()
# See GetSel.
void
GetSel(handle)
HWND handle
ALIAS:
Win32::GUI::Textfield::Selection = 1
PREINIT:
DWORD start;
DWORD end;
PPCODE:
SendMessage(handle, EM_GETSEL, (WPARAM) &start, (LPARAM) &end);
EXTEND(SP, 2);
XST_mIV(0, (long) start);
XST_mIV(1, (long) end);
XSRETURN(2);
* Last Part, containt more high level method for the control.
I have keep in GUI.PM only pure perl method.
You can see a copy of my developpement directory here :
http://perso.club-internet.fr/rocherl/Win32-GUI-Dev/Win32-GUI.zip
I you found this work interesting, we can use it as base code for
starting to work on next Win32::GUI implentation.
We can use MAIN cvs branch (of Win32-GUI CVS module) for this.
Cheers,
Laurent.
--
Glenn -- http://nevcal.com/
===========================
The best part about procrastination is that you are never bored,
because you have all kinds of things that you should be doing.