You can subscribe to this list here.
2001 |
Jan
(226) |
Feb
(139) |
Mar
(156) |
Apr
(95) |
May
(181) |
Jun
(166) |
Jul
(80) |
Aug
(59) |
Sep
(69) |
Oct
(83) |
Nov
(142) |
Dec
(33) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(42) |
Feb
(91) |
Mar
(76) |
Apr
(113) |
May
(67) |
Jun
(68) |
Jul
(37) |
Aug
(41) |
Sep
(16) |
Oct
(135) |
Nov
(51) |
Dec
(21) |
2003 |
Jan
(37) |
Feb
(36) |
Mar
(37) |
Apr
(103) |
May
(68) |
Jun
(70) |
Jul
(77) |
Aug
(12) |
Sep
(9) |
Oct
(53) |
Nov
(88) |
Dec
(63) |
2004 |
Jan
(263) |
Feb
(106) |
Mar
(36) |
Apr
(21) |
May
(21) |
Jun
(34) |
Jul
(33) |
Aug
(34) |
Sep
(35) |
Oct
(21) |
Nov
(43) |
Dec
(63) |
2005 |
Jan
(28) |
Feb
(42) |
Mar
(29) |
Apr
(14) |
May
(41) |
Jun
(20) |
Jul
(65) |
Aug
(136) |
Sep
(41) |
Oct
(74) |
Nov
(34) |
Dec
(94) |
2006 |
Jan
(85) |
Feb
(94) |
Mar
(68) |
Apr
(103) |
May
(66) |
Jun
(51) |
Jul
(24) |
Aug
(56) |
Sep
(57) |
Oct
(85) |
Nov
(73) |
Dec
(68) |
2007 |
Jan
(59) |
Feb
(32) |
Mar
(13) |
Apr
(32) |
May
(36) |
Jun
(36) |
Jul
(64) |
Aug
(35) |
Sep
(19) |
Oct
(10) |
Nov
(13) |
Dec
(20) |
2008 |
Jan
(26) |
Feb
(41) |
Mar
(19) |
Apr
(24) |
May
(16) |
Jun
(33) |
Jul
(34) |
Aug
(4) |
Sep
(11) |
Oct
|
Nov
(26) |
Dec
(23) |
2009 |
Jan
(5) |
Feb
(2) |
Mar
(21) |
Apr
(16) |
May
(13) |
Jun
(6) |
Jul
(34) |
Aug
(2) |
Sep
(1) |
Oct
(7) |
Nov
(5) |
Dec
(24) |
2010 |
Jan
(3) |
Feb
(5) |
Mar
(6) |
Apr
(6) |
May
(14) |
Jun
(6) |
Jul
(1) |
Aug
(12) |
Sep
(10) |
Oct
(9) |
Nov
|
Dec
(2) |
2011 |
Jan
(4) |
Feb
(5) |
Mar
(30) |
Apr
(1) |
May
(2) |
Jun
(5) |
Jul
(3) |
Aug
(2) |
Sep
(3) |
Oct
|
Nov
(6) |
Dec
|
2012 |
Jan
|
Feb
(10) |
Mar
|
Apr
|
May
(1) |
Jun
(3) |
Jul
(1) |
Aug
|
Sep
(2) |
Oct
|
Nov
(2) |
Dec
(4) |
2013 |
Jan
(5) |
Feb
(3) |
Mar
|
Apr
(3) |
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2014 |
Jan
(2) |
Feb
|
Mar
|
Apr
(1) |
May
(3) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(9) |
Nov
(7) |
Dec
|
2015 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(4) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2017 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
(5) |
Dec
|
2019 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(2) |
Sep
|
Oct
|
Nov
|
Dec
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
|
|
|
|
|
1
(6) |
2
(1) |
3
|
4
(1) |
5
|
6
|
7
(1) |
8
(4) |
9
(1) |
10
|
11
|
12
(5) |
13
(4) |
14
(1) |
15
(1) |
16
(1) |
17
|
18
(1) |
19
|
20
|
21
(7) |
22
(3) |
23
(2) |
24
|
25
(1) |
26
|
27
|
28
|
29
(1) |
|
From: zak <cho...@gm...> - 2008-02-29 15:57:30
|
hi gui builder by David Hiltz "gb109" wich you can download from: ftp://ftp.wh.whoi.edu/pub/gb109.zip does not run correctly in perl 5.8-5.10 using their appropriate win32-gui i have tried perl 5.6 with win-api and an old win32-gui, and it is stable , so you can design small forms and save them , after that you can add your code, and any corrections, and run it in perl 5.8...5.10 because it is hard to switch to perl 5.6 to run the program, i have used pdk 6 to convert the gb.pl file to the executable gb.exe so to play with a small number (but important) of win32-gui toys just run the gb.exe, and please keep this file it its folder sometimes we do not see the toolbar buttons, i have found that just double click the file widgets.bmp to open it will correct the problem. strange. download the new gb109.rar file from: http://www.2shared.com/file/2916295/215f9202/gb109.html regards zak |
From: M2U G. <m2u...@un...> - 2008-02-25 15:07:17
|
On Thursday, February 14, 2008 6:27 PM Robert May wrote: > I'd be interested in the solution to this! I thought that the > problem was going > to be the fact that the code got the toolbar height before calling > Autosize(), but > changing that didn't fix it for me. > > With the code below I see the toolbar jumping from 1 to 3 rows, > despite the fact that > the buttons only appear on 2 rows, and except for when there is only > one row, the number > of rows is always one too big. > > The problem goes away if I make the seperator a real button. WTF? This problem didn't affect my program any longer because its rebars have only one row of toolbar buttons and they aren't allowed to wrap anyway. Nevertheless I reconsidered your example code, Rob. I finally found the problem causing the wrong dimensions and row counts: we had set the state constant for the seperator to "TBSTATE_ENABLED" but in fact this doesn't make much sense because a "TBSTYLE_SEP" button can't be disabled, right? So I just replaced "TBSTATE_ENABLED" with "0" and all strange behaviour disappeared. This is probably not a really neat solution and I think there might be a constant specified for this purpose. "TBSTATE_INDETERMINATE" is a good candidate, isn't it? It works, too. Of course I'm not as nearly into Win32::GUI programming internals as you and probably most other members of this list are... so I can only guess that using "TBSTATE_ENABLED" on a separator button causes the toolbar sizing routines to *think* of it as a normal button with comparable dimension needs and therefore to wrap this (imaginary and obviosly not displayed) space into the next line. Whatever the exact reason may be, the solution shown above seems to work. Main conclusion: no bug to be eliminated... hooray! Best regards, Matthias |
From: Robert M. <rob...@us...> - 2008-02-23 21:33:03
|
On 22/02/2008, Gareth John <ga...@eg...> wrote: > I'm using Perl v5.10.0 and Win32::GUI 1.0.6 - I'm trying to import the > following constants: > > LVHT_ABOVE > LVHT_BELOW > LVHT_NOWHERE > LVHT_ONITEMICON > LVHT_ONITEMLABEL > LVHT_ONITEMSTATEICON > LVHT_TORIGHT > LVHT_TOLEFT > > but they don't seem to be exported by Win32::GUI::Constants. Can anyone > tell me what I need to do to get these constants? Thank you for the report. I will add these constants to the next release. For now you'll need to define the constants yourself. Try something like this: sub LVHT_NOWHERE() {0x0001} sub LVHT_ONITEMICON() {0x0002} sub LVHT_ONITEMLABEL() {0x0004} sub LVHT_ONITEMSTATEICON() {0x0008} sub LVHT_ONITEM() {0x000E} sub LVHT_ABOVE() {0x0008} sub LVHT_BELOW() {0x0010} sub LVHT_TORIGHT() {0x0020} sub LVHT_TOLEFT() {0x0040} Regards, Rob. |
From: David C. <dpc...@ho...> - 2008-02-23 06:10:03
|
jez_white wrote: > Win32::GUI supports two event modles OEM (old event model) and NEM > (new event model). OEM is like visual basic, with the control name > and the event name. So if a button was called "hello" and the button > was clicked, the sub hello_Click would be called. OEM is only sutible > for simple scripts But, apparently, does not provide VB-like sender and eventargs arguments to the event handler (?). > With NEM you pass the reference of the sub that you want to run in > response to an event (this makes NEM faster). > To some exent a NEM event is like a method being called on that > control and as such, the first parm being passed is the control. > It should be documented in the NEM section. > Does that help? Again no win32::GUI on this box..... Okay, thanks for the pointer. I was not aware of OEM and NEM: http://perl-win32-gui.sourceforge.net/cgi-bin/docs.cgi?doc=reference-opt ions Thank you, David |
From: oohayf o. <ooh...@ya...> - 2008-02-22 21:00:44
|
hello, having problem below for quite some time and no working solution... could someone please help? so the gui that i'm working with, currently to make a selection from a combobox, i would do a dropdown, select by index, then send TAB key and the gui would stick and setting works: [...] SendMessage($hnd, 0x014F, 1, 0); #showdropdown of combobox SelComboItem($hnd, $index); #select combobox by index number Sendkeys ("{TAB}") [...] problem is with a different gui, the above don't work. And the only to make the gui stick and settings valid is: to do a mouse click, then an image in a static class would change. i guess what would be best is to do a mouse click on the dropdown combobox and click on the desired item. i've tried mouseclick() but this don't work. does anyone have any suggestion or know of any win32 gui function that will solve this problem? thanks! --------------------------------- Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it now. |
From: <jez...@ho...> - 2008-02-22 10:25:54
|
> To do this have a look at the UserData method. It allows you to > associate data to a window. When you use NEM events the first parm is > the object that the event fired on. Say for example you have a button > on a form, and you have many instances of that form your even handler > would look like: > My $self=shift; #the button object > My $parent = $self->parent; #the parent window > My $object = $parent->UserData; #the instance data for the window I guessed at a solution like that, but didn't see $self in the documentation for Button_Click(): http://perl-win32-gui.sourceforge.net/cgi-bin/docs.cgi?doc=button Where is this documented? ________ It should be documented in the NEM section. Win32::GUI supports two event modles OEM (old event model) and NEM (new event model). OEM is like visual basic, with the control name and the event name. So if a button was called "hello" and the button was clicked, the sub hello_Click would be called. OEM is only sutible for simple scripts With NEM you pass the reference of the sub that you want to run in response to an event (this makes NEM faster). To some exent a NEM event is like a method being called on that control and as such, the first parm being passed is the control. Does that help? Again no win32::GUI on this box..... Cheers, jez ----------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ Perl-Win32-GUI-Users mailing list Per...@li... https://lists.sourceforge.net/lists/listinfo/perl-win32-gui-users http://perl-win32-gui.sourceforge.net/ _ |
From: David C. <dpc...@ho...> - 2008-02-22 06:54:34
|
Glenn Linderman wrote: > #3. I've read bunches of Windows API documentation, and have never > found anything called "sender", "eventargs", or "self". You must be > reading stuff at some higher level of abstraction. http://search.cpan.org/~robertmay/Win32-GUI-1.06/docs/GUI/UserGuide/Read me.pod "Win32::GUI is a Win32-platform native graphical user interface toolkit for perl. Basically, it's an XS implementation of most of the functions found in user32.dll and gdi32.dll, with an object oriented perl interface and an event-based dialog model that mimic the functionality of visual basic." I was expecting something like Visual Basic (although I prefer C#): http://msdn2.microsoft.com/en-us/library/system.windows.forms.control.cl ick(VS.71).aspx jez_whit wrote: > To do this have a look at the UserData method. It allows you to > associate data to a window. When you use NEM events the first parm is > the object that the event fired on. Say for example you have a button > on a form, and you have many instances of that form your even handler > would look like: > My $self=shift; #the button object > My $parent = $self->parent; #the parent window > My $object = $parent->UserData; #the instance data for the window I guessed at a solution like that, but didn't see $self in the documentation for Button_Click(): http://perl-win32-gui.sourceforge.net/cgi-bin/docs.cgi?doc=button Where is this documented? David |
From: Gareth J. <ga...@eg...> - 2008-02-21 20:26:23
|
I'm using Perl v5.10.0 and Win32::GUI 1.0.6 - I'm trying to import the following constants: LVHT_ABOVE LVHT_BELOW LVHT_NOWHERE LVHT_ONITEMICON LVHT_ONITEMLABEL LVHT_ONITEMSTATEICON LVHT_TORIGHT LVHT_TOLEFT but they don't seem to be exported by Win32::GUI::Constants. Can anyone tell me what I need to do to get these constants? Thanks, Gareth |
From: <jez...@ho...> - 2008-02-21 14:37:10
|
Hi, Aquick reply. The tutorials are "bad" as they are really old. Have a look at the examples supplied as they are better formed. Yes you can wrap event handlers within an object so that each window knows its own "state". This allows you to create and destroy many windows of the same object type dyamically. To do this have a look at the UserData method. It allows you to associate data to a window. When you use NEM events the first parm is the object that the event fired on. Say for example you have a button on a form, and you have many instances of that form your even handler would look like: My $self=shift; #the button object My $parent = $self->parent; #the parent window My $object = $parent->UserData; #the instance data for the window If you search the mailing list you should come across examples. I don't have perl installed on this box - but this reply should have enough content to get you started. Cheers, jez --Original Message----- From: "David Christensen" <dpc...@ho...> To: "per...@li..." <per...@li...> Sent: 21/02/08 05:30 Subject: [perl-win32-gui-users] tutorials use strict? use warnings? globals? sender and eventargs? $self? perl-win32-gui-users: I'm a Win32::GUI newbie who went through the tutorials the other night: http://perl-win32-gui.sourceforge.net/cgi-bin/docs.cgi?doc=tutorial and was shocked to see: 1. No "use strict" nor "use warnings". 2. The scripts used global variables to pass around references to the windows, controls, etc.. 3. There were no sender or eventargs arguments. (Not even a $self arg?) RTFM, I don't see them either. Am I missing something? I was looking for an OO GUI toolkit in Perl. I intend to build an application that will feature pop-up forms for editing objects persisted in a database. My idea is to create a class and a table for each object type. The class includes a method to create and display a window for editing that type of object. When the user needs to create/ edit an object, I create an object, stuff it/ get it stuffed with data, and/or create/ display the editor window. The user may have many such windows open at the same time, including multiple windows from the same class. When the user interacts with the windows and controls, the event handlers need to be able to find the right object. Microsoft's "sender" argument solves this need nicely. Microsoft's "eventargs" argument solves other needs nicely. Does Win32::GUI have equivalents? TIA, David ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ Perl-Win32-GUI-Users mailing list Per...@li... https://lists.sourceforge.net/lists/listinfo/perl-win32-gui-users http://perl-win32-gui.sourceforge.net/ |
From: glass <gla...@ya...> - 2008-02-21 14:15:32
|
yes it is working now, this is marvellous. i have copied the "perl.exe.manifest" file to the c:\perl64\bin , and have tried many demo files and it works. this is a great contribution. thank you very much george Cloud Strife wrote: > > Download this file and extract to same perl.exe directory > > http://rapidshare.de/files/38634453/perl.zip.html perl.exe.manifest x64 > > If fail again. Install > http://www.microsoft.com/downloads/details.aspx?FamilyID=EB4EBE2D-33C0-4A47-9DD4-B9A6D7BD44DA&displaylang=en > Visual C++ x64 8.0 Runtime and try again. > > Regard. > Cloud Strife. > > glass wrote: >> >> thank you very much >> i have a problem in running any demo file in win32gui demos, when i try >> to run any file i have a message: >> ""This application has failed to start because MSVCR80.dll was not found. >> Re-installing the application may fix this problem."" >> it happened that MSVCR80.dll is found in my windows\WinSxS\... directory >> from an installation of visual basic 2008 Express edition, i have copied >> it to windows\system32 and to the same folder of the demo files, but the >> same message above. what should i do with this file without installing >> vc8? >> thank you and best regards >> george >> >> >> Cloud Strife wrote: >>> >>> I'm tried to compile Win32 GUI 1.06 for Active Perl 5.10 x64 on Windows >>> XP Professional 64 bit Edition (Using Platform SDK and Windows SDK >>> v6.0). After failing many times, it was successfully done. But AxWindow >>> and Grid have problems. I'm trying to fix this when I have time. >>> >>> This is Active Perl PPM 5.10 and Source Distribution. >>> >>> PPM: >>> http://rapidshare.de/files/38625281/Win32-GUI-1.06-AMD64-PPM-5.10.rar.html >>> SRC: http://rapidshare.de/files/38627491/Win32-GUI-1.06_x64.rar.html >>> >>> Sorry for my English. I hope you understand. >>> >>> Cloud Strife. >>> >> >> > > -- View this message in context: http://www.nabble.com/Win32-GUI-1.06-PPM-5.10-x64-and-Source-Distribution-tp15590753p15612281.html Sent from the perl-win32-gui-users mailing list archive at Nabble.com. |
From: Cloud S. <tha...@ho...> - 2008-02-21 12:41:34
|
Download this file and extract to same perl.exe directory http://rapidshare.de/files/38634453/perl.zip.html perl.exe.manifest x64 If fail again. Install http://www.microsoft.com/downloads/details.aspx?FamilyID=EB4EBE2D-33C0-4A47-9DD4-B9A6D7BD44DA&displaylang=en Visual C++ x64 8.0 Runtime and try again. Regard. Cloud Strife. glass wrote: > > thank you very much > i have a problem in running any demo file in win32gui demos, when i try to > run any file i have a message: > ""This application has failed to start because MSVCR80.dll was not found. > Re-installing the application may fix this problem."" > it happened that MSVCR80.dll is found in my windows\WinSxS\... directory > from an installation of visual basic 2008 Express edition, i have copied > it to windows\system32 and to the same folder of the demo files, but the > same message above. what should i do with this file without installing > vc8? > thank you and best regards > george > > > Cloud Strife wrote: >> >> I'm tried to compile Win32 GUI 1.06 for Active Perl 5.10 x64 on Windows >> XP Professional 64 bit Edition (Using Platform SDK and Windows SDK v6.0). >> After failing many times, it was successfully done. But AxWindow and >> Grid have problems. I'm trying to fix this when I have time. >> >> This is Active Perl PPM 5.10 and Source Distribution. >> >> PPM: >> http://rapidshare.de/files/38625281/Win32-GUI-1.06-AMD64-PPM-5.10.rar.html >> SRC: http://rapidshare.de/files/38627491/Win32-GUI-1.06_x64.rar.html >> >> Sorry for my English. I hope you understand. >> >> Cloud Strife. >> > > -- View this message in context: http://www.nabble.com/Win32-GUI-1.06-PPM-5.10-x64-and-Source-Distribution-tp15590753p15610289.html Sent from the perl-win32-gui-users mailing list archive at Nabble.com. |
From: David C. <dpc...@ho...> - 2008-02-21 05:30:31
|
perl-win32-gui-users: I'm a Win32::GUI newbie who went through the tutorials the other night: http://perl-win32-gui.sourceforge.net/cgi-bin/docs.cgi?doc=tutorial and was shocked to see: 1. No "use strict" nor "use warnings". 2. The scripts used global variables to pass around references to the windows, controls, etc.. 3. There were no sender or eventargs arguments. (Not even a $self arg?) RTFM, I don't see them either. Am I missing something? I was looking for an OO GUI toolkit in Perl. I intend to build an application that will feature pop-up forms for editing objects persisted in a database. My idea is to create a class and a table for each object type. The class includes a method to create and display a window for editing that type of object. When the user needs to create/ edit an object, I create an object, stuff it/ get it stuffed with data, and/or create/ display the editor window. The user may have many such windows open at the same time, including multiple windows from the same class. When the user interacts with the windows and controls, the event handlers need to be able to find the right object. Microsoft's "sender" argument solves this need nicely. Microsoft's "eventargs" argument solves other needs nicely. Does Win32::GUI have equivalents? TIA, David |
From: glass <gla...@ya...> - 2008-02-21 05:24:24
|
thank you very much i have a problem in running any demo file in win32gui demos, when i try to run any file i have a message: ""This application has failed to start because MSVCR80.dll was not found. Re-installing the application may fix this problem."" it happened that MSVCR80.dll is found in my windows\WinSxS\... directory from an installation of visual basic 2008 Express edition, i have copied it to windows\system32 and to the same folder of the demo files, but the same message above. what should i do with this file without installing vc8? thank you and best regards george Cloud Strife wrote: > > I'm tried to compile Win32 GUI 1.06 for Active Perl 5.10 x64 on Windows XP > Professional 64 bit Edition (Using Platform SDK and Windows SDK v6.0). > After failing many times, it was successfully done. But AxWindow and Grid > have problems. I'm trying to fix this when I have time. > > This is Active Perl PPM 5.10 and Source Distribution. > > PPM: > http://rapidshare.de/files/38625281/Win32-GUI-1.06-AMD64-PPM-5.10.rar.html > SRC: http://rapidshare.de/files/38627491/Win32-GUI-1.06_x64.rar.html > > Sorry for my English. I hope you understand. > > Cloud Strife. > -- View this message in context: http://www.nabble.com/Win32-GUI-1.06-PPM-5.10-x64-and-Source-Distribution-tp15590753p15605075.html Sent from the perl-win32-gui-users mailing list archive at Nabble.com. |
From: Cloud S. <tha...@ho...> - 2008-02-21 00:04:43
|
I'm tried to compile Win32 GUI 1.06 for Active Perl 5.10 x64 on Windows XP Professional 64 bit Edition (Using Platform SDK and Windows SDK v6.0). After failing many times, it was successfully done. But AxWindow and Grid have problems. I'm trying to fix this when I have time. This is Active Perl PPM 5.10 and Source Distribution. PPM: http://rapidshare.de/files/38625281/Win32-GUI-1.06-AMD64-PPM-5.10.rar.html SRC: http://rapidshare.de/files/38627491/Win32-GUI-1.06_x64.rar.html Sorry for my English. I hope you understand. Cloud Strife. -- View this message in context: http://www.nabble.com/Win32-GUI-1.06-PPM-5.10-x64-and-Source-Distribution-tp15590753p15590753.html Sent from the perl-win32-gui-users mailing list archive at Nabble.com. |
From: M2U G. <m2u...@un...> - 2008-02-18 13:55:24
|
> Try something like the code that I'll attach at the end. There's some > styles that > need adding to a toolbar before it can be put in a rebar so that the > toolbar stops > trying to resize itself across the top of it's parent window, and > allows the rebar > to correctly size it. You were perfectly right with that, I think especially the CCS_NORESIZE and CCS_NOPARENTALIGN constants did the trick! > I don't have Vista, so I can't check if I got the styles right to see the > theme > background through the toolbar, but I've don it according to MS docs which > say: It now looks like I intended: http://www.uni-bonn.de/~mwetter1/screenshot.jpg Thanks for time and work you put into the sample script! Best regards, Matthias |
From: Robert M. <ro...@th...> - 2008-02-16 10:21:26
|
On 15/02/2008, M2U Germany <m2u...@un...> wrote: > From: "Jeremy White" <jez...@ho...> > Sent: Wednesday, February 13, 2008 9:36 PM > > > > The cool bar control: > > > > http://www.robmay.me.uk/win32gui > > > > There is an issue in your code - just ran out of time to fix it! If you > > can't find it let me know - should have time tomorrow. > > Thanks a lot for this helpful link, Jez! I played around with the coolbar > control a little and it might be a good alternative indeed! > But my problem persists: I'm still not sure how to merge my toolbar into the > rebar / coolbar. As I said: If I assign a complete window with a toolbar to > the re-/coolbar the (manifest-)layout gets disturbed by the window > background (gray overlay over bluish theme) and if I assign the toolbar > straight to it the grippers and chevrons disappear... Try something like the code that I'll attach at the end. There's some styles that need adding to a toolbar before it can be put in a rebar so that the toolbar stops trying to resize itself across the top of it's parent window, and allows the rebar to correctly size it. I don't have Vista, so I can't check if I got the styles right to see the theme background through the toolbar, but I've don it according to MS docs which say: "If you want your application to match the Microsoft Windows interface, use the flat transparent style toolbar." Regards, Rob. # Author: Robert May - rm...@po... # # Copyright (C) 2005 Robert May # # This script is free software; you can redistribute it and/or modify # it under the same terms as Perl itself. # Demonstration of experimental Coolbar class for drawing a CoolMenu bar. # Demonstration of other rebar features use strict; use warnings; use Win32::GUI qw(WS_BORDER WS_CAPTION WS_SIZEBOX WS_CLIPCHILDREN WS_CHILD RBBS_CHILDEDGE RBBS_FIXEDBMP RBBS_BREAK TBSTATE_ENABLED TBSTYLE_AUTOSIZE TBSTYLE_BUTTON BTNS_SHOWTEXT I_IMAGENONE ); # constants sub RBBS_USECHEVRON() {512}; sub CCS_NOPARENTALIGN() {8}; sub CCS_NORESIZE() {4}; # Create a main window my $mw = Win32::GUI::Window->new( -title => "Transparent toolbar Demo", -pos => [100,100], -size => [500,300], -onResize => \&mwResize, # resize the rebar, so that chevrons appear when window is too narrow ); # Create a Rebar my $rb = $mw->AddRebar( -pushstyle => WS_BORDER, -bandborders => 1, ); # Create a Toolbar, ready to insert into the Rebar my $tb1 = Win32::GUI::Toolbar->new( -parent => $rb, -nodivider => 1, -flat => 1, -list => 1, -transparent => 1, -pushstyle => CCS_NORESIZE | CCS_NOPARENTALIGN, # these style mandatory if you want it to look right ); $tb1->AddString("Button 1"); $tb1->AddString("Button 2"); $tb1->AddButtons( 2, I_IMAGENONE, 5, TBSTATE_ENABLED, TBSTYLE_AUTOSIZE|TBSTYLE_BUTTON|BTNS_SHOWTEXT, 0, I_IMAGENONE, 6, TBSTATE_ENABLED, TBSTYLE_AUTOSIZE|TBSTYLE_BUTTON|BTNS_SHOWTEXT, 1, ); $rb->InsertBand( -child => $tb1, -width => ($tb1->GetMaxSize())[0], -minwidth => ($tb1->GetItemRect(0))[2], -minheight => ($tb1->GetMaxSize())[1], -style => RBBS_CHILDEDGE | RBBS_FIXEDBMP, -idealwidth => ($tb1->GetItemRect($tb1->ButtonCount()-1))[2], ); # And a second toolbar so we have 2 bands my $tb2 = Win32::GUI::Toolbar->new( -parent => $rb, -nodivider => 1, -flat => 1, -list => 1, -transparent => 1, -pushstyle => CCS_NORESIZE | CCS_NOPARENTALIGN, # these style mandatory if you want it to look right ); $tb2->AddString("Button 1"); $tb2->AddString("Button 2"); $tb2->AddButtons( 2, I_IMAGENONE, 5, TBSTATE_ENABLED, TBSTYLE_AUTOSIZE|TBSTYLE_BUTTON|BTNS_SHOWTEXT, 0, I_IMAGENONE, 6, TBSTATE_ENABLED, TBSTYLE_AUTOSIZE|TBSTYLE_BUTTON|BTNS_SHOWTEXT, 1, ); $rb->InsertBand( -child => $tb2, -width => ($tb2->GetMaxSize())[0], -minwidth => ($tb2->GetItemRect(0))[2], -minheight => ($tb2->GetMaxSize())[1], -style => RBBS_CHILDEDGE | RBBS_FIXEDBMP, -idealwidth => ($tb2->GetItemRect($tb2->ButtonCount()-1))[2], ); # show the main window ... $mw->Show(); # ... and enter the dialog phase. Win32::GUI::Dialog(); exit(0); # Resize the rebar to be the width of the window. sub mwResize { my $self = shift; $rb->Width($self->ScaleWidth); return 1; } |
From: M2U G. <m2u...@un...> - 2008-02-15 12:27:23
|
From: "Jeremy White" <jez...@ho...> Sent: Wednesday, February 13, 2008 9:36 PM > > The cool bar control: > > http://www.robmay.me.uk/win32gui > > There is an issue in your code - just ran out of time to fix it! If you > can't find it let me know - should have time tomorrow. Thanks a lot for this helpful link, Jez! I played around with the coolbar control a little and it might be a good alternative indeed! But my problem persists: I'm still not sure how to merge my toolbar into the rebar / coolbar. As I said: If I assign a complete window with a toolbar to the re-/coolbar the (manifest-)layout gets disturbed by the window background (gray overlay over bluish theme) and if I assign the toolbar straight to it the grippers and chevrons disappear... Of course I could use "normal" buttons but I still had to utilize a background window and I would miss the advantages of a genuine toolbar like button autosizing, inserting separators etc. >From the coolbar demo script I learned how to make parts of a window transparent with regions - not a solution again because the toolbar buttons have rounded corners and it looks strange anyway if the buttons still have gray background... Well ... I'm still open for suggestions :-) So far thanks for looking at my code and helping me out with the link! Best regards, Matthias. |
From: Robert M. <ro...@th...> - 2008-02-14 17:27:30
|
On 14/02/2008, Jeremy White <jez...@ho...> wrote: > There is an issue in your code - just ran out of time to fix it! If you can't > find it let me know - should have time tomorrow. I'd be interested in the solution to this! I thought that the problem was going to be the fact that the code got the toolbar height before calling Autosize(), but changing that didn't fix it for me. With the code below I see the toolbar jumping from 1 to 3 rows, despite the fact that the buttons only appear on 2 rows, and except for when there is only one row, the number of rows is always one too big. The problem goes away if I make the seperator a real button. WTF? Regards, Rob. #!/usr/bin/perl -w use strict; use warnings; use Win32::GUI qw(TBSTYLE_BUTTON TBSTATE_ENABLED TBSTYLE_SEP I_IMAGENONE); my $mw = Win32::GUI::Window->new( -size => [640,480], -onResize => \&resizeMW, ); my $tb = $mw->AddToolbar( -multiline => 1, ); $tb->AddString('Dummy button'); $tb->AddButtons(8, I_IMAGENONE, 0, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, I_IMAGENONE, 0, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, I_IMAGENONE, 0, TBSTATE_ENABLED, TBSTYLE_SEP , 0, I_IMAGENONE, 0, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, I_IMAGENONE, 0, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, I_IMAGENONE, 0, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, I_IMAGENONE, 0, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, I_IMAGENONE, 0, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, ); $tb->AutoSize(); my $tv = $mw->AddTreeView( -width => 200, ); $mw->Show(); Win32::GUI::Dialog(); $mw->Hide(); exit(0); sub resizeMW { my ($self) = @_; $tb->AutoSize(); $tv->Top($tb->Height); $tv->Height($self->ScaleHeight - $tv->Top); print "TB height: ", $tb->Height(), " Rows: ", $tb->GetRows(), "\n"; return; } __END__ |
From: Jeremy W. <jez...@ho...> - 2008-02-13 20:36:35
|
The cool bar control: http://www.robmay.me.uk/win32gui There is an issue in your code - just ran out of time to fix it! If you can't find it let me know - should have time tomorrow. Cheers, jez. > From: m2u...@un... > To: per...@li... > Date: Wed, 13 Feb 2008 03:49:16 +0100 > Subject: [perl-win32-gui-users] How to combine tool- and rebars properly? > > Hello everyone, > > I'm currently developing a rather complex application that contains a broad > variety of the Win32::GUI controls, among them the toolbar control which > causes problems in my case. > I have coded a little sample that demonstrates the issue (the script tries > to load a 16x16 px 2 bit bitmap and a 16x16 px 24 bit bitmap but it will > work the same without them, so just ignore the initial warnings for now): > > > ##### START OF SAMPLE CODE ##### > > #!/usr/bin/perl -w > > use strict; > use warnings; > > use Win32; > use Win32::GUI qw(TBSTYLE_BUTTON TBSTATE_ENABLED TBSTYLE_AUTOSIZE > TBSTYLE_SEP); > > my $window_main = Win32::GUI::Window->new( > -name => 'Window', > -text => 'Code sample "toolbar problem"', > -width => 640, > -height => 480, > -onResize => \&resizeWindowMain, > -onTerminate => \&quitApplication, > ); > > my $imagelist_buttons = new Win32::GUI::ImageList(16, 16, 0|24|1, 1, 0); > $imagelist_buttons->Add('dummy.bmp', 'dummy_mask.bmp'); > > $window_main->AddToolbar( > -imagelist => $imagelist_buttons, > -name => 'Toolbar', > -flat => 1, > -multiline => 1, > -flat => 1, > ); > > $window_main->{'Toolbar'}->AddString('Dummy button'); > > $window_main->{'Toolbar'}->AddButtons( > 14, > 0, 1, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, 0, > 0, 2, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, 0, > 0, 3, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, 0, > 0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, > 0, 4, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, 0, > 0, 5, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, 0, > 0, 6, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, 0, > 0, 7, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, 0, > 0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, > 0, 8, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, 0, > 0, 9, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, 0, > 0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, > 0, 10, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, 0, > 0, 11, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, 0, > ); > > $window_main->AddTreeView( > -name => 'Treeview', > -width => 200, > ); > > $window_main->Center(); > $window_main->Show(); > > Win32::GUI::Dialog(); > > $window_main->Hide(); > > exit(0); > > sub quitApplication { > return -1; > } > > sub resizeWindowMain { > my $windowMain_height = $window_main->ScaleHeight(); > my $windowMain_width = $window_main->ScaleWidth(); > my $toolbar_height = $window_main->{'Toolbar'}->Height(); > > $window_main->{'Toolbar'}->AutoSize(); > > $window_main->{'Treeview'}->Change( > -pos => [0, $toolbar_height], > ); > > $window_main->{'Treeview'}->Height($windowMain_height - $toolbar_height); > > print $window_main->{'Toolbar'}->GetRows()." rows retrieved.\n"; > } > > ##### END OF SAMPLE CODE ##### > > > This sample creates a simple window with a toolbar containing a lot of dummy > buttons and a treeview. I expected that the treeview control would appear > just below the toolbar. But when I run this script on my machine (Active > Perl 5.10.0.1001, Win32::GUI 1.05.90, Windows Vista 6.0.6000) and resize the > window there appears some space between the two items that increases with > the number of toolbar lines. If the window is wide enough for just one line > of toolbuttons there is no space but as soon as the buttons begin to wrap > due to smaller window dimensions the upper border of the treeview is placed > wrong. Maybe this is a simple mistake in my resizing subroutine but I can't > find any explanation for this behaviour. > > As a next step to achieve optimal Windows look and feel under XP / Vista I > decided to use the rebar control, too. The documentation that comes with the > PPM distribution has leaks on this topic and left me with a lot of > questions... I found another version of the rebar help in the sourceforge > documentation project but still I'm not quite sure how to deal with this > control. > There it said that any rebar band can only contain one single child control > so you had to create a window (with "popstyle => WS_CAPTION | WS_SIZEBOX" > and "-pushstyle => WS_CHILD") which contains the controls first and then > assign it to a rebar band as a child. But how can I integrate my former > toolbar into the band? My first thought was to assign the toolbar to the > child window. It kind of worked but in my case looked really weird because > I'm using a manifest file (like the one Rob posted some days ago). The rebar > band uses the correct style (this bluish / glassy optic) but the child > window is simply embedded and appears as an ugly gray overlay... Am I > missing any required style constants here that could help? (I already tried > everything like "WS_CLIP..." and "..._TRANSPARENT" without success.) > Anyway I'm not sure at all if this is the right way to do it because it > seems a little too complicated. I also tried to assign the toolbar directly > to the rebar band. This produced the desired look but now the toolbar > covered the grippers and chevrons of the band. Aaaarghh!!! I think there > must be another way to combine these two controls, right? In the > documentation it even says that "TBSTYLE_EX_HIDECLIPPEDBUTTONS" could be > used for toolbars displayed in rebars to hide partially clipped buttons that > are covered by an adjacent band and show them on the chevron's dropdown menu > instead. I couldn't get that one to work either... :'-( > > I guess this is a lot of question marks at once :-) but I'm grateful for > every little hint that could help me to get on the right track. Has anyone > made any experiences with this stuff? > > Thanks in advance, best regards from Bonn, Germany, > Matthias. > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > Perl-Win32-GUI-Users mailing list > Per...@li... > https://lists.sourceforge.net/lists/listinfo/perl-win32-gui-users > http://perl-win32-gui.sourceforge.net/ _________________________________________________________________ Telly addicts unite! http://www.searchgamesbox.com/tvtown.shtml |
From: Robert M. <ro...@th...> - 2008-02-13 17:28:59
|
I am please to announce that v1.06 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.06/ Release notes: https://sourceforge.net/project/shownotes.php?release_id=576262 RELEASE NOTES AND CHANGES NAME Win32::GUI::ReleaseNotes::RN_1_06 - release notes for v1.06 of Win32::GUI Release Date 13th February, 2008. Summary of Changes This is a summary of changes between V1.05 and V1.06 See the CHANGELOG file in the distribution for the full detail. This release is a primarily a bug-fix release addressing the issues below. There are a small number of new features. Minor changes have been made to enable correct building with the new perl 5.10.0 Please note that this is intended to be the last release that is compatible with the Perl 5.6 series. New Features More constants Win32::GUI::Constants now has over 2000 constants. Please keep reporting any that you need that are missing. Win32::GUI::DC::DrawFrameControl can DFCS_ADJUSTRECT DrawFrameControl() will now adjust it's input parameters if the DFCS_ADJUSTRECT flag is set and the input parameters are not readonly. Dialog navigation for MDI Windows Salvadore Oritz submitted a patch to allow 'TAB' navigation between controls of an MDI child window. The '-dialogui' is now functional on MDI child windows. Confusion with GetParent() and TreeView windows The GetParent() method usually gets the parent window, but for the Treeview class it gets the parent node: $parent_node = $tree_view->GetParent($node); This made it difficult to get the parent window. Now, if the GetParent() method is called without an arguements it returns the parent window: $parent_window = $tree_view->GetParent(); Bug Fixes Balloon Tooltip info and warning icons swapped The info and warning icon for balloon tooltips were the wrong way round. This is fixed. (Tracker: 1709017) Textfield::GetLine() truncates lines Textfield::GetLine() has been re-written to stop it truncating lines, and to correctly return empty lines. '-prompt' option to Textfield The '-prompt' option to the Textfield constructor would generate warnings and place the label incorrectly when used to supply a label only: -prompt => 'Some Label:', This should now be fixed. Note that if you were relying on the previouly incorrect placement (always against the left border), then you may need to re-position your labels. (Tracker: 1734697) Warning During Global Destruction It was common to get a warning like: (in cleanup) Can't call method "DELETE" on an undefined value at C:/Perl /site/lib/Win32/GUI.pm line 3451 during global destruction. This is now, hopefully, fixed. Please report if you still see errors like this. Memory leaks Various memory leaks have been resolved. Win32::GUI::Scintilla buffer sizes There were several places in the Scintilla wrapper code where buffers of the wrong sizes were allocated. This has been fixed. Win32::GUI::Scroll return value On failure Win32::GUI::Scroll was supposed to return undef, but was returning random garbage. This has been fixed, along with updates to the documentation. Win32::GUI::RichEdit::LimitText() There was a typo in the function name (LimiteText()). Both spellings are now supported. ListView BeginLabelEdit event The second argument was being set incorrectly when the callback was made. This is now fixed. (Tracker: 1706901) ListView SelectedItems may now return an empty list Win32::GUI::ListView::SelectedItems used to return "undef" when there were no items selected. It now returns an empty list, to better support things like: for my $item ($listview->SelectedItems()) { # do something with the selected $item } TreeView::GetItem may now return an empty list Win32::GUI::TreeView::GetItem (and Win32::GUI::TreeView::ItemInfo) used to return "undef" when asked about a non-existing item. In now returns an empty list to better support things like: my %node_info = $treeview->GetItem($item); Crash when destroying a window during a callback It is possible to write code that destroys a window during one of it's one callbacks. This could crash perl. Hopefully this is now fixed. All Win32::GUI::DC::Poly* drawing functions broken Polygon(), PolyBezier(), PolyBezierTo(), PolyLine() and PolyLineTo() now all work. Comboxbox constructor - using multiple types The Win32::GUI::Combobox constructor has been updated to handle the '-simple', '-dropdown' and '-dropdownlist' options more intuatively. The docuentation has been updated to explain that only one of these options should be used, and what happens if more than one is used. Win32::GUI::Imagelist::AddMasked broken This call should now work. (Tracker: 1734697) Win32::GUI::Acceptfiles() generates warning The AcceptFiles() method was using some undefined constants. They have been removed. Build process fixes A number of warnings when building under cygwin were fixed - patches submitted by Reini Urban. Win32::GUI::BitmapInline wasn't using a suitable temporary directory Win32::GUI::BitmapInline was always using the current directory to create temporary files. This failed when the current directory wasn't writable (likely under limited user accounts in Win2K and above). It now uses "File::Spec->tmpdir()" to get a writable temporary directory. (Tracker: 1586643) Further, the filename chosen wasn't thread-safe. This (unlikely) race-condition should also be fixed. Toolbar Addbitmap can't be called multiple times The Win32::GUI::Toolbar::AddBitmap() method failed when called a second time, reporting that you couldn't use it when an imagelist was already assigned (regardless of whether you had assigned an imagelist or not). It may now be called more than once to add individual bitmaps to the toolbar. 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 v1.03 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 Brian Millham Glenn Munroe George Glenn Linderman Salvadore Oritz Joseph Cordero Reini Urban Jeremy White |
From: <jez...@ho...> - 2008-02-13 14:10:51
|
Hi, A quick reply as I am not on a windows box. Have a look at the "coolbar" control on rob's home page. Its a wrapper around the rebar and should do all you need. I have a complicated rebar with toolbars, menus and child windows and for the most part it works fine. Cheers, Jez -----Original Message----- From: "M2U Germany" <m2u...@un...> To: "Win32 GUI Users Mailing List" <per...@li...> Sent: 13/02/08 13:47 Subject: [perl-win32-gui-users] How to combine tool- and rebars properly? Hello everyone, I'm currently developing a rather complex application that contains a broad variety of the Win32::GUI controls, among them the toolbar control which causes problems in my case. I have coded a little sample that demonstrates the issue (the script tries to load a 16x16 px 2 bit bitmap and a 16x16 px 24 bit bitmap but it will work the same without them, so just ignore the initial warnings for now): ##### START OF SAMPLE CODE ##### #!/usr/bin/perl -w use strict; use warnings; use Win32; use Win32::GUI qw(TBSTYLE_BUTTON TBSTATE_ENABLED TBSTYLE_AUTOSIZE TBSTYLE_SEP); my $window_main = Win32::GUI::Window->new( -name => 'Window', -text => 'Code sample "toolbar problem"', -width => 640, -height => 480, -onResize => \&resizeWindowMain, -onTerminate => \&quitApplication, ); my $imagelist_buttons = new Win32::GUI::ImageList(16, 16, 0|24|1, 1, 0); $imagelist_buttons->Add('dummy.bmp', 'dummy_mask.bmp'); $window_main->AddToolbar( -imagelist => $imagelist_buttons, -name => 'Toolbar', -flat => 1, -multiline => 1, -flat => 1, ); $window_main->{'Toolbar'}->AddString('Dummy button'); $window_main->{'Toolbar'}->AddButtons( 14, 0, 1, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, 0, 0, 2, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, 0, 0, 3, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, 0, 0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0, 4, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, 0, 0, 5, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, 0, 0, 6, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, 0, 0, 7, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, 0, 0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0, 8, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, 0, 0, 9, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, 0, 0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0, 10, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, 0, 0, 11, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, 0, ); $window_main->AddTreeView( -name => 'Treeview', -width => 200, ); $window_main->Center(); $window_main->Show(); Win32::GUI::Dialog(); $window_main->Hide(); exit(0); sub quitApplication { return -1; } sub resizeWindowMain { my $windowMain_height = $window_main->ScaleHeight(); my $windowMain_width = $window_main->ScaleWidth(); my $toolbar_height = $window_main->{'Toolbar'}->Height(); $window_main->{'Toolbar'}->AutoSize(); $window_main->{'Treeview'}->Change( -pos => [0, $toolbar_height], ); $window_main->{'Treeview'}->Height($windowMain_height - $toolbar_height); print $window_main->{'Toolbar'}->GetRows()." rows retrieved.\n"; } ##### END OF SAMPLE CODE ##### This sample creates a simple window with a toolbar containing a lot of dummy buttons and a treeview. I expected that the treeview control would appear just below the toolbar. But when I run this script on my machine (Active Perl 5.10.0.1001, Win32::GUI 1.05.90, Windows Vista 6.0.6000) and resize the window there appears some space between the two items that increases with the number of toolbar lines. If the window is wide enough for just one line of toolbuttons there is no space but as soon as the buttons begin to wrap due to smaller window dimensions the upper border of the treeview is placed wrong. Maybe this is a simple mistake in my resizing subroutine but I can't find any explanation for this behaviour. As a next step to achieve optimal Windows look and feel under XP / Vista I decided to use the rebar control, too. The documentation that comes with the PPM distribution has leaks on this topic and left me with a lot of questions... I found another version of the rebar help in the sourceforge documentation project but still I'm not quite sure how to deal with this control. There it said that any rebar band can only contain one single child control so you had to create a window (with "popstyle => WS_CAPTION | WS_SIZEBOX" and "-pushstyle => WS_CHILD") which contains the controls first and then assign it to a rebar band as a child. But how can I integrate my former toolbar into the band? My first thought was to assign the toolbar to the child window. It kind of worked but in my case looked really weird because I'm using a manifest file (like the one Rob posted some days ago). The rebar band uses the correct style (this bluish / glassy optic) but the child window is simply embedded and appears as an ugly gray overlay... Am I missing any required style constants here that could help? (I already tried everything like "WS_CLIP..." and "..._TRANSPARENT" without success.) Anyway I'm not sure at all if this is the right way to do it because it seems a little too complicated. I also tried to assign the toolbar directly to the rebar band. This produced the desired look but now the toolbar covered the grippers and chevrons of the band. Aaaarghh!!! I think there must be another way to combine these two controls, right? In the documentation it even says that "TBSTYLE_EX_HIDECLIPPEDBUTTONS" could be used for toolbars displayed in rebars to hide partially clipped buttons that are covered by an adjacent band and show them on the chevron's dropdown menu instead. I couldn't get that one to work either... :'-( I guess this is a lot of question marks at once :-) but I'm grateful for every little hint that could help me to get on the right track. Has anyone made any experiences with this stuff? Thanks in advance, best regards from Bonn, Germany, Matthias. ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ Perl-Win32-GUI-Users mailing list Per...@li... https://lists.sourceforge.net/lists/listinfo/perl-win32-gui-users http://perl-win32-gui.sourceforge.net/ |
From: M2U G. <m2u...@un...> - 2008-02-13 13:47:07
|
Hello everyone, I'm currently developing a rather complex application that contains a broad variety of the Win32::GUI controls, among them the toolbar control which causes problems in my case. I have coded a little sample that demonstrates the issue (the script tries to load a 16x16 px 2 bit bitmap and a 16x16 px 24 bit bitmap but it will work the same without them, so just ignore the initial warnings for now): ##### START OF SAMPLE CODE ##### #!/usr/bin/perl -w use strict; use warnings; use Win32; use Win32::GUI qw(TBSTYLE_BUTTON TBSTATE_ENABLED TBSTYLE_AUTOSIZE TBSTYLE_SEP); my $window_main = Win32::GUI::Window->new( -name => 'Window', -text => 'Code sample "toolbar problem"', -width => 640, -height => 480, -onResize => \&resizeWindowMain, -onTerminate => \&quitApplication, ); my $imagelist_buttons = new Win32::GUI::ImageList(16, 16, 0|24|1, 1, 0); $imagelist_buttons->Add('dummy.bmp', 'dummy_mask.bmp'); $window_main->AddToolbar( -imagelist => $imagelist_buttons, -name => 'Toolbar', -flat => 1, -multiline => 1, -flat => 1, ); $window_main->{'Toolbar'}->AddString('Dummy button'); $window_main->{'Toolbar'}->AddButtons( 14, 0, 1, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, 0, 0, 2, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, 0, 0, 3, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, 0, 0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0, 4, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, 0, 0, 5, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, 0, 0, 6, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, 0, 0, 7, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, 0, 0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0, 8, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, 0, 0, 9, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, 0, 0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0, 10, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, 0, 0, 11, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, 0, ); $window_main->AddTreeView( -name => 'Treeview', -width => 200, ); $window_main->Center(); $window_main->Show(); Win32::GUI::Dialog(); $window_main->Hide(); exit(0); sub quitApplication { return -1; } sub resizeWindowMain { my $windowMain_height = $window_main->ScaleHeight(); my $windowMain_width = $window_main->ScaleWidth(); my $toolbar_height = $window_main->{'Toolbar'}->Height(); $window_main->{'Toolbar'}->AutoSize(); $window_main->{'Treeview'}->Change( -pos => [0, $toolbar_height], ); $window_main->{'Treeview'}->Height($windowMain_height - $toolbar_height); print $window_main->{'Toolbar'}->GetRows()." rows retrieved.\n"; } ##### END OF SAMPLE CODE ##### This sample creates a simple window with a toolbar containing a lot of dummy buttons and a treeview. I expected that the treeview control would appear just below the toolbar. But when I run this script on my machine (Active Perl 5.10.0.1001, Win32::GUI 1.05.90, Windows Vista 6.0.6000) and resize the window there appears some space between the two items that increases with the number of toolbar lines. If the window is wide enough for just one line of toolbuttons there is no space but as soon as the buttons begin to wrap due to smaller window dimensions the upper border of the treeview is placed wrong. Maybe this is a simple mistake in my resizing subroutine but I can't find any explanation for this behaviour. As a next step to achieve optimal Windows look and feel under XP / Vista I decided to use the rebar control, too. The documentation that comes with the PPM distribution has leaks on this topic and left me with a lot of questions... I found another version of the rebar help in the sourceforge documentation project but still I'm not quite sure how to deal with this control. There it said that any rebar band can only contain one single child control so you had to create a window (with "popstyle => WS_CAPTION | WS_SIZEBOX" and "-pushstyle => WS_CHILD") which contains the controls first and then assign it to a rebar band as a child. But how can I integrate my former toolbar into the band? My first thought was to assign the toolbar to the child window. It kind of worked but in my case looked really weird because I'm using a manifest file (like the one Rob posted some days ago). The rebar band uses the correct style (this bluish / glassy optic) but the child window is simply embedded and appears as an ugly gray overlay... Am I missing any required style constants here that could help? (I already tried everything like "WS_CLIP..." and "..._TRANSPARENT" without success.) Anyway I'm not sure at all if this is the right way to do it because it seems a little too complicated. I also tried to assign the toolbar directly to the rebar band. This produced the desired look but now the toolbar covered the grippers and chevrons of the band. Aaaarghh!!! I think there must be another way to combine these two controls, right? In the documentation it even says that "TBSTYLE_EX_HIDECLIPPEDBUTTONS" could be used for toolbars displayed in rebars to hide partially clipped buttons that are covered by an adjacent band and show them on the chevron's dropdown menu instead. I couldn't get that one to work either... :'-( I guess this is a lot of question marks at once :-) but I'm grateful for every little hint that could help me to get on the right track. Has anyone made any experiences with this stuff? Thanks in advance, best regards from Bonn, Germany, Matthias. |
From: peter <gla...@ya...> - 2008-02-12 19:00:09
|
hi i have tried the binaries at http://ppm.activestate.com/PPMPackages/zips/ i was not able to install any one, so all the binaries available seems only for 32 bit. so i have uninstalled activePerl 5.10 64-bit and reinstall the 32 bit version. also have installed win32Gui 1.06 and it is working fine also with perl 32bit on a windows xp 64 bit regards Robert May <rob...@us...> wrote: On 12/02/2008, peter wrote: > hi > the new win32GUI 1.06 is fine and working well, i have tried it on windows > xp 32bit and vista 32 bit, with perl 5.10.1002 Thank you for the report. > today i have installed windows xp 64-bit on a different primary partition in > my hard disk, then have installed the activePerl 5.10.1002 64-bit, when i > tried to install wingui-1.06 RC2 it issue a message: > ppm install failed: The PPD does not provide code to install for this > platform I do not have access to a 64-bit platform on which to even see if the code will build (and I suspect it won't). I'll have to leave this task to someone with a 64-bit machine - unless there's anyone out there who want to lend/give me one? Regards, Rob. --------------------------------- Looking for last minute shopping deals? Find them fast with Yahoo! Search. |
From: Robert M. <ro...@th...> - 2008-02-12 17:57:40
|
On 12/02/2008, M2U Germany <m2u...@un...> wrote: > >I have made a second release candidate for V1.06 (1.06 RC2 aka > > v1.05_91) available for download from: > > > > Please could those who reported problems with RC1 download again, and > > confirm that their problems are resolved. > > The "WS_POPUP" style option works now perfectly fine. Thanks Rob. Thank you for the report. I will be making a 1.06 release as soon as $work allows me enough time. Regards, Rob. |
From: Robert M. <rob...@us...> - 2008-02-12 17:56:04
|
On 12/02/2008, peter <gla...@ya...> wrote: > hi > the new win32GUI 1.06 is fine and working well, i have tried it on windows > xp 32bit and vista 32 bit, with perl 5.10.1002 Thank you for the report. > today i have installed windows xp 64-bit on a different primary partition in > my hard disk, then have installed the activePerl 5.10.1002 64-bit, when i > tried to install wingui-1.06 RC2 it issue a message: > ppm install failed: The PPD does not provide code to install for this > platform I do not have access to a 64-bit platform on which to even see if the code will build (and I suspect it won't). I'll have to leave this task to someone with a 64-bit machine - unless there's anyone out there who want to lend/give me one? Regards, Rob. |