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: Glenn W M. <gwm...@gm...> - 2007-02-08 21:31:55
|
I've been working on an old project and am seeing an old problem and a new one. The old problem is the: "(in cleanup) Can't call method "FETCH" on an undefined value..." message on program exit. Rob thought he had this one pinned down, but it seems there's still a problem somewhere. It goes away as usual when I put the: undef $mw statement after exiting the Dialog phase. The new problem is with the new UserData method. I tried saving a hash reference, but am getting this error: Can't use string ("1") as a HASH ref while "strict refs" in use... on use of the expression $mw->tbTab->UserData()->{key} The same expression works OK in a trivial example: =============================================== #!perl -w use Win32(); use Win32::GUI 1.05 (); my $mw = new Win32::GUI::Window(-name => "mw"); $mw->AddTabStrip(-name => "tbTab"); $mw->tbTab->UserData(5); Win32::MsgBox($mw->tbTab->UserData()); $mw->tbTab->UserData("String"); Win32::MsgBox($mw->tbTab->UserData()); my $hashref = { key => "value" }; $mw->tbTab->UserData($hashref); Win32::MsgBox($mw->tbTab->UserData()->{key}); ================================================ I also saw the message: "userData ref count not 1 during destruction - please report this..." at one point (but am having trouble reproducing that one). I am using version 1.05 of the module. I know the next request will be to provide a minimal example demonstrating the problems, but this program is a labour of love and is almost 4000 lines long! I can work around both problems and am only reporting them for the record as it was requested. Then again, I don't mind sending a copy of the program if anybody wants to look into it. Glenn |
From: Robert M. <rm...@po...> - 2007-01-21 15:21:23
|
Jeremy White wrote: >> Tracker 1417288 >> https://sourceforge.net/tracker/index.php?func=detail&aid=1417288&group_id=16572&atid=116572 >> >> >> This bug report claims that the following code leaks memory: >> >> #!perl -w > >> I don't see any leak with Win32::GUI v1.05, perl 5.6.1, 5.8.7, 5.8.8, >> Win98 or Win2K. >> >> Can anyone reproduce this leak (I'm particularly interested if this is a >> WinXP thing) or can I close the report? > > I've just tried to reproduce it in an old Win32-GUI environment and it > was leaking - upgrading to the latest code (via CVS) fixes the issue > (that bug report might have come from me!) Thanks for the report - seems the tracker can be closed. Can you let me know what earlier Win32::GUI version you used to see the leak - I'd like to understand which change fixed this. Rob. |
From: Jeremy W. <jez...@ho...> - 2007-01-21 12:30:46
|
>Tracker 1417288 >https://sourceforge.net/tracker/index.php?func=detail&aid=1417288&group_id=16572&atid=116572 > >This bug report claims that the following code leaks memory: > >#!perl -w >I don't see any leak with Win32::GUI v1.05, perl 5.6.1, 5.8.7, 5.8.8, >Win98 or Win2K. > >Can anyone reproduce this leak (I'm particularly interested if this is a >WinXP thing) or can I close the report? I've just tried to reproduce it in an old Win32-GUI environment and it was leaking - upgrading to the latest code (via CVS) fixes the issue (that bug report might have come from me!) Cheers, Jez. _________________________________________________________________ MSN Hotmail is evolving check out the new Windows Live Mail http://ideas.live.com |
From: Robert M. <rm...@po...> - 2007-01-20 20:02:56
|
Steve Loughran wrote: > Left it running for 5 minutes. Checking with process explorer shows no > leaks here (on the perl.exe app, or on the system in general) as far as > I can tell. ActivePerl 5.8.8, XP Pro. > > Steve Thanks. Unless someone tells me otherwise I'm going to close this bug. (I'm also tempted to make it mandatory to be logged in to sourceforge to create a new bug tracker entry, as there's no submitter information to allow me to contact the original reporter). Rob. > Robert May wrote: >> Tracker 1417288 >> https://sourceforge.net/tracker/index.php?func=detail&aid=1417288&group_id=16572&atid=116572 >> >> This bug report claims that the following code leaks memory: >> >> #!perl -w >> use strict; >> use Win32::GUI; >> >> my ($W,$but); >> while (1) { >> $W = new Win32::GUI::Window( >> #-name => "TestWindow", >> -pos => [ 0, 0], >> -size => [210, 200], >> -text => "TestWindow", >> ); >> $but=$W->AddButton( >> #-name => "test", >> -text => "Button 1", >> -size => [ 70, 22 ], >> -pos => [ 20, 20 ], >> ); >> } >> __END__ >> >> I don't see any leak with Win32::GUI v1.05, perl 5.6.1, 5.8.7, 5.8.8, >> Win98 or Win2K. >> >> Can anyone reproduce this leak (I'm particularly interested if this is a >> WinXP thing) or can I close the report? >> >> Regards, >> Rob. > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys - and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > Perl-Win32-GUI-Hackers mailing list > Per...@li... > https://lists.sourceforge.net/lists/listinfo/perl-win32-gui-hackers > http://perl-win32-gui.sourceforge.net/ > |
From: Robert M. <rm...@po...> - 2007-01-20 19:57:29
|
A long time ago Jeremy White wrote: > When the code below is run, it leaks User objects in the task manager. This > is with the latest codeline running under XP. And under Win98 and Win2k, all versions of perl that I have. > Both -dropdown and -dropdownlist options highlight the leak. I've have a > quick glance through the code but can't seem to find anything that could > cause this - a windows bug perhaps? I'm on a roll today! I've just committed a change that fixes this. I may fix all sorts of other memory leaks for dynamically created/destroyed child windows. When you call DestroyWindow on a window, Windows automatically calls DestroyWindow on all it's children. However, the drop-down listview dox is not a child of the combobox window (it's a top-level window, so that it can draw outside the main window's client area). When DestroyWindow is called on a ComboBox, the ComboBox itself takes responsibility for tidying up the drop-down window, which it does in it's WM_NCDESTROY handler. However, we tidy-up our PERLUD structure in our WM_DESTROY handler, and we never removed our sub-class proc, restoring the original windows prodedure for the controls. Hence, the WM_NCDESTROY messages were being delivered to our subclass proc, and because PERLUD has been freed we no longer knew where to send the WM_NCDESTROY, and so passed it to DefWindProc. Oops, no longer tidying up the Combo-box drop-down. I've added a couple of lines to to our perud_free() routine to restore the original window proc (if there was one), so the WM_NCDESTORY messages go to the control's handler. This fixes this problem, and potentially many others where controls may have tidied-up in their WM_NCDESTROY handlers. Regards, Rob. > > It's only a minor problem, and again only an issue if dynamic controls are > repeatedly created/destroyed. Saying that, there is only a 10K limit on > objects before things go boom - and win32-gui does seem to create a lot of > objects - my app - before it's done anything has 650+, so it might be > highlighting some other problem. > > Cheers, > > jez. > > > use strict; > use warnings; > $|=1; > use Win32::GUI(); > > my $main = new Win32::GUI::Window ( > -size => [400,400], > ); > > for (1..100) { > my $box=$main->AddCombobox( > -name => 'combo', > #-dropdownlist => 1, > -dropdown => 1, > -left => 100, > -top =>4, > -width => 100, > -height => 100, > ); > print "$box \n"; > sleep(1); > } > > > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys -- and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > Perl-Win32-GUI-Hackers mailing list > Per...@li... > https://lists.sourceforge.net/lists/listinfo/perl-win32-gui-hackers > http://perl-win32-gui.sourceforge.net/ > |
From: Steve L. <ste...@sc...> - 2007-01-20 18:39:48
|
Left it running for 5 minutes. Checking with process explorer shows no leaks here (on the perl.exe app, or on the system in general) as far as I can tell. ActivePerl 5.8.8, XP Pro. Steve Robert May wrote: > Tracker 1417288 > https://sourceforge.net/tracker/index.php?func=detail&aid=1417288&group_id=16572&atid=116572 > > This bug report claims that the following code leaks memory: > > #!perl -w > use strict; > use Win32::GUI; > > my ($W,$but); > while (1) { > $W = new Win32::GUI::Window( > #-name => "TestWindow", > -pos => [ 0, 0], > -size => [210, 200], > -text => "TestWindow", > ); > $but=$W->AddButton( > #-name => "test", > -text => "Button 1", > -size => [ 70, 22 ], > -pos => [ 20, 20 ], > ); > } > __END__ > > I don't see any leak with Win32::GUI v1.05, perl 5.6.1, 5.8.7, 5.8.8, > Win98 or Win2K. > > Can anyone reproduce this leak (I'm particularly interested if this is a > WinXP thing) or can I close the report? > > Regards, > Rob. |
From: Robert M. <rm...@po...> - 2007-01-20 18:10:41
|
Tracker 1417288 https://sourceforge.net/tracker/index.php?func=detail&aid=1417288&group_id=16572&atid=116572 This bug report claims that the following code leaks memory: #!perl -w use strict; use Win32::GUI; my ($W,$but); while (1) { $W = new Win32::GUI::Window( #-name => "TestWindow", -pos => [ 0, 0], -size => [210, 200], -text => "TestWindow", ); $but=$W->AddButton( #-name => "test", -text => "Button 1", -size => [ 70, 22 ], -pos => [ 20, 20 ], ); } __END__ I don't see any leak with Win32::GUI v1.05, perl 5.6.1, 5.8.7, 5.8.8, Win98 or Win2K. Can anyone reproduce this leak (I'm particularly interested if this is a WinXP thing) or can I close the report? Regards, Rob. -- Robert May Win32::GUI, a perl extension for native Win32 applications http://perl-win32-gui.sourceforge.net/ |
From: Robert M. <rm...@po...> - 2007-01-20 17:25:41
|
All, I just committed a few changes: (1) Fixed icon definitions for balloon tooltips. warning and error icons were swapped (reported by Brian Millham) (2) We-wrote Textfield::GetLine. It had been using the line number as both a line number and character index; I'm also not convinced that it was allocating the right amount of memory, or behaving the right way for zero length lines. (reported by Perl Rob) (3) I believe that I've got to the bottom of the (in cleanup) can't call "FETCH" on an undefined value at ... during global destruction error that occasionally(often) happened - it down to the order of destruction of object during perl's final garbage sweep - I've added some code to our cleanup in GUI_Helpers.cpp to spot the problem, and avoid it. (Reported by many people over the years) As an aside I now have a very good understanding of the tied interface provided to window objects by Win32::GUI::WindowProps. (as well as a better understanding of perl internals). This tied interface is very hairy, and I will be seriously considering removing it in the future. (4) Added a ReleaseNotes POD for v1.06, draft only right now. I'd really appreciate feedback on whether I've fixed (3) - some of you must have scripts tucked away that generate this error, and where you'd undef'd globals to make the problem disappear - if you could comment out those undefs and see if the errors have really disappeared ... I'd like to see reports of ANY warnings or errors that happen during global destruction. I'm not sure what my availability will be like in Feb/Mar, but I will spend some time in the next few days working out what I would like to get into a 1.06 release. If you have suggestions, then please start a new thread on this list. (Jez, I'm painfully aware that I owe you some time for the ThreadUtils stuff we talked about last year) A belated Happy New Year to you all, Rob. -- Robert May Win32::GUI, a perl extension for native Win32 applications http://perl-win32-gui.sourceforge.net/ |
From: Robert M. <rm...@po...> - 2006-11-05 21:15:08
|
I am please to announce that v1.05 of Win32::GUI is available for download from SourceForge and CPAN. Win32::GUI is a Perl extension allowing creation of native Win32 GUI applications. MORE INFORMATION Project Homepage: http://perl-win32-gui.sourceforge.net/ Project summary: http://sourceforge.net/projects/perl-win32-gui/ Downloads: - Source and ActiveState Perl PPM distributions: http://sourceforge.net/project/showfiles.php?group_id=16572 - Source only: http://search.cpan.org/~robertmay/Win32-GUI-1.04/ Release notes: https://sourceforge.net/project/shownotes.php?release_id=455710 RELEASE NOTES AND CHANGES NAME Win32::GUI::ReleaseNotes::RN_1_05 - release notes for v1.05 of Win32::GUI Release Date 5th November, 2006 Summary of Changes This is a summary of changes between V1.04 and V1.05 See the CHANGELOG file in the distribution for the full detail. This release is a bug-fix release addressing the issues below. New Features There are no new features in this release. Bug Fixes NEM Events for NotifyIcon broken Fix NEM events for the NotifyIcon Class (Tracker: 1585293) Combobox SetEditSel method Fix bug preventing setting the starting index to anything other than 0, and add documentation. (Tracker: 1586617) Fix AbsLeft and AbsTop methods Fix a bug where AbsLeft and AbsTop were not correctly being converted to client co-ordinates for child windows (Tracker: 1578492) Include POD documentation in PPM Some time ago it was decided that in order to keep the size of the PPM distributions as small as possible we would exclude the POD documentation from the PPM files, and only include the HTML documentation. From this release both POD and HTML documentation is included in the PPM. This fixes a problem with ActiveState Perl PPM V4, which re-generates the documentation from the enclosed POD documents, apparently ignorig the included HTML documentation. Deprecated feature status This section documents features that have been deprecated in this release, or in recent releases, and feature that will be deprecated in up-coming releases. Win32::GUI::Constants The introduction of Win32::GUI::Constants in v1.04 means that we now have access to a very large number of constants, so the current behaviour of Win32::GUI to export all constants to the calling namespace by default is no longer appropriate. So, a bare use Win32::GUI; now generates a warning that the old default behaviour will be deprecated - although the export behaviour of Win32::GUI v1.03 is maintained except for this warning. To eliminate this warning and correct your script, do one of the following: If you don't need any constants, use the empty list: use Win32::GUI(); If you need some constants, name them explicitly: use Win32::GUI qw(ES_WANTRETURN CW_USEDEFAULT); # Two constants exported use Win32::GUI qw(/^MB_/); # Export all constants starting with MB_ See the Win32::GUI::Constants documentation for the full allowable syntax. You are advised to fix your scripts now, as a future version will stop exporting any constants by default. Although not advised, you can suppress the warnings by turning deprecated warnings off: no warnings 'deprecated'; Additionally accessing constants from within the Win32::GUI namespace is deprecated. I.e. -addstyle => Win32::GUI::WS_BORDER, will generate a warning with this release, and will stop working with a future release. Use one of the following methods instead: use the Win32::GUI::Constants namespace instead -addstyle => Win32::GUI::Constants::WS_BORDER(), use any other namespace you fancy use Win32::GUI qw(-exportpkg => A::B -autoload); ... -addstyle => A::B::WS_BORDER(), maintain compatibility of existing scripts use Win32::GUI::Constants qw(-exportpkg => Win32::GUI :compatibility_win32_gui); ... -addstyle => Win32::GUI::WS_BORDER, Win32::GUI::NotifyIcon It is no longer necessary to use the '-id' option to any of the Win32::GUI::NotifyIcon methods. The ID is now entirely handled internally. You will receive deprecated warnings if you use it. In particular, removing Icons from the system tray should be done using $NI->Remove(); and not by the (now deprecated) $NI->Delete(-id => 1); Use of the "-id" option will generate a warning. Contributors to this release Robert May Uwe Kind -- Robert May Win32::GUI, a perl extension for native Win32 applications http://perl-win32-gui.sourceforge.net/ |
From: Reini U. <ru...@x-...> - 2006-11-01 13:18:50
|
Robert May schrieb: > I just committed fixes for 3 recently reported bugs (tracker numbers in > the CHANGELOG). > > (1) Fix to make AbsLeft() and AbsTop() set a window position using > screen co-ordinates. > (2) Fix to the Combobox SetEditSel() method to allow start and end > points to be correctly set. > (3) Fix to enable NEM events for NotifyIcon, that I broke in the last > release. > > Any confirmations that I've fixed the reported bugs without introducing > any new ones welcome. > > I'm thinking of a 1.05 release, as (3) was a regression that ought not > to get too widely into the wild. Any objections? No, sounds fine. -- Reini Urban http://phpwiki.org/ http://murbreak.at/ http://helsinki.at/ http://spacemovie.mur.at/ |
From: <jez...@ho...> - 2006-10-31 22:42:49
|
Are you planning on doing a quick bug fix 1.5? If so I will wait until its out - as a first step I was just going to integrate the existing module and get a larger example set working. Are you happy with the naming of the module? Cheers, jez |
From: Robert M. <rm...@po...> - 2006-10-31 22:34:33
|
I just committed fixes for 3 recently reported bugs (tracker numbers in the CHANGELOG). (1) Fix to make AbsLeft() and AbsTop() set a window position using screen co-ordinates. (2) Fix to the Combobox SetEditSel() method to allow start and end points to be correctly set. (3) Fix to enable NEM events for NotifyIcon, that I broke in the last release. Any confirmations that I've fixed the reported bugs without introducing any new ones welcome. I'm thinking of a 1.05 release, as (3) was a regression that ought not to get too widely into the wild. Any objections? Regards, Rob. -- Robert May Win32::GUI, a perl extension for native Win32 applications http://perl-win32-gui.sourceforge.net/ |
From: Robert M. <rm...@po...> - 2006-10-30 20:45:16
|
jez...@ho... wrote: > Rob & All, > > One area that I personally would like to see improved is the generic support for threading in Win32-GUI. As it stands today, Win32-GUI is thread safe (well I haven't found a problem yet...) with later versions of perl (5.8.7 +). The real difficulty is thread communication in the event driven environment, but most of this has been resolved with Robs thread util package on his home page. > > What I would like to suggest is that the functionality of this package be formally moved into the core codeline. I am more than happy to provide coding, documentation and build various examples of what is (and isn't) possible with threading in Win32-GUI. > > Any comments? I have no issues if you'd like to take the code that I started and integrate it. I'd suggest using the Makefile.PL from one of the newer sub-modules as a starting point ... Let me know if I can do anything to help. As an aside, I think I know why the examples of creating a child window in a separate tread never worked properly - it's almost certainly something to do with notifications (and other messages: WM_COLORCTL* ...) that get sent to the control's parent which is in the other thread. We may never get that to work, but I think it's worth it for the things that do work already. Regards, Rob. |
From: <jez...@ho...> - 2006-10-28 09:58:51
|
Rob & All, One area that I personally would like to see improved is the generic support for threading in Win32-GUI. As it stands today, Win32-GUI is thread safe (well I haven't found a problem yet...) with later versions of perl (5.8.7 +). The real difficulty is thread communication in the event driven environment, but most of this has been resolved with Robs thread util package on his home page. What I would like to suggest is that the functionality of this package be formally moved into the core codeline. I am more than happy to provide coding, documentation and build various examples of what is (and isn't) possible with threading in Win32-GUI. Any comments? Cheers, Jeremy. |
From: Robert M. <rm...@po...> - 2006-10-24 20:09:39
|
Cutting your example down to what's necessary, you are forgetting about the non-client area of the window - child windows have that as well as top-level windows, it's just more obvious on top-level windows. #!perl -w use strict; use warnings; use Win32::GUI(); use Win32::GUI::Grid(); my $TopWindow = new Win32::GUI::Window ( -title => 'GUI Editor', -pos => [30,20], -size => [570,450], ); my $Grid = $TopWindow->AddGrid ( -name => "GRID", -columns => 2, -rows => 10, -fixedcolumns => 1, -fixedrows => 1, ); # "Virtual" dimensions are the required # client area. If we don't want scrollbars # we must take into account the non-client areas ... my $Width = $Grid->GetVirtualWidth(); my $Height = $Grid->GetVirtualHeight(); # Make the window too big, so that it doesn't # have scrollbars, as they would be included # in the non-client area $Grid->Resize($Width+20, $Height+20); # Calculate the required non-client sizes. # From Win32::GUI::Tutorial Part 1 my $ncw = $Grid->Width() - $Grid->ScaleWidth(); my $nch = $Grid->Height() - $Grid->ScaleHeight(); # and finally resize the window taking into # account the non-client areas $Grid->Resize($Width + $ncw, $Height + $nch); $TopWindow->Show(); Win32::GUI::Dialog(); __END__ Sorry about the rant yesterday. Regards, Rob. Arthur Schwarz wrote: > <snip - missing rant> > > use Win32::GUI; # Binding to Win32 GUI > use Win32::GUI::Grid; # Thin binding to Win32 GUI Grid > use integer; > my $TopWindow = new Win32::GUI::Window( # Create Main Window > -name => 'TopWindow', > -left => 30, > -height => 450, > -title => 'GUI Editor', > -top => 20, > -width => 570, > ); > my $Grid = $TopWindow->AddGrid( # Create Grid object > -columns => 2, > -fixedcolumns => 1, > -fixedrows => 1, > -name => "Property Grid", > -pos => [ 390, 0 ], > -rows => 10, > -visible => 1, > ); > my $Grid1= $TopWindow->AddGrid( # Create Grid object > -columns => 2, > -fixedcolumns => 1, > -fixedrows => 1, > -name => "Property Grid", > -pos => [ 100, 0 ], > -rows => 10, > -visible => 1, > ); > > $Grid->SetCellText(0, 0, "Property" ); > $Grid->SetCellText(0, 1, "Value" ); > > $Grid1->SetCellText(0, 0, "Property" ); > $Grid1->SetCellText(0, 1, "Value" ); > > print "\n"; > > my $TotalHeight = $Grid->GetRowHeight(0); > my $Height; > > print "Row = 0 Height = [ $TotalHeight, $TotalHeight ])\n"; > > for my $row (1..$Grid->GetRows()) { > $Grid->SetCellText($row, 0, "Property $row " ); > $Grid1->SetCellText($row,0, "Property $row " ); > } > > for my $row (1..4) { > my $col = 1; > $Grid->SetCellText($row, $col, "Cell : <$row, $col>"); > $Grid1->SetCellText($row,$col, "Cell : <$row, $col>"); > } > > my $row = 1; > > for my $CellType ( GVIT_NUMERIC, GVIT_DATE, GVIT_DATECAL, GVIT_TIME, GVIT_CHECK > , GVIT_COMBO, GVIT_LIST, GVIT_URL, GVIT_NUMERIC) { > $Height = $Grid->GetRowHeight($row); > $TotalHeight += $Height; > print "Row = $row Height = [ $Height, $TotalHeight ])\n"; > $Grid->SetCellType($row, 1, $CellType); > $Grid1->SetCellType($row++,1, $CellType); > } > > $Grid->SetCellCheck ( 5, 1, 1 ); > $Grid1->SetCellCheck ( 5, 1, 1 ); > > my $Width = $Grid->GetVirtualWidth(); #+20; > my $Height = $Grid->GetVirtualHeight(); #+10; > > $Grid->SetCellOptions( 6, 1, [ "Combo", "Box", "New" ]); > $Grid->SetCellOptions( 7, 1, [ "List", "Box", "New" ]); > $Grid->Resize($Width, $Height); > > $Grid1->SetCellOptions( 6, 1, [ "Combo", "Box", "New" ]); > $Grid1->SetCellOptions( 7, 1, [ "List", "Box", "New" ]); > $Grid1->Resize($Width+6, $Height+6); > > print "\n Actual Virtual W/O Bars\n"; > printf("Height %5d %7d %8d\n", $TotalHeight, $Grid->GetVirtualHeight, $Grid->GetVirtualHeight+6); > printf("Width %5d %7d %8d\n", $Grid->GetColumnWidth(0) + $Grid->GetColumnWidth(1) > , $Grid->GetVirtualWidth() > , $Grid->GetVirtualWidth()+6 ); > $TopWindow->Show(); # makes TopWindow visible > Win32::GUI::Dialog(); # Windows control loop > > > Robert May <rm...@po...> wrote: > Arthur Schwarz wrote: >> Grid (again). >> >> My grid has a cell with a list in it. I don't know if that's significant but: >> 1: The reported grid Width is too small and a horizontal scroll bar is presented, and >> 2: The reported grid height is too short and a vertical scroll bar is presented. >> >> The dimensions are: >> >> [virtual virtual + ] >> >> With W/o scroll bar >> [ 156 176 ] width >> [ 190 200 ] height > > [snip] > > > > Please take the time to post a *short*, but complete, example of the > problem that you are asking for help with. It is very time consuming to > put together example scripts to see if I can see the same behaviour, > especially if I don't have any detailed knowledge of the control that > you are talking about. Please read this if you haven't before: > http://www.catb.org/~esr/faqs/smart-questions.html > > > > That said, if you're trying to autosize the grid, then I doubt that it > takes into account any extra space required for any controls that may be > needed - but we'd have to read the documentation for the underlying Grid > Control, which on my previous forays I have discovered to be rather > sparse, leaving us only the underlying source code to unravel to work > out what is going on. > > Regards, > Rob. > > |
From: Arthur S. <asc...@ve...> - 2006-10-24 17:01:39
|
<snip - missing rant> use Win32::GUI; # Binding to Win32 GUI use Win32::GUI::Grid; # Thin binding to Win32 GUI Grid use integer; my $TopWindow = new Win32::GUI::Window( # Create Main Window -name => 'TopWindow', -left => 30, -height => 450, -title => 'GUI Editor', -top => 20, -width => 570, ); my $Grid = $TopWindow->AddGrid( # Create Grid object -columns => 2, -fixedcolumns => 1, -fixedrows => 1, -name => "Property Grid", -pos => [ 390, 0 ], -rows => 10, -visible => 1, ); my $Grid1= $TopWindow->AddGrid( # Create Grid object -columns => 2, -fixedcolumns => 1, -fixedrows => 1, -name => "Property Grid", -pos => [ 100, 0 ], -rows => 10, -visible => 1, ); $Grid->SetCellText(0, 0, "Property" ); $Grid->SetCellText(0, 1, "Value" ); $Grid1->SetCellText(0, 0, "Property" ); $Grid1->SetCellText(0, 1, "Value" ); print "\n"; my $TotalHeight = $Grid->GetRowHeight(0); my $Height; print "Row = 0 Height = [ $TotalHeight, $TotalHeight ])\n"; for my $row (1..$Grid->GetRows()) { $Grid->SetCellText($row, 0, "Property $row " ); $Grid1->SetCellText($row,0, "Property $row " ); } for my $row (1..4) { my $col = 1; $Grid->SetCellText($row, $col, "Cell : <$row, $col>"); $Grid1->SetCellText($row,$col, "Cell : <$row, $col>"); } my $row = 1; for my $CellType ( GVIT_NUMERIC, GVIT_DATE, GVIT_DATECAL, GVIT_TIME, GVIT_CHECK , GVIT_COMBO, GVIT_LIST, GVIT_URL, GVIT_NUMERIC) { $Height = $Grid->GetRowHeight($row); $TotalHeight += $Height; print "Row = $row Height = [ $Height, $TotalHeight ])\n"; $Grid->SetCellType($row, 1, $CellType); $Grid1->SetCellType($row++,1, $CellType); } $Grid->SetCellCheck ( 5, 1, 1 ); $Grid1->SetCellCheck ( 5, 1, 1 ); my $Width = $Grid->GetVirtualWidth(); #+20; my $Height = $Grid->GetVirtualHeight(); #+10; $Grid->SetCellOptions( 6, 1, [ "Combo", "Box", "New" ]); $Grid->SetCellOptions( 7, 1, [ "List", "Box", "New" ]); $Grid->Resize($Width, $Height); $Grid1->SetCellOptions( 6, 1, [ "Combo", "Box", "New" ]); $Grid1->SetCellOptions( 7, 1, [ "List", "Box", "New" ]); $Grid1->Resize($Width+6, $Height+6); print "\n Actual Virtual W/O Bars\n"; printf("Height %5d %7d %8d\n", $TotalHeight, $Grid->GetVirtualHeight, $Grid->GetVirtualHeight+6); printf("Width %5d %7d %8d\n", $Grid->GetColumnWidth(0) + $Grid->GetColumnWidth(1) , $Grid->GetVirtualWidth() , $Grid->GetVirtualWidth()+6 ); $TopWindow->Show(); # makes TopWindow visible Win32::GUI::Dialog(); # Windows control loop Robert May <rm...@po...> wrote: Arthur Schwarz wrote: > Grid (again). > > My grid has a cell with a list in it. I don't know if that's significant but: > 1: The reported grid Width is too small and a horizontal scroll bar is presented, and > 2: The reported grid height is too short and a vertical scroll bar is presented. > > The dimensions are: > > [virtual virtual + ] > > With W/o scroll bar > [ 156 176 ] width > [ 190 200 ] height [snip] Please take the time to post a *short*, but complete, example of the problem that you are asking for help with. It is very time consuming to put together example scripts to see if I can see the same behaviour, especially if I don't have any detailed knowledge of the control that you are talking about. Please read this if you haven't before: http://www.catb.org/~esr/faqs/smart-questions.html That said, if you're trying to autosize the grid, then I doubt that it takes into account any extra space required for any controls that may be needed - but we'd have to read the documentation for the underlying Grid Control, which on my previous forays I have discovered to be rather sparse, leaving us only the underlying source code to unravel to work out what is going on. Regards, Rob. |
From: Robert M. <rm...@po...> - 2006-10-23 20:29:03
|
Arthur Schwarz wrote: > Grid (again). > > My grid has a cell with a list in it. I don't know if that's significant but: > 1: The reported grid Width is too small and a horizontal scroll bar is presented, and > 2: The reported grid height is too short and a vertical scroll bar is presented. > > The dimensions are: > > [virtual virtual + ] > > With W/o scroll bar > [ 156 176 ] width > [ 190 200 ] height [snip] <rant - this is not just aimed at the OP> Please take the time to post a *short*, but complete, example of the problem that you are asking for help with. It is very time consuming to put together example scripts to see if I can see the same behaviour, especially if I don't have any detailed knowledge of the control that you are talking about. Please read this if you haven't before: http://www.catb.org/~esr/faqs/smart-questions.html </rant> That said, if you're trying to autosize the grid, then I doubt that it takes into account any extra space required for any controls that may be needed - but we'd have to read the documentation for the underlying Grid Control, which on my previous forays I have discovered to be rather sparse, leaving us only the underlying source code to unravel to work out what is going on. Regards, Rob. |
From: Arthur S. <asc...@ve...> - 2006-10-23 20:02:50
|
Grid (again). My grid has a cell with a list in it. I don't know if that's significant but: 1: The reported grid Width is too small and a horizontal scroll bar is presented, and 2: The reported grid height is too short and a vertical scroll bar is presented. The dimensions are: [virtual virtual + ] With W/o scroll bar [ 156 176 ] width [ 190 200 ] height The virtual width and virtual height dimensions have been altered for appeal. The actual difference needed to remove the scroll bars are somewhat less. My expectations were that the virtual width and height are sufficient so that no scroll bar is necessary. Is my interpretation wrong? I do apologize for this long and seemingly endless series of questions and errata. I do think that it's better to report than withhold but if you would like, it really isn't necessary for me to report things that can be worked around. There are some other issues that I've detected. I'm trying to get time to work up a test case illustrating when an onEvent is ignored in favor of the 'old' (but reliable) way to trap events. And there is one other piece of errata, if I can only remember what... art |
From: Brian M. <bmi...@hu...> - 2006-10-21 21:21:28
|
I downloaded 1.04 last night, and it's looking good! My Win32::GUI::Skin module worked with no problems, first try (except of course the warning about export) It didn't take long for me to update Skin.pm to take advantage of the new methods (ExtCreateRegion and SetWindowPos) that Rob kindly created for me. I should have a new release taking advantage of this tomorrow. Thank you Rob (and any others) for your hard work! Brian Millham This message traveled at least 44,000 miles to reach you! Creator of the DW6000 Monitor http://www.millham.net/dw6000 bmi...@hu... --- avast! Antivirus: Outbound message clean. Virus Database (VPS): 0642-5, 10/20/2006 Tested on: 10/21/2006 5:20:34 PM avast! is copyright (c) 2000-2006 ALWIL Software. http://www.avast.com |
From: Arthur S. <asc...@ve...> - 2006-10-16 23:49:16
|
Another question. I would like to be able to set/kill a timer for any cell in a Grid. My paradigm is: 1. Get the focus for a cell (_GotFocus()) & set the timer 2. Honor the timeout if the event is present & kill the timer, or 3. Lose focus for a cell (_LostFocus()) & kill the timer. But, I can't find a way to get the focus for a cell, only for the grid. There is no associated _GotFocus(), _LostFocus() for cells. Am I missing something? Background. With the capability to associate a timer with a cell, I can simulate tooltips and present the user with help. In particular, help associated with a fixed cell (intersection of a fixed row and a fixed column) allows generic help on an input field. art |
From: Arthur S. <asc...@ve...> - 2006-10-16 22:17:51
|
Robert May <rm...@po...> wrote: <snip> > 2. In the example code below, AbsLeft and AbsTop do not work as (I) expected. AbsLeft moves the Y coordinate and AbsTop moves the X coordinate. I expected these coordinates to not change. Is my understanding correct? [ snip code ] Indeed, there seems to be a problem with AbsLeft and AbsTop, although it's not clear to me from either the documentation or the code what they're meant to do. I would assume that they're meaning to set the window position in Screen co-ordinates, as they retrieve the screen co-ordinates, but then use them as client co-ordinates ... In your example of AbsLeft(), the window moves down, as the top co-ordinate is read in screen co-ordinates, and then used as a client co-ordinate when setting the window position. The code also looks like it might have been trying to leave the bottom-right corner of the window unmoved, although I think this is unlikely to what is expected. I wouldn't expect the behaviour to be the same as the Left/Top methods, as if this was intended, then the implementation would, almost certainly have been done as an alias for Left/Top. I've raised a bug report, which includes a short script showing the problem: https://sourceforge.net/tracker/index.php?func=detail&aid=1578492&group_id=16572&atid=116572 and propose to 'fix' the behaviour of these 2 calls to be setting the co-ordinate of the window in screen co-ordinates. Any objections? It is as I expected, you have anticipated and done exactly the right thing with the minimum of effort. Thanks. Regards, -- Robert May Win32::GUI, a perl extension for native Win32 applications http://perl-win32-gui.sourceforge.net/ |
From: Robert M. <rm...@po...> - 2006-10-16 20:46:18
|
Arthur Schwarz wrote: > Thank you for doing what you're doing. There are some questions: > > 1. When I tried an install Win32_GUI_1.04 to an activestate perl, TieRegistry was not defined (and in it's turn, Registry was not installed). Should this be part of the release notes? Assuming that you mean Win32::TieRegistry and Win32::Registry packages, then they are not a part of Win32::GUI. I would, however, expect them to be installed as part of an ActiveState Perl install. > 2. In the example code below, AbsLeft and AbsTop do not work as (I) expected. AbsLeft moves the Y coordinate and AbsTop moves the X coordinate. I expected these coordinates to not change. Is my understanding correct? [ snip code ] Indeed, there seems to be a problem with AbsLeft and AbsTop, although it's not clear to me from either the documentation or the code what they're meant to do. I would assume that they're meaning to set the window position in Screen co-ordinates, as they retrieve the screen co-ordinates, but then use them as client co-ordinates ... In your example of AbsLeft(), the window moves down, as the top co-ordinate is read in screen co-ordinates, and then used as a client co-ordinate when setting the window position. The code also looks like it might have been trying to leave the bottom-right corner of the window unmoved, although I think this is unlikely to what is expected. I wouldn't expect the behaviour to be the same as the Left/Top methods, as if this was intended, then the implementation would, almost certainly have been done as an alias for Left/Top. I've raised a bug report, which includes a short script showing the problem: https://sourceforge.net/tracker/index.php?func=detail&aid=1578492&group_id=16572&atid=116572 and propose to 'fix' the behaviour of these 2 calls to be setting the co-ordinate of the window in screen co-ordinates. Any objections? Regards, -- Robert May Win32::GUI, a perl extension for native Win32 applications http://perl-win32-gui.sourceforge.net/ |
From: Arthur S. <asc...@ve...> - 2006-10-16 18:36:24
|
Thank you for doing what you're doing. There are some questions: 1. When I tried an install Win32_GUI_1.04 to an activestate perl, TieRegistry was not defined (and in it's turn, Registry was not installed). Should this be part of the release notes? 2. In the example code below, AbsLeft and AbsTop do not work as (I) expected. AbsLeft moves the Y coordinate and AbsTop moves the X coordinate. I expected these coordinates to not change. Is my understanding correct? art ####################################################### # Example Code # ####################################################### package Test; use Win32::GUI::Constants; # Windows constants use Win32::GUI::Grid; # Thin binding to Win32 GUI Grid use Win32::GUI; # Thin binding to Win32 GUI use strict; use integer; # Computations done using integer arithmetic use warnings; sub WindowStart; # start dialog loop our $TopWindow = new Win32::GUI::Window( # Create Main Window -name => 'TopWindow', -helpbox => 1, -left => 30, -hashelp => 1, -height => 450, -maxwidth => 565, -minheight => 380, -minwidth => 565, -title => 'GUI Editor', -top => 20, -width => 570, ); our $Grid = $TopWindow->AddGrid( # Create Grid object -columns => 2, -doublebuffer => 1, -editable => 1, -fixedcolumns => 1, -fixedrows => 1, -height => $TopWindow->Height()-40, -left => 400, -name => "Property Grid", -rows => 10, -top => 0, -visible => 1, -vscroll => 0, -width => 150, ); $Grid->SetCellText(0, 0, "Property" ); $Grid->SetCellText(0, 1, "Value" ); for my $row (1..$Grid->GetRows()) { $Grid->SetCellText($row, 0, "Property $row " ); } for my $row (1..4) { my $col = 1; $Grid->SetCellText($row, $col, "Cell : <$row, $col>"); } my $row = 1; for my $CellType (GVIT_NUMERIC, GVIT_DATE, GVIT_DATECAL, GVIT_TIME, GVIT_CHECK, GVIT_COMBO, GVIT_LIST, GVIT_URL) { $Grid->SetCellType($row++, 1, $CellType); } $Grid->SetCellCheck ( 5, 1, 1 ); my $Width = $Grid->GetVirtualWidth()+15; my $Height = $Grid->GetRows()*$Grid->GetRowHeight(0)+5; my $Left = $TopWindow->Width() - $Width; $Grid->SetCellOptions( 6, 1, [ "Combo", "Box", "New" ]); $Grid->SetCellOptions( 7, 1, [ "List", "Box", "New" ]); $Grid->Resize($Width, $Height); # $Grid->AbsLeft(0); # moves X ok Y moved also # $Grid->Left(0); # works as expected # $Grid->Left($Left); # works as expected # $Grid->AbsTop(50); # moves Y ok X moved also # $Grid->Height($Grid->Height() + 50); # works as expected # $Grid->Move(50, 50); # works as expected $Grid->Width($Grid->Width() + 50); # works as expected # $Grid->Move($Width, 0); # works as expected ################################################################# # Window Start Function ################################################################# sub WindowStart { $TopWindow->Show(); # makes TopWindow visible Win32::GUI::Dialog(); # Windows control loop return 1; } ### WindowStart WindowStart(); |
From: Reini U. <ru...@x-...> - 2006-10-15 21:58:34
|
2006/10/15, Robert May <rm...@po...>: > I assume that a cygwin binary build will come from Reini shortly. I'll need some time because I'm away and will return at about the 26th. -- Reini Urban http://phpwiki.org/ http://murbreak.at/ http://spacemovie.mur.at/ http://helsinki.at/ |
From: Robert M. <rm...@po...> - 2006-10-15 20:33:28
|
I *finally* got the 1.04 release out of the door. I'll be interested to see how many problems we turn up now that it will get a wider circulation. Most of the changes that I committed today are minor - fixing the build problems. On my machine I can cleanly build and test with perl 5.6.1 (MingGW and VC98), and perl 5.8.7 (MinGW, VC98 and cygwin gcc). I've released source and binary builds, updated the documentation of the website, announced the release to the users and hackers list, and comp.lang.perl.misc/comp.lang.perl.announce. I assume that a cygwin binary build will come from Reini shortly. I also closed all the trackers that have been fix/included in the release. At this point I need to take a bit of time off from Win32::GUI. I'll still be around, but won't be actively developing for a month or two. In this time I will be thinking about how I want to take things forward. I'm very tempted to start again from the ground up, as I think that there are core areas of the code that need re-thinking - more and more I'm seeing questions about how to do things that can only be done by making changes to the XS side of things; it would be so much better if other users could code solutions to their problems in perl and submit them as patches - it would lower the barrier to entry significantly. Some of you will know that I have been thinking in this direction for some time. I will think about it some more, and if I think that it is the right way to go, I will code up a proof of concept to share with you all, and discuss before embarking seriously in that direction. My thanks to everyone for their help; hopefully we can have a shorter period before the next release. Regards, Rob. -- Robert May Win32::GUI, a perl extension for native Win32 applications http://perl-win32-gui.sourceforge.net/ |