You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(2) |
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(4) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2003 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(31) |
Dec
(80) |
2004 |
Jan
(30) |
Feb
(31) |
Mar
(46) |
Apr
(31) |
May
(48) |
Jun
(16) |
Jul
|
Aug
|
Sep
(20) |
Oct
(31) |
Nov
(13) |
Dec
(1) |
2005 |
Jan
(4) |
Feb
(7) |
Mar
|
Apr
(3) |
May
(1) |
Jun
(37) |
Jul
(39) |
Aug
(22) |
Sep
(3) |
Oct
(48) |
Nov
(24) |
Dec
(31) |
2006 |
Jan
(4) |
Feb
(6) |
Mar
(19) |
Apr
(17) |
May
(39) |
Jun
(62) |
Jul
(11) |
Aug
(21) |
Sep
(10) |
Oct
(26) |
Nov
(8) |
Dec
|
2007 |
Jan
(7) |
Feb
(6) |
Mar
(2) |
Apr
|
May
|
Jun
(4) |
Jul
(10) |
Aug
(1) |
Sep
(2) |
Oct
|
Nov
(1) |
Dec
(2) |
2008 |
Jan
(19) |
Feb
(24) |
Mar
|
Apr
(4) |
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Laurent R. <ro...@cl...> - 2003-11-21 18:34:16
|
For "A" problem, i don't think it's a else problem. You can call PeekMessage without a message parameter. In this case message == &PL_sv_undef, and no warming it's necessary. If you specify a message parameter, then we need a reference (SvROK) and must be a Array reference. I think it's better to move SvROK(message) in inner if, like this : BOOL PeekMessage(handle, min=0, max=0, message=&PL_sv_undef) HWND handle UINT min UINT max SV* message PREINIT: MSG msg; CODE: ZeroMemory(&msg, sizeof(msg)); RETVAL = PeekMessage(&msg, handle, min, max, PM_NOREMOVE); if(message != &PL_sv_undef) { if(SvROK(message) && SvTYPE(SvRV(message)) == SVt_PVAV) { av_clear((AV*) SvRV(message)); av_push((AV*) SvRV(message), newSViv((long) msg.hwnd)); av_push((AV*) SvRV(message), newSViv(msg.message)); av_push((AV*) SvRV(message), newSViv(msg.wParam)); av_push((AV*) SvRV(message), newSViv(msg.lParam)); av_push((AV*) SvRV(message), newSViv(msg.time)); av_push((AV*) SvRV(message), newSViv(msg.pt.x)); av_push((AV*) SvRV(message), newSViv(msg.pt.y)); } else { if(PL_dowarn) warn("Win32::GUI: fourth parameter to PeekMessage is not an array reference"); } } OUTPUT: RETVAL Laurent. ----- Original Message ----- From: "Steve Pick" <st...@ba...> To: "Win32 GUI Hackers" <per...@li...> Sent: Friday, November 21, 2003 2:50 AM Subject: [perl-win32-gui-hackers] Fix for PeekMessage > > You'll notice PeekMessage A) doesnt warn about non-references even though > the warning code is there and B) Yields a ton of "attempt to free > unreferenced scalar" errors. The problem was an else{} in the wrong place, > and making array values mortal so they got cleaned up before they ever hit > your perl program, so here's it fixed. > > ########################################################################### > # (@)METHOD:PeekMessage([MIN, MAX, MESSAGE]) > # Inspects the window's message queue and eventually returns data > # about the message it contains; it can optionally check only for > message > # identifiers in the range MIN..MAX; the last MESSAGE parameter, if > # specified, must be an array reference. > # If a message is found, the function puts in that array 7 elements > # containing: > # - the handle of the window to which the message is addressed > # - the message identifier > # - the wParam argument > # - the lParam argument > # - the time when message occurs > # - the x coordinate at which message occurs > # - the y coordinate at which message occurs > # > BOOL > PeekMessage(handle, min=0, max=0, message=&PL_sv_undef) > HWND handle > UINT min > UINT max > SV* message > PREINIT: > MSG msg; > CODE: > ZeroMemory(&msg, sizeof(msg)); > RETVAL = PeekMessage(&msg, handle, min, max, PM_NOREMOVE); > if(message != &PL_sv_undef && SvROK(message)) { > if(SvTYPE(SvRV(message)) == SVt_PVAV) { > av_clear((AV*) SvRV(message)); > av_push((AV*) SvRV(message), newSViv((long) msg.hwnd)); > av_push((AV*) SvRV(message), newSViv(msg.message)); > av_push((AV*) SvRV(message), newSViv(msg.wParam)); > av_push((AV*) SvRV(message), newSViv(msg.lParam)); > av_push((AV*) SvRV(message), newSViv(msg.time)); > av_push((AV*) SvRV(message), newSViv(msg.pt.x)); > av_push((AV*) SvRV(message), newSViv(msg.pt.y)); > } > } > else { > if(PL_dowarn) warn("Win32::GUI: fourth parameter to PeekMessage is > not an array reference"); > } > OUTPUT: > RETVAL |
From: Laurent R. <ro...@cl...> - 2003-11-21 18:13:52
|
Hi, I haven't commit exact Glenn patch. I have commmit this : case WM_SETCURSOR: { WORD nHitTest = LOWORD( lParam ); if( nHitTest == HTCLIENT ) { // only diddle cursor in client areas LPPERLWIN32GUI_USERDATA perlud; perlud = (LPPERLWIN32GUI_USERDATA) GetWindowLong((HWND) wParam, GWL_USERDATA); if( ValidUserData(perlud) && perlud->hCursor != NULL ) { SetCursor( perlud->hCursor ); return TRUE; } } break; } It's return TRUE only if window have a cursor and nHitTest == HTCLIENT. Otherwise, i call DefWindowProc do his job. I haven't any more cursor problem. I think add perlcs.iEventModel = PERLWIN32GUI_EM_BYNAME; in Window create override default Class cursor. Can you test with only above code (or CVS code), and say me if it work for you ? Laurent. ----- Original Message ----- From: "Glenn Linderman" <pe...@ne...> To: "Steve Pick" <st...@ba...> Cc: "Win32 GUI Users" <per...@li...>; "Win32 GUI Hackers" <per...@li...> Sent: Friday, November 21, 2003 1:50 AM Subject: [perl-win32-gui-users] Re: [perl-win32-gui-hackers] additional fix for cursors > Excellant. I had noticed the resize cursor persisted until the mouse > pointer got to a "real" sub object inside the main window... annoying > but not (to me) as annoying as not having the resize cursors at all, and > not a problem on windows that are filled with sub objects. But this fix > does the trick. > > Thanks, Steve. I've applied it to my version, and I'll be sure to > coordinate with Laurent to get all my fixes into the bug-fix branch. > > > On approximately 11/20/2003 4:36 PM, came the following characters from > the keyboard of Steve Pick: > > In addition to Glenn Linderman's fix for resize cursors this should be put > > in (@)INTERNAL:Create(%OPTIONS) near the top: > > > > perlcs.hCursor = LoadCursor(NULL, IDC_ARROW); > > > > I've put it just below the line that reads > > perlcs.iEventModel = PERLWIN32GUI_EM_BYNAME; > > > > This will stop the cursor remaining as a resize handle, hourglass etc when > > moved inside the window. > > > > Steve > > -- > Glenn -- http://nevcal.com/ |
From: Steve P. <st...@ba...> - 2003-11-21 01:48:37
|
You'll notice PeekMessage A) doesnt warn about non-references even though the warning code is there and B) Yields a ton of "attempt to free unreferenced scalar" errors. The problem was an else{} in the wrong place, and making array values mortal so they got cleaned up before they ever hit your perl program, so here's it fixed. ########################################################################### # (@)METHOD:PeekMessage([MIN, MAX, MESSAGE]) # Inspects the window's message queue and eventually returns data # about the message it contains; it can optionally check only for message # identifiers in the range MIN..MAX; the last MESSAGE parameter, if # specified, must be an array reference. # If a message is found, the function puts in that array 7 elements # containing: # - the handle of the window to which the message is addressed # - the message identifier # - the wParam argument # - the lParam argument # - the time when message occurs # - the x coordinate at which message occurs # - the y coordinate at which message occurs # BOOL PeekMessage(handle, min=0, max=0, message=&PL_sv_undef) HWND handle UINT min UINT max SV* message PREINIT: MSG msg; CODE: ZeroMemory(&msg, sizeof(msg)); RETVAL = PeekMessage(&msg, handle, min, max, PM_NOREMOVE); if(message != &PL_sv_undef && SvROK(message)) { if(SvTYPE(SvRV(message)) == SVt_PVAV) { av_clear((AV*) SvRV(message)); av_push((AV*) SvRV(message), newSViv((long) msg.hwnd)); av_push((AV*) SvRV(message), newSViv(msg.message)); av_push((AV*) SvRV(message), newSViv(msg.wParam)); av_push((AV*) SvRV(message), newSViv(msg.lParam)); av_push((AV*) SvRV(message), newSViv(msg.time)); av_push((AV*) SvRV(message), newSViv(msg.pt.x)); av_push((AV*) SvRV(message), newSViv(msg.pt.y)); } } else { if(PL_dowarn) warn("Win32::GUI: fourth parameter to PeekMessage is not an array reference"); } OUTPUT: RETVAL |
From: Glenn L. <pe...@ne...> - 2003-11-21 01:04:25
|
Excellant. I had noticed the resize cursor persisted until the mouse pointer got to a "real" sub object inside the main window... annoying but not (to me) as annoying as not having the resize cursors at all, and not a problem on windows that are filled with sub objects. But this fix does the trick. Thanks, Steve. I've applied it to my version, and I'll be sure to coordinate with Laurent to get all my fixes into the bug-fix branch. On approximately 11/20/2003 4:36 PM, came the following characters from the keyboard of Steve Pick: > In addition to Glenn Linderman's fix for resize cursors this should be put > in (@)INTERNAL:Create(%OPTIONS) near the top: > > perlcs.hCursor = LoadCursor(NULL, IDC_ARROW); > > I've put it just below the line that reads > perlcs.iEventModel = PERLWIN32GUI_EM_BYNAME; > > This will stop the cursor remaining as a resize handle, hourglass etc when > moved inside the window. > > Steve -- Glenn -- http://nevcal.com/ =========================== Like almost everyone, I receive a lot of spam every day, much of it offering to help me get out of debt or get rich quick. It's ridiculous. -- Bill Gates And here is why it is ridiculous: The division that includes Windows posted an operating profit of $2.26 billion on revenue of $2.81 billion. --from Reuters via http://biz.yahoo.com/rc/031113/tech_microsoft_msn_1.html So that's profit of over 400% of investment... with a bit more investment in Windows technology, particularly in the area of reliability, the profit percentage might go down, but so might the bugs and security problems? Seems like it would be a reasonable tradeoff. WalMart earnings are 3.4% of investment. |
From: Steve P. <st...@ba...> - 2003-11-21 00:34:22
|
In addition to Glenn Linderman's fix for resize cursors this should be put in (@)INTERNAL:Create(%OPTIONS) near the top: perlcs.hCursor = LoadCursor(NULL, IDC_ARROW); I've put it just below the line that reads perlcs.iEventModel = PERLWIN32GUI_EM_BYNAME; This will stop the cursor remaining as a resize handle, hourglass etc when moved inside the window. Steve |
From: Johan L. <jo...@ba...> - 2003-11-20 20:44:05
|
At 21:34 2003-11-20, Laurent ROCHER wrote: >I contiue to look in mail archive for more fix. Please add my drag-n-drop patch, both the XS code and the Perl code. No need for a separate module, just integrate it into the regular source. This is for 0.0.558, the line numbers will probably differ from 0.0.665: http://www.bahnhof.se/~johanl/perl/Win32GUI/DragDrop.pm /J -------- ------ ---- --- -- -- -- - - - - - Johan Lindström Sourcerer @ Boss Casinos jo...@ba... Latest bookmark: "Oracle Pipeline - Quest Software's Information..." http://www.quest-pipelines.com/pipelines/dba/index.asp dmoz: /Computers/Programming/Languages/PL-SQL/ 78 |
From: Laurent R. <ro...@cl...> - 2003-11-20 20:33:57
|
I found those patch in win32-gui mailing list. Commit in Win32-GUI-0_0_665-Fix : + [Steve Pick] GUI.pm: Fix ImageList bug + [Glenn Linderman] MessageLoops.cpp: Fix Window Cursor bug I contiue to look in mail archive for more fix. Laurent. |
From: Laurent R. <ro...@cl...> - 2003-11-19 20:58:01
|
> Laurent ROCHER wrote: > > I have play a little with CVS, and i think i can setup CVS like this. > > good news. I can play with CVS, but I know almost nothing about > branches. > > > 1) Tag current CVS source code as Win32-GUI-0_0_622. > > I have notice a problem with text files. Each line end with CRCRLF. > > I found this in TortoiseCVS FAQ : > > http://www.tortoisecvs.org/faq.html#sharelinux > > I have fix this in my home repository, so i can correct it before. > > 2) Upload 665 code and tag it as Win32-GUI-0_0_665 > > 3) Make a Win32-GUI-0_0_665-Fix branch and use this branch for fix bug. > > So, we can continue to use main branch for new version. > > sounds perfectly reasonable. > > > If you are agree, i can do the job and start to work on 665 fix branch. > > I probably take a look on next release too ;) > > ok. you should already have write access to the CVS, so you can start > as soon as you want. let me know when you are done (and let me know > the commands to access a specific branch, because I never did it :-). I have finish CVS change. I'm using TortoiseCVS for use CVS change. (Web: http://www.tortoisecvs.org/) It's very easy to use and have very intuitive GUI. With Tortoise CVS, use CVS CherckOut... - In Module tab : Enter information to connect on Sourceforge Win32-GUI CVS. - In Revision tag : Choose for Head branch or a specific tag or branch (Win32-GUI-0_0_665-Fix). - In Options : Change local directory name. If you have command line cvs, i don't know right command. For help, in TortoiseCVS console view, i have : 1) CheckOut Head branch : cvs95.exe -q -z9 checkout -P Win32-GUI 2) CheckOut 665-Fix branch : cvs95.exe -q -z9 checkout -r Win32-GUI-0_0_665-Fix -P Win32-GUI I have a -d Win32-GUI-0_0_665-Fix option if i want a different local directory name. In Win32-GUI-0_0_665-Fix branch, i have commit my change for build with MingW and ExtUtils-FakeConfig. So it's possible to build Win32-GUI for ActiveState Perl with Visual C++ or MinGW. I have notice anonymous Sourceforge CVS access have 24 hours delay. Cheers, Laurent. |
From: Aldo C. <da...@pe...> - 2003-11-19 14:47:58
|
Steve Pick wrote: > Hi, > > Thanks for coming back to the project, nice to finally get to talk to you. > I'm spearheading getting some flicker-free redraws working in Win32::GUI but > whenever I try to double-buffer in a window resize, the flicker just > remains. It looks as though the widgets are redrawn after the window, and so > the widgets arent actually part of the window's DC on resize (?!). that's interesting. I thought about double-buffering, but never tried anything. the window DC *should* contains its own widgets (at least, that's how SaveBMP works). but maybe there's something going on in the message queue that screw things up, I don't know. > In NEM_WindowMsgLoop, [...] wait, wait. are you sure that NEM_WindowMsgLoop is the correct place? the current code base is a little (ok, a *big*) mess because I was trying to make the old- and new-event-model to coexist, so maybe NEM_WindowMsgLoop never gets hit. if you open GUI.h, you'll see there are two lines at the beginning: // #define PERLWIN32GUI_DEBUG // #define PERLWIN32GUI_STRONGDEBUG uncomment these and rebuild the module. everything will be veeeeeery slow, but in the console you will see every single thing that's happening (and which message loop is spinning). BTW, if you want to send me your code, I can take a look at it and help you with debugging. > This is my first try at some win32 programming in C / C++ (I'm used to > console or unix stuff) so cut me some slack while I get used to it :) you're really, really welcome :-) cheers, Aldo __END__ $_=q,just perl,,s, , another ,,s,$, hacker,,print; |
From: Steve P. <st...@ba...> - 2003-11-18 18:42:59
|
Hi, Thanks for coming back to the project, nice to finally get to talk to you. I'm spearheading getting some flicker-free redraws working in Win32::GUI but whenever I try to double-buffer in a window resize, the flicker just remains. It looks as though the widgets are redrawn after the window, and so the widgets arent actually part of the window's DC on resize (?!). I need to know where and how the widgets are drawn. I'm working with 0.0.665. Here's the process i've been using up to now: In NEM_WindowMsgLoop, I ignore any WM_ERASEBKGND messages. Then I create a memory DC that's compatible with the window's DC, and add a bitmap to the memory DC that's compatible with the bitmap in the window's DC. I fill the bitmap in the memory DC with the window's background colour, then BitBlt the window DC over onto the memory DC, then BitBlt the memory DC back into the window. I know that this might still leave streaking behind since the streaks will be part of the window bitmap, but I can fix that once I know that i'm getting the data I expect for the window contents. Currently I'm just getting *nothing* at all (flat blank bitmap is copied to memory DC). I even tried ripping off your code for SaveBMP but that produces nothing either. Idealy, from what I can gather, every widget should be drawn in a memory DC (all drawing, erasing backgrounds etc takes place here), the window should ignore WM_ERASEBKGND (I.e. return (LRESULT) 1 when it receives it to say we handled it), and the WM_PAINT message should simply cause a BitBlt from the memory DC into the window's DC. Flicker Gone For Good. This is my first try at some win32 programming in C / C++ (I'm used to console or unix stuff) so cut me some slack while I get used to it :) Thanks in advance, Steve |
From: John C. H. <gt...@ma...> - 2003-01-01 05:17:45
|
I think I've hunted down the bug that causes anything that uses the mousemove stuff to crash. Around line 800 or so in the file Gui_MessageLoops.cpp, the function ButtonMsgLoop has no default statement in the handling loop. The value of PerlResult is left up to chance and so at the end of the function, when DefButtonProc(hwnd, uMsg, wParam, lParam) is called, everything dies a horrible painful death. Tacking in a default that sets PerlResult to 0 in that case will keep the example code supplied by Alan Lindsey (http://sourceforge.net/mailarchive/message.php?msg_id=2514089) from crashing. I wonder if the function is really intended to work though in this release. I'm curious about the beginning of the function: char Name[MAX_EVENT_NAME]; PerlResult = 1; strcpy(Name, "main::"); The name of the button isn't even used, but this is plausibly dangerous since the Name array isn't initialized before it's used. Also, this may just be me misinterpreting things, but the value of perlcs->cs.lpszName It strikes me as odd that the -title option fills this in where -name fills in the window name. Just wondering. I'm hacking back and forth between the latest and second latest release to rebuild the event model to work like Java's model (centralized event dispatching) instead of Visual Basic's. Chris |
From: Johan L. <jo...@ba...> - 2002-01-21 11:27:51
|
Aldo wrote: > > I would like to submit a minor patch to Win32::GUI, providing drag-n- > > drop functionality. How would I go about doing that? > >great! send it either to me, or to this list. It's all here (Perl + XS): http://www.bahnhof.se/~johanl/perl/Win32GUI/DragDrop.pm Please let me know if you have any questions or concerns. On related note: I saw a submitted patch for a bug in the Splitter control on the SourceForge site. Is there any chance that it might make it into a new release? /J -------- ------ ---- --- -- -- -- - - - - - Johan Lindström Sourcerer @ Boss Casinos jo...@ba... Latest bookmark: "What does efficient mean!" <http://www.perlmonks.org/index.pl?node_id=138919&lastnode_id=140162> |
From: Aldo C. <da...@pe...> - 2002-01-21 10:29:34
|
Johan Lindstrom wrote: > Hi all! > > I would like to submit a minor patch to Win32::GUI, providing drag-n- > drop functionality. How would I go about doing that? great! send it either to me, or to this list. cheers, Aldo __END__ $_=q,just perl,,s, , another ,,s,$, hacker,,print; |
From: Johan L. <jo...@ba...> - 2002-01-18 16:58:27
|
Hi all! I would like to submit a minor patch to Win32::GUI, providing drag-n-drop functionality. How would I go about doing that? /J -------- ------ ---- --- -- -- -- - - - - - Johan Lindström Sourcerer @ Boss Casinos jo...@ba... Latest bookmark: "Converting HSV colours to RGB" <http://www.perlmonks.org/index.pl?node_id=139485&lastnode_id=3628> |
From: ed <co...@ya...> - 2002-01-10 17:06:58
|
Hey all.. Just subscribed. I was trying to learn a little about programming win32::gui and found some tutorials here http://search.cpan.org/search?dist=Win32-GUI But tutorials 6,7, and 8 seem to be missing. Are they anywhere to be found? Are there any other good resources to learn about programming the win32::gui ..? thanks, --ed __________________________________________________ Do You Yahoo!? Send FREE video emails in Yahoo! Mail! http://promo.yahoo.com/videomail/ |
From: Johannes G. <in...@de...> - 2001-11-01 22:18:09
|
thx a lot sam and Johan ... i've found a solution for me :-) seems to work fine ... so long Hannes use Win32::GUI; my ($DOS) = Win32::GUI::GetPerlWindow(); Win32::GUI::Hide($DOS); $Win = new Win32::GUI::Window( -left => 498, -top => 305, -width => 301, -height => 313, -name => "Win", -text => "Devshare.de" ); $Win->Show(); $Icon = new Win32::GUI::Icon("camel.ico"); new Win32::GUI::NotifyIcon( $Win, -name => "Notify", -id => 1, -icon => $Icon, -tip => "Win32::GUI hello", ); Win32::GUI::Dialog(); $Win->Notify->Delete(-id => 1); sub Win_Terminate { return -1; } sub Win_Minimize { $Win->Disable(); $Win->Hide(); 1; } sub Notify_Click { if($Win->IsVisible) { $Win->Disable(); $Win->Hide(); } else { $Win->Enable(); $Win->Show(); } } |
From: Johannes G. <in...@de...> - 2001-11-01 21:00:58
|
Hello, does anyone know how to get a link on on a RichEdit-Field on win32::gui to work? Any examples .... ? the next problem i have is that i would like to show a icon in the system tray on hiding my window. when i click on the icon in the tray the window should show again ... this works fine, but only for one time .. the next time my window are closed .. any ideas? thx a lot ... Hannes -- Johannes Gamperl |