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
|
From: Steve B. <ste...@sh...> - 2009-10-21 17:00:00
|
Hi All, I have been talking with Rob May about taking on the administration a web site for the Win32::Gui project. The current wiki no longer allows editing because of problems with spam, and the lack of time to get everything fixed. I have been digging around and familiarizing myself with the offerings at sourceforge to see what might make a good base for the community. Sourceforge offers two interesting possibilities: 1. MediWiki Originally written for Wikipedia this is an excellent wiki product. 2. phpWebsite PhpWebsite is a content management system that allows the development of a full-featured web site, including (in the latest release) a wiki, blogging, and many other community-building features. Personally I lean toward phpWebsite. I'd like to hear from people what they would like to see on a win32::Gui website/wiki, how many would be willing to contribute content, assist with site managment and maintenance, and so on. Please reply to the list with your thoughts, comments and suggestions. Regards, Steve Steve Bondy http://stevebondy.ca |
From: Kevin M. <kej...@ho...> - 2009-10-12 10:06:47
|
John, It is possible to capture keyboard input by using the -onKeyDown or -onKeyUp events. Here is an example: my $winMain = Win32::GUI::Window->new( -name => 'winMain', -text => 'Keyboard Capture', -size => [320,240], -onKeyDown => sub { my($self, $flags, $key) = @_; #do processing here return 1; }, ); __END__ The $key param contains the virtual key code, and the $flags param contains flags for the event, such as repeat count. See the Microsoft SDK docs for more information. One problem is that the window will only report key press events when it has focus. This means that if any of the controls in the window have focus, the keypress events won't trigger. An alternative is to use one of the GetAsyncKeyState / GetKeyboardState / GetKeyState methods instead to poll the keyboard when you need input, such as every timer event. Hope this helps, Kevin. > From: jo...@jo... > To: per...@li... > Date: Sun, 11 Oct 2009 23:25:52 -0700 > Subject: [perl-win32-gui-users] How to capture keyboard key presses > > Hello, > > I have a timer application that uses Win32::GUI, version 1.06, and all works > quite nicely. > > I would like add a capability so that my $window_main can capture keyboard > events when certain keys are pressed, for example space bar (\x20), esc > (\x1b) if possible, enter (\x0d), or one of the keyboard function keys (F1 - > F12). Users want to be able to start and stop my timer using the space bar > for example. Is this possible? My $window_main has no input text fields, > just images and Hyperlinks. > > John > jo...@jo... > 801 815 9265 > > > ------------------------------------------------------------------------------ > Come build with us! The BlackBerry(R) Developer Conference in SF, CA > is the only developer event you need to attend this year. Jumpstart your > developing skills, take BlackBerry mobile applications to market and stay > ahead of the curve. Join us from November 9 - 12, 2009. Register now! > http://p.sf.net/sfu/devconference > _______________________________________________ > Perl-Win32-GUI-Users mailing list > Per...@li... > https://lists.sourceforge.net/lists/listinfo/perl-win32-gui-users > http://perl-win32-gui.sourceforge.net/ _________________________________________________________________ Use Messenger in your Hotmail inbox Find out how here http://windowslive.ninemsn.com.au/article.aspx?id=823454 |
From: george <mer...@ya...> - 2009-10-12 06:26:20
|
hello i have discovered that there is a wiki for win32gui, http://perl-win32-gui.sourceforge.net/cgi-bin/wiki.cgi but have found that there is only 4 code examples there. so i hope the users to post more examples, if you think you are professional and can't post simple examples think of it as teaching the beginners who are new to the subject , on the other hand if you think that your code is silly, someone there may benefit from it and find it usefull. yes there are many examples in the win32gui package, but still there are unlimited variations and tricks in the horizon. there are many good codes in the forum; and extracting and organizing it then posting it to the wiki is a good choice. indeed i wish some professional may author an Ebook called "Perl Win32Gui step by step" or "perl win32gui for dummies" and so on. please fill the wiki with your code, and tutorials. best wishes for all george |
From: John W. <jo...@jo...> - 2009-10-12 05:41:34
|
Hello, I have a timer application that uses Win32::GUI, version 1.06, and all works quite nicely. I would like add a capability so that my $window_main can capture keyboard events when certain keys are pressed, for example space bar (\x20), esc (\x1b) if possible, enter (\x0d), or one of the keyboard function keys (F1 - F12). Users want to be able to start and stop my timer using the space bar for example. Is this possible? My $window_main has no input text fields, just images and Hyperlinks. John jo...@jo... 801 815 9265 |
From: peter <my....@gm...> - 2009-09-11 10:35:35
|
Hi here is another fun example on using the Win32-GUI-OpenGLFrame-0.02 attached a file demostrate the new package capabilities, it is drawing a moving spider, a sea monster, a cube and a triangle, every one entity appears upon clicking it's own button, there is a slider to speed the movement of the spider. here is a picture showing the program: http://img34.imageshack.us/img34/3226/win32guiopengl.jpg you can download the program perl script from here: http://rapidshare.com/files/278504269/Win32-GUI-OpenGLFrame.pl you can install opengl for windows for active state perl 5.10 from here: http://www.bribes.org/perl/ppmdir.html and for installation: ppm install http://www.bribes.org/perl/ppm/OpenGL.ppd the opengl code in the example in not the optimal one , you can recode it in a thousand way, and it needs many corrections, but it is usefull and fun , i hope the math and science teachers to see that the design can have many 3D figures for the benefits of the students, also the biology teachers can design all sorts of moving insects , creatures ... . i hope if rob may can provide a ppm for the Win32-GUI-OpenGLFrame-0.02 , since it is until now not available on activestate or the other ppm providers sites ,and this is much more convenient to install for the most windows users. regards peter #!perl -w use strict; use warnings; use Win32::GUI qw(WS_CLIPCHILDREN); use Win32::GUI::OpenGLFrame qw(w32gSwapBuffers); use OpenGL qw(:all); my $spin = 0.0; my $xrot = 0; my $yrot = 0; my $rtri = 0.0; my $rtcube = 0.0; my $objectXRot = 0.0; my $objectYRot = 0.0; my $objectZRot = 0.0; my $flag = 3; our $rot=0; our $speed = 0.1; our $spinSpeed = 0.1; my $mw = Win32::GUI::Window->new( -title => "Win32-GUI-OpenGLFrame-0.02 Demonstration", -pos => [0,0], -size => [640,480], -pushstyle => WS_CLIPCHILDREN, # stop flickering on resize -onResize => \&mainWinResize, ); my $glw = $mw->AddOpenGLFrame( -name => 'oglwin', -width => $mw->ScaleWidth(), -height => $mw->ScaleHeight() - 50, -display => \&display, -init => \&Init, -reshape => \&reshape, -doubleBuffer => 1, ); my $s1 = $mw->AddSlider ( -width => 300, -height => 40, -top => $mw->ScaleHeight()-30, -left => 10, -onScroll => \&slider, ); $s1->Pos(10); $mw->AddLabel( -text => "monster speed", -name => "Label_1", -left => 75, -top => $mw->ScaleHeight()-45, -width => 79, -height => 19, -foreground => 0, ); $mw->AddButton( -name => 'button1', -text => 'Triangle', -left => $mw->ScaleWidth()- 100, -top => $mw->ScaleHeight()-30, #-onClick => sub{-1}, ); $mw->AddButton( -name => 'button2', -text => 'Cube', -left => $mw->ScaleWidth()-140, -top => $mw->ScaleHeight()-30, ); $mw->AddButton( -name => 'button3', -text => 'Spider', -left => $mw->ScaleWidth()-300, -top => $mw->ScaleHeight()-30, ); $mw->AddButton( -name => 'button4', -text => 'sea monster', -left => $mw->ScaleWidth()-245, -top => $mw->ScaleHeight()-30, ); $mw->Show(); while(Win32::GUI::DoEvents() != -1) { $mw->oglwin->InvalidateRect(0); } #Win32::GUI::Dialog(); $mw->Hide(); exit(0); sub mainWinResize { my $win = shift; $win->oglwin->Resize($win->ScaleWidth(), $win->ScaleHeight()-50); $win->button1->Move($win->ScaleWidth()-100, $win->ScaleHeight()-30); $win->button2->Move($win->ScaleWidth()-160, $win->ScaleHeight()-30); return 0; } sub reshape { my ($w, $h) = @_; glViewport(0, 0, $w, $h); glMatrixMode (GL_PROJECTION); glLoadIdentity (); # define the projection gluPerspective(45.0, $h ? $w/$h : 0, 1.0, 20.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); return 0; } sub Init { glShadeModel(GL_SMOOTH); glClearColor(0, 0, 0, 0); glClearDepth(1); glEnable(GL_DEPTH_TEST); glDepthFunc(GL_LEQUAL); glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); glEnable(GL_DEPTH_TEST); #glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glMatrixMode(GL_PROJECTION); glMatrixMode(GL_MODELVIEW); return 1; } sub display { glPushMatrix(); #save current matrix if ($flag == 1){ glDisable(GL_LIGHTING );DrawTriangle();} #draw triangle elsif ($flag == 2){ glDisable(GL_LIGHTING );DrawCube();}; #draw cube if ($flag == 3) { glEnable(GL_LIGHTING); spider(); } #draw spider elsif ($flag == 4){ glEnable(GL_LIGHTING); Sea_Monster(); } glPopMatrix(); #restore matrix glFlush(); w32gSwapBuffers(); return 1; } sub DrawTriangle { glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); glLoadIdentity(); glTranslatef(0.0, 0.0, -6.0); glRotatef($rtri, 0, 1, 0); my $size = 1; glScalef($size,$size,$size); glBegin(GL_TRIANGLES); glColor3f(1.0, 0.0, 0.0); glVertex3f(0.0, 1.0, 0.0); glColor3f(0.0, 1.0, 0.0); glVertex3f(-1.0, -1.0, 0.0); glColor3f(0.0, 0.0, 1.0); glVertex3f(1.0, -1.0, 0.0); glEnd(); $rtri += 2; } sub DrawCube { glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); glLoadIdentity(); my $size = 1; glTranslatef(0.0, 0.0, -6.0); glRotatef($objectXRot, 1.0, 0.0, 0.0); glRotatef($objectYRot, 0.0, 1.0, 0.0); glRotatef($objectZRot, 0.0, 0.0, 1.0); glScalef($size,$size,$size); glBegin(GL_QUADS); # bottom face glColor3f(0.0,0.0,0.0); #black glVertex3f(-1.0,-1.0,-1.0); glColor3f(1.0,0.0,0.0); #red glVertex3f(1.0,-1.0,-1.0); glColor3f(1.0,0.0,1.0); #magenta glVertex3f(1.0,-1.0,1.0); glColor3f(0.0,0.0,1.0); #blue glVertex3f(-1.0,-1.0,1.0); # front face glColor3f(0.0,0.0,0.0); #black glVertex3f(-1.0,-1.0,-1.0); glColor3f(0.0,1.0,0.0); #green glVertex3f(-1.0,1.0,-1.0); glColor3f(1.0,1.0,0.0); #yellow glVertex3f(1.0,1.0,-1.0); glColor3f(1.0,0.0,0.0); #red glVertex3f(1.0,-1.0,-1.0); # right face glColor3f(0.0,0.0,0.0); #black glVertex3f(-1.0, -1.0, -1.0); glColor3f(0.0,0.0,1.0); #blue glVertex3f(-1.0,-1.0,1.0); glColor3f(0.0,1.0,1.0); #cyan glVertex3f(-1.0,1.0,1.0); glColor3f(0.0,1.0,0.0); #green glVertex3f(-1.0,1.0,-1.0); # left face glColor3f(1.0,1.0,1.0); #white glVertex3f(1.0,1.0,1.0); glColor3f(1.0,0.0,1.0); #magenta glVertex3f(1.0,-1.0,1.0); glColor3f(1.0,0.0,0.0); #red glVertex3f(1.0,-1.0,-1.0); glColor3f(1.0,1.0,0.0); #yellow glVertex3f(1.0,1.0,-1.0); # top face glColor3f(1.0,1.0,1.0); #white glVertex3f(1.0,1.0,1.0); glColor3f(1.0,1.0,0.0); #yelllow glVertex3f(1.0,1.0,-1.0); glColor3f(0.0,1.0,0.0); #green glVertex3f(-1.0,1.0,-1.0); glColor3f(0.0,1.0,1.0); #cyan glVertex3f(-1.0,1.0,1.0); # back face glColor3f(1.0,1.0,1.0); #white glVertex3f(1.0,1.0,1.0); glColor3f(0.0,1.0,1.0); #cyan glVertex3f(-1.0,1.0,1.0); glColor3f(0.0,0.0,1.0); #blue glVertex3f(-1.0,-1.0,1.0); glColor3f(1.0,0.0,1.0); #magenta glVertex3f(1.0,-1.0,1.0); glEnd(); $objectXRot += 0.5; $objectYRot += 0.5; $objectZRot += 0.5; } sub spider { my $i=0; my @light0_position = (2.0, -5.0, 4.0, 0.0); my @mat_specular = (1.0, 1.0, 1.0, 1.0); my @mat_shininess = (50.0); my @mat_amb_diff_color = (1.0, 0.5, 0.0, 0.5); my @mat_amb_diff_color2 = (1.0, 1.0, 0.0, 0.5); my @light_diffuse = (1.0, 1.0, 1.0, 1.0); my @light_ambient = (0.15, 0.15, 0.15, 0.15); my @light_specular = (1.0, 1.0, 1.0, 1.0); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLightfv_p(GL_LIGHT0, GL_POSITION, @light0_position); glLightfv_p(GL_LIGHT0, GL_DIFFUSE, @light_diffuse); glLightfv_p(GL_LIGHT0, GL_AMBIENT, @light_ambient); glLightfv_p(GL_LIGHT0, GL_SPECULAR, @light_specular); glLoadIdentity(); gluLookAt(0.0, 3.0, -10.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); $spin += $spinSpeed; $spin = $spin - 360.0 if ($spin >360.0); glRotatef($spin, 0.0, 1.0, 0.0); $rot=$rot+$speed; # the frequency of the legs movement my $quad = OpenGL::gluNewQuadric(); glMaterialfv_p(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, @mat_amb_diff_color2); gluQuadricDrawStyle($quad, GLU_FILL); glPushMatrix(); glTranslatef(-0.5, 1.5, -4.0);#to rotate the spider around a circle glRotatef( $spin, 0.0, 1.0, 0.0 );#........................ glPushMatrix(); glTranslatef(0.0, 0.5, 0.0); gluSphere( $quad , 0.8 , 20 , 20 ); glPopMatrix(); glMaterialfv_p(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, @mat_amb_diff_color); #drawing 8 Legs, every Leg has 3 parts: for ($i = 0; $i<=359; $i=$i+45) { #drawing Leg's part 1: glPushMatrix(); glRotatef( $i, 0.0, 1.0, 0.0 ); glRotatef( 0+sin($rot+$i)*20, 0.0, 1.0, 0.0 ); glPushMatrix(); glRotatef(-90, 0.0, 1.0, 0.0); gluQuadricDrawStyle($quad, GLU_FILL); gluQuadricOrientation($quad, GLU_INSIDE); #Other draw steel choises below: #gluQuadricDrawStyle($quad, GLU_POINT); #gluQuadricDrawStyle($quad, GLU_SILHOUETTE); #gluQuadricDrawStyle($quad, GLU_FILL); #gluQuadricDrawStyle($quad, GLU_LINE); gluCylinder($quad, 0.2, 0.15, 2, 16, 10); glPopMatrix(); #drawing a smaller Leg's part 2: glTranslatef(-2.0, 0.0, 0.0); glRotatef(30, 0.0, 0.0, 1.0); glPushMatrix(); glRotatef(-90, 0.0, 1.0, 0.0); gluCylinder($quad, 0.15, 0.1, 1.5, 16, 10); glPopMatrix(); #drawing the smallest Leg's part 3: glTranslatef(-1.5, 0.0, 0.0); glRotatef(30, 0.0, 0.0, 1.0); glPushMatrix(); glRotatef(-90, 0.0, 1.0, 0.0); gluCylinder($quad, 0.1, 0.05, 1.0, 16, 10); glPopMatrix(); glPopMatrix(); } glPopMatrix(); } sub Sea_Monster { my $i=0; my @light0_position = (2.0, -5.0, 4.0, 0.0); my @mat_specular = (1.0, 1.0, 1.0, 1.0); my @mat_shininess = (50.0); my @mat_amb_diff_color = (1.0, 0.5, 0.0, 0.5); my @mat_amb_diff_color2 = (1.0, 1.0, 0.0, 0.5); my @light_diffuse = (1.0, 1.0, 1.0, 1.0); my @light_ambient = (0.15, 0.15, 0.15, 0.15); my @light_specular = (1.0, 1.0, 1.0, 1.0); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLightfv_p(GL_LIGHT0, GL_POSITION, @light0_position); glLightfv_p(GL_LIGHT0, GL_DIFFUSE, @light_diffuse); glLightfv_p(GL_LIGHT0, GL_AMBIENT, @light_ambient); glLightfv_p(GL_LIGHT0, GL_SPECULAR, @light_specular); glLoadIdentity(); gluLookAt(0.0, 3.0, 10.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); $spin += $spinSpeed; $spin = $spin - 360.0 if ($spin >360.0); glRotatef($spin, 0.0, 1.0, 0.0); $rot=$rot+$speed; # the frequency of the legs movement my $quad = OpenGL::gluNewQuadric(); glMaterialfv_p(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, @mat_amb_diff_color2); gluQuadricDrawStyle($quad, GLU_FILL); glPushMatrix(); glTranslatef(0.0, 0.6, 0.0); gluSphere( $quad , 0.8 , 20 , 20 ); glPopMatrix(); glMaterialfv_p(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, @mat_amb_diff_color); #drawing 8 Legs, every Leg has 3 parts: for ($i = 0; $i<=359; $i=$i+45) { #drawing Leg's part 1: glPushMatrix(); glRotatef( $i, 0.0, 1.0, 0.0 ); glPushMatrix(); glRotatef(-90, 0.0, 1.0, 0.0); gluQuadricDrawStyle($quad, GLU_FILL); gluQuadricOrientation($quad, GLU_INSIDE); #Other draw steel choises below: #gluQuadricDrawStyle($quad, GLU_POINT); #gluQuadricDrawStyle($quad, GLU_SILHOUETTE); #gluQuadricDrawStyle($quad, GLU_FILL); #gluQuadricDrawStyle($quad, GLU_LINE); gluCylinder($quad, 0.2, 0.15, 2, 16, 10); glPopMatrix(); glRotatef( 70+sin($rot+$i)*20, 1.0, 0.0, 0.0 ); #drawing a smaller Leg's part 2: glTranslatef(-2.0, 0.0, 0.0); glRotatef(30, 0.0, 0.0, 1.0); glPushMatrix(); glRotatef(-90, 0.0, 1.0, 0.0); gluCylinder($quad, 0.15, 0.1, 1.5, 16, 10); glPopMatrix(); #drawing the smallest Leg's part 3: glTranslatef(-1.5, 0.0, 0.0); glRotatef(30, 0.0, 0.0, 1.0); glPushMatrix(); glRotatef(-90, 0.0, 1.0, 0.0); gluCylinder($quad, 0.1, 0.05, 1.0, 16, 10); glPopMatrix(); glPopMatrix(); } #glRotatef(90, 1.0, 0.0, 0.0); #glutSwapBuffers(); } sub button1_Click { #to call the DrawTriangle() sub $flag = 1; } sub button2_Click { #to call the DrawCube() sub $flag = 2; } sub button3_Click { #to call the DrawMonster() sub $flag = 3; } sub button4_Click { #to call the DrawMonster() sub $flag = 4; } sub slider() { my $sliderval = $s1->GetPos(); # to determine the vibrational speed of the Legs: $speed = $sliderval /100; $spinSpeed = $speed; #rotational speed of the monster } |
From: Kevin M. <kej...@ho...> - 2009-08-01 14:09:33
|
Hey, First, the reason your combobox isn't displaying properly is because of the height of the control. For a combobox, the height also sets the size of the dropdown list, with the textfield part of the combobox getting set to a standard height (about 20 or so pixels). Also note that unless the -nointegraleheight option is given, the height of the dropdown list won't be exactly the amount you specify, as Windows will adjust the height to fit the contents, usually about 20 pixels per item. Depending on the number of items, you may also need to set the -vscroll option to display a vertical scrollbar. As far as I know, you can't specify that a combobox opens its list upwards, Windows takes care of that, and I think would only open it upwards if there was no room beneath the control to display the list. If you want an input box that restricts input, you could try the UpDown control, although this is limited to ranges of numerical data. The UpDown control is used to increment or decrement the value in its 'buddy' control. Here is an example of creating a UpDown control: $win->AddTextfield( -name => "Text", -size => [80,20], -value => 0, ); $win->AddUpDown( -name => "UpDown", ); $win->UpDown->Range(0,20); #sets the range for the UpDown control __END__ The UpDown control automatically selects the previous control in the z-order to be its buddy control, in this case the Textfield. Use the SetBuddy() function to change the buddy control if needed. Check the docs for more info. Hope this has helped, Kevin. > From: ki...@ne... > To: per...@li... > Date: Sat, 1 Aug 2009 21:05:52 +1000 > Subject: [perl-win32-gui-users] Comboboxes > > Hello again, > > I have a combobox sitting at the area at the bottom of the screen (in my > app). I've added 4 items to it, and I can scroll through them fine when > using the keyboard. However, if I use the mouse, the 'dropdown' part is > about 1 pixel high, and I can't see the items. > > Here is my creation code: > > ->AddCombobox(-name=>"test",-pos=>[780,$win->ScaleHeight()-42],-size=>[30,20], > -dropdownlist=>1); > > The $win window is the main window, but it's generally drawn maximised, so > it seems I'll always have this problem. > > First off, is there any way to force the drop down list to open upwards? > (Something tells me I'm hoping for the impossible with that one.) If that > isn't possible, is there any way to have an input box that restricts users > to certain inputs? I was ideally hoping for one of those little things with > the up/down arrows (like with the DateTime GUI object) but nothing I've seen > so far indicates this is possible. > > Can anyone offer some guidance? > > Thank you in advance. > > > ------------------------------------------------------------------------------ > Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day > trial. Simplify your report design, integration and deployment - and focus on > what you do best, core application coding. Discover what's new with > Crystal Reports now. http://p.sf.net/sfu/bobj-july > _______________________________________________ > Perl-Win32-GUI-Users mailing list > Per...@li... > https://lists.sourceforge.net/lists/listinfo/perl-win32-gui-users > http://perl-win32-gui.sourceforge.net/ _________________________________________________________________ Looking for a place to rent, share or buy this winter? Find your next place with Ninemsn property http://a.ninemsn.com.au/b.aspx?URL=http%3A%2F%2Fninemsn%2Edomain%2Ecom%2Eau%2F%3Fs%5Fcid%3DFDMedia%3ANineMSN%5FHotmail%5FTagline&_t=774152450&_r=Domain_tagline&_m=EXT |
From: kinch <ki...@ne...> - 2009-08-01 11:06:16
|
Hello again, I have a combobox sitting at the area at the bottom of the screen (in my app). I've added 4 items to it, and I can scroll through them fine when using the keyboard. However, if I use the mouse, the 'dropdown' part is about 1 pixel high, and I can't see the items. Here is my creation code: ->AddCombobox(-name=>"test",-pos=>[780,$win->ScaleHeight()-42],-size=>[30,20], -dropdownlist=>1); The $win window is the main window, but it's generally drawn maximised, so it seems I'll always have this problem. First off, is there any way to force the drop down list to open upwards? (Something tells me I'm hoping for the impossible with that one.) If that isn't possible, is there any way to have an input box that restricts users to certain inputs? I was ideally hoping for one of those little things with the up/down arrows (like with the DateTime GUI object) but nothing I've seen so far indicates this is possible. Can anyone offer some guidance? Thank you in advance. |
From: Glenn L. <pe...@ne...> - 2009-07-30 09:13:50
|
On approximately 7/30/2009 1:21 AM, came the following characters from the keyboard of Angelos Karageorgiou: > Hello folks, I have this interesting little thing > > I ma using perl 5.10 and par 0.994. My project uses both Win32::GUI and > threads for background operations. The strange thing is that when I > run the executable (Rautor) it appears twice in the task manager list > of processes. > > Is this expected behaviour ? An artifact of PAR: one is the loader, and the other is the real program. |
From: Angelos K. <an...@un...> - 2009-07-30 08:46:14
|
Hello folks, I have this interesting little thing I ma using perl 5.10 and par 0.994. My project uses both Win32::GUI and threads for background operations. The strange thing is that when I run the executable (Rautor) it appears twice in the task manager list of processes. Is this expected behaviour ? Many thanks. |
From: Kevin M. <kej...@ho...> - 2009-07-30 07:47:02
|
Hey, Instead of trying to use symbolic references to the objects, one solution would be to store the objects in an array and simply iterate over the array to access the objects. You could also use a hash if you want to access them by name. I've used this method when using TabStrip controls. Here is an example: #creating objects my @objects; foreach(0..4){ push @objects, $parent->AddDateTime->new(-name => "DateTime$_"); } #accessing objects foreach(0..4){ $objects[$_]->SetDateTime(...); } __END__ Hope this helps. Kevin. > From: ki...@ne... > To: per...@li... > Date: Thu, 30 Jul 2009 13:14:48 +1000 > Subject: [perl-win32-gui-users] blessed object dereferencing unusual behaviour... > > Hi, > > I was having a problem with a DateTime object, and I noticed some behaviour > that differs from other Perl programs, so I thought I'd ask here if this is > a bug, and if there's anyway around it. The unusual behaviour is as > follows: > > DB<52> x $datetime1_tab0 > 0 Win32::GUI::DateTime=HASH(0x7b54a54) > '-accel' => 0 > '-handle' => 1705748 > '-name' => 'DateTime1_tab0' > '-type' => 24 > > This is a typical object created by AddDateTime to a window. > > DB<53> x ${datetime1_tab0} > 0 Win32::GUI::DateTime=HASH(0x7b54a54) > '-accel' => 0 > '-handle' => 1705748 > '-name' => 'DateTime1_tab0' > '-type' => 24 > > Same object, but with a bit of syntax sugar difference. > > DB<54> x ${"datetime1_tab0"} > 0 HASH(0x7b87064) > empty hash > > Huh? It's my understanding (and testing this with a couple of other modules > confirms this) that anything with the braces {} gets "evaluated" and if it > returns a valid result, then everything should be fine. > > The reason I'm trying to do it this way is because I have quite a few of > these objects, and I want to create a simple loop to iterate over them, > setting each one to the right time according to my script, but if I can't > substitute "1/2/3" as needed in the variable name, then I'm stuck. > > I've also tried: > > DB<59> $temp = "datetime1_tab0" > > > DB<60> x ${$temp} > 0 HASH(0x7b87064) > empty hash > > DB<61> x $$temp > 0 HASH(0x7b87064) > empty hash > > As you can see, no such luck. I'm completely stumped. Does anyone have any > tips or advice on how to proceed ? > > Thank you. > > > ------------------------------------------------------------------------------ > Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day > trial. Simplify your report design, integration and deployment - and focus on > what you do best, core application coding. Discover what's new with > Crystal Reports now. http://p.sf.net/sfu/bobj-july > _______________________________________________ > Perl-Win32-GUI-Users mailing list > Per...@li... > https://lists.sourceforge.net/lists/listinfo/perl-win32-gui-users > http://perl-win32-gui.sourceforge.net/ _________________________________________________________________ Use Windows Live Messenger from your Hotmail inbox Web IM has arrived! http://windowslive.ninemsn.com.au/article.aspx?id=823454 |
From: kinch <ki...@ne...> - 2009-07-30 03:15:12
|
Hi, I was having a problem with a DateTime object, and I noticed some behaviour that differs from other Perl programs, so I thought I'd ask here if this is a bug, and if there's anyway around it. The unusual behaviour is as follows: DB<52> x $datetime1_tab0 0 Win32::GUI::DateTime=HASH(0x7b54a54) '-accel' => 0 '-handle' => 1705748 '-name' => 'DateTime1_tab0' '-type' => 24 This is a typical object created by AddDateTime to a window. DB<53> x ${datetime1_tab0} 0 Win32::GUI::DateTime=HASH(0x7b54a54) '-accel' => 0 '-handle' => 1705748 '-name' => 'DateTime1_tab0' '-type' => 24 Same object, but with a bit of syntax sugar difference. DB<54> x ${"datetime1_tab0"} 0 HASH(0x7b87064) empty hash Huh? It's my understanding (and testing this with a couple of other modules confirms this) that anything with the braces {} gets "evaluated" and if it returns a valid result, then everything should be fine. The reason I'm trying to do it this way is because I have quite a few of these objects, and I want to create a simple loop to iterate over them, setting each one to the right time according to my script, but if I can't substitute "1/2/3" as needed in the variable name, then I'm stuck. I've also tried: DB<59> $temp = "datetime1_tab0" DB<60> x ${$temp} 0 HASH(0x7b87064) empty hash DB<61> x $$temp 0 HASH(0x7b87064) empty hash As you can see, no such luck. I'm completely stumped. Does anyone have any tips or advice on how to proceed ? Thank you. |
From: Robert M. <rob...@us...> - 2009-07-19 02:29:43
|
I just pushed Win32::GUI::SplashScreen V0.04 to CPAN. V0.03 was shipped with debugging turned on. I also found a report of a bug with obtaining the bitmap from an executable packed with PAR (pp - a ....) - this is now fixed. Regards, Rob. 2009/7/17 Robert May <rob...@us...>: > Hi again, > > While I am in a releasing mood, there's a new version of > Win32::GUI::SplashScreen on CPAN. > > The only change is to fix up the build process a litte. No new functionality. > > It will be at http://search.cpan.org/~robertmay/Win32-GUI-SplashScreen-0.03/ > once search.cpan.org catches up. > > Regards, > Rob. > |
From: Kevin M. <kej...@ho...> - 2009-07-18 12:24:15
|
Hey everyone, Here is an alternative method for extracting a structure out of a wParam or lParam parameter. I pieced this together from various posts on the mailing list. This method is message specific and requires knowledge of the size and members of the specific structure. This example uses the WM_HELP message, which is sent when a user click the '?' button in the top-right corner: $win->Hook(WM_HELP, sub { my ($this, $wParam, $lParam, $type, $msgcode) = @_; return unless $type == 0; return unless $msgcode == WM_HELP; my %helpinfo; #Here's how to get a stucture when only given a memory address: # 1. Pack the $lParam arg into a Long using pack "L" This turns the number into a usable memory address # 2. Unpack the result into a string using the size of the structure in bytes using unpack "P28" # 3. Unpack the result using the typedef for the structure and the appropriate pack formats @helpinfo{qw(cbSize iContextType iCtrlId hItemHandle dwContextId X Y)} = unpack("IiiLLll", unpack("P28", pack("L", $lParam))); #The internal Win32::GUI::GetWindowObject can get a window object from its handle my $control = Win32::GUI::GetWindowObject($helpinfo{hItemHandle}); #process message... return 1; }); Remember, that if the structure contains any structures as parameters, they have to unpacked as well. For example, the X and Y above is part of a POINT structure. Refer to the Windows SDK documentation for information about the various messages and structures. Hope this helps. Kevin. Date: Sat, 18 Jul 2009 01:17:40 +0000 From: le...@we... To: per...@li... Subject: Re: [perl-win32-gui-users] Interpreting an lParam pointer perl-win32-gui-users list, I wrote: > But how do I find and read the [COPYDATASTRUCT] structure pointed > to by the integer $lParam ? Well, I figured it out. Here's a sub, not completely general, but handles the case of a scalar message string. Thanks for your indulgence. (Maybe this will be useful for someone else searching the list archive.) Cheers, -Len use Tie::Array::Pointer ; sub read_COPYDATASTRUCT { ## input: $CopyData_p (eg from an lParam) ## output (scalar): $Msg (list): ($Msg, dwData_p) my $CopyData_p = shift ; my @CopyData_a ; tie @CopyData_a, 'Tie::Array::Pointer', {length => 3, type => 'L', address => $CopyData_p } ; my ($dwData_p, $cbData_len, $lpData_p) = @CopyData_a ; my @Msg_a ; tie @Msg_a, 'Tie::Array::Pointer', {length => $cbData_len, type => 'C', address => $lpData_p } ; pop @Msg_a if @Msg_a[-1] eq "\0" ; ## pop off trailing null (more??) my $Msg = pack "C$#Msg_a", @Msg_a ; wantarray ? ($Msg, $dwData_p) : $Msg ; } On Jul 17, 2009, le...@we... wrote: I am trying to use Win32::GUI from a Perl/Tk program to receive and interpret a message sent from another window. I have successfully set up a window to receive and a hook to handle the message. Using the example in Win32::GUI::Reference/Methods.pod, I have sub msg_handler { ($object, $wParam, $lParam, $type, $msgcode) = @_; print "Click handler called!\n"; } The result looks reasonable in the debugger, and $lParam is supposed to be a pointer to a WM_COPYDATA structure. But how do I find and read the structure pointed to by the integer $lParam ? I have a hunch that Win32::API::Struct could help, but I don't quite see how. Thanks, -Len _________________________________________________________________ What goes online, stays online Check the daily blob for the latest on what's happening around the web http://windowslive.ninemsn.com.au/blog.aspx |
From: Len W. <le...@we...> - 2009-07-18 01:17:53
|
perl-win32-gui-users list,<br /><br />I wrote:<br />> But how do I find and read the [COPYDATASTRUCT] structure pointed <br />> to by the integer $lParam ?<br /><br />Well, I figured it out.<br />Here's a sub, not completely general, but handles the case<br />of a scalar message string.<br /><br />Thanks for your indulgence.<br />(Maybe this will be useful for someone else searching the list archive.)<br /><br />Cheers,<br />-Len<br /><br />use Tie::Array::Pointer ;<br /><br />sub read_COPYDATASTRUCT {<br /> ## input: $CopyData_p (eg from an lParam)<br /> ## output (scalar): $Msg (list): ($Msg, dwData_p)<br /> my $CopyData_p = shift ;<br /><br /> my @CopyData_a ;<br /> tie @CopyData_a, 'Tie::Array::Pointer',<br /> {length => 3, type => 'L', address => $CopyData_p } ;<br /> my ($dwData_p, $cbData_len, $lpData_p) = @CopyData_a ;<br /><br /> my @Msg_a ;<br /> tie @Msg_a, 'Tie::Array::Pointer',<br /> {length => $cbData_len, type => 'C', address => $lpData_p } ;<br /><br /> pop @Msg_a if @Msg_a[-1] eq "\0" ; ## pop off trailing null (more??)<br /> my $Msg = pack "C$#Msg_a", @Msg_a ;<br /> wantarray ? ($Msg, $dwData_p) : $Msg ;<br />}<br /><br /><br /><br /> <p>On Jul 17, 2009, <strong>le...@we...</strong> wrote:</p> <div class="replyBody"> <blockquote class="email_quote" style="border-left: 2px solid #267fdb; margin: 0pt 0pt 0pt 1.8ex; padding-left: 1ex;">I am trying to use Win32::GUI from a Perl/Tk program<br />to receive and interpret a message sent from another window.<br /><br />I have successfully set up a window to receive and a hook to<br /> handle the message.<br /> Using the example in Win32::GUI::Reference/Methods.pod, I have<br /><br /> sub msg_handler {<br /> ($object, $wParam, $lParam, $type, $msgcode) = @_;<br /> print "Click handler called!\n";<br /> }<br /><br />The result looks reasonable in the debugger, <br />and $lParam is supposed to be a pointer to a WM_COPYDATA structure.<br /><br />But how do I find and read the structure pointed to by the integer $lParam ?<br />I have a hunch that Win32::API::Struct could help, but I don't quite see how.<br /><br />Thanks,<br />-Len<br /></blockquote> </div> |
From: Len W. <le...@we...> - 2009-07-17 22:03:01
|
I am trying to use Win32::GUI from a Perl/Tk program<br />to receive and interpret a message sent from another window.<br /><br />I have successfully set up a window to receive and a hook to<br /> handle the message.<br /> Using the example in Win32::GUI::Reference/Methods.pod, I have<br /><br /> sub msg_handler {<br /> ($object, $wParam, $lParam, $type, $msgcode) = @_;<br /> print "Click handler called!\n";<br /> }<br /><br />The result looks reasonable in the debugger, <br />and $lParam is supposed to be a pointer to a WM_COPYDATA structure.<br /><br />But how do I find and read the structure pointed to by the integer $lParam ?<br />I have a hunch that Win32::API::Struct could help, but I don't quite see how.<br /><br />Thanks,<br />-Len<br /> |
From: Robert M. <rob...@us...> - 2009-07-17 17:58:18
|
Hi again, While I am in a releasing mood, there's a new version of Win32::GUI::SplashScreen on CPAN. The only change is to fix up the build process a litte. No new functionality. It will be at http://search.cpan.org/~robertmay/Win32-GUI-SplashScreen-0.03/ once search.cpan.org catches up. Regards, Rob. |
From: Robert M. <rob...@us...> - 2009-07-17 16:21:07
|
Hi all, While I am in a releasing mood, there's a new version of Win32::GUI::HyperLink on CPAN. The only significant changes are: - now depends on Win32::GUI 1.02, enabling removal of dependencies on Win32::API, and simplifying the code a bit - minor build fixes. It will be at http://search.cpan.org/~robertmay/Win32-GUI-HyperLink-0.14/ once search.cpan.org catches up. Regards, Rob. |
From: peter <my....@gm...> - 2009-07-16 13:42:08
|
Hi here is an example using the new Win32-GUI-OpenGLFrame , it is displaying either a rotating triangle or a rotating cube when you click an appropriate button. yes thanks , i am sure this addition will be used heavily when the people know about it. here is the downloadable example: http://rapidshare.com/files/256462790/cube_Triangle.pl #!perl -w use strict; use warnings; use Win32::GUI qw(WS_CLIPCHILDREN); use Win32::GUI::OpenGLFrame qw(w32gSwapBuffers); use OpenGL qw(:all); my $spin = 0.0; my $toggle = 0; my $xrot = 0; my $yrot = 0; my $rtri = 0.0; my $rtcube = 0.0; my $objectXRot = 0.0; my $objectYRot = 0.0; my $objectZRot = 0.0; my $flag = 1; my $mw = Win32::GUI::Window->new( -title => "OpenGL Demonstration", -pos => [0,0], -size => [640,480], -pushstyle => WS_CLIPCHILDREN, # stop flickering on resize -onResize => \&mainWinResize, ); my $glw = $mw->AddOpenGLFrame( -name => 'oglwin', -width => $mw->ScaleWidth(), -height => $mw->ScaleHeight() - 50, -display => \&display, -init => \&Init, -reshape => \&reshape, -doubleBuffer => 1, ); $mw->AddButton( -name => 'button1', -text => 'Triangle', -left => $mw->ScaleWidth()-100, -top => $mw->ScaleHeight()-30, #-onClick => sub{-1}, ); $mw->AddButton( -name => 'button2', -text => 'Cube', -left => $mw->ScaleWidth()-140, -top => $mw->ScaleHeight()-30, #-onClick => sub{-1}, ); $mw->Show(); while(Win32::GUI::DoEvents() != -1) { $mw->oglwin->InvalidateRect(0); } #Win32::GUI::Dialog(); $mw->Hide(); exit(0); sub mainWinResize { my $win = shift; $win->oglwin->Resize($win->ScaleWidth(), $win->ScaleHeight()-50); $win->button1->Move($win->ScaleWidth()-100, $win->ScaleHeight()-30); $win->button2->Move($win->ScaleWidth()-160, $win->ScaleHeight()-30); return 0; } sub reshape { my ($w, $h) = @_; glViewport(0, 0, $w, $h); glMatrixMode (GL_PROJECTION); glLoadIdentity (); # define the projection gluPerspective(45.0, $h ? $w/$h : 0, 1.0, 20.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); return 0; } sub Init { glShadeModel(GL_SMOOTH); glClearColor(0, 0, 0, 0); glClearDepth(1); glEnable(GL_DEPTH_TEST); glDepthFunc(GL_LEQUAL); glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); return 1; } sub display { glPushMatrix(); #save current matrix if ($flag == 1){DrawTriangle();} #draw triangle elsif ($flag == 2){DrawCube();}; #draw cube glPopMatrix(); #restore matrix glFlush(); w32gSwapBuffers(); return 1; } sub DrawTriangle { glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); glLoadIdentity(); glTranslatef(0.0, 0.0, -6.0); glRotatef($rtri, 0, 1, 0); my $size = 1; glScalef($size,$size,$size); glBegin(GL_TRIANGLES); glColor3f(1.0, 0.0, 0.0); glVertex3f(0.0, 1.0, 0.0); glColor3f(0.0, 1.0, 0.0); glVertex3f(-1.0, -1.0, 0.0); glColor3f(0.0, 0.0, 1.0); glVertex3f(1.0, -1.0, 0.0); glEnd(); $rtri += 2; } sub DrawCube { glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); glLoadIdentity(); my $size = 1; glTranslatef(0.0, 0.0, -6.0); glRotatef($objectXRot, 1.0, 0.0, 0.0); glRotatef($objectYRot, 0.0, 1.0, 0.0); glRotatef($objectZRot, 0.0, 0.0, 1.0); glScalef($size,$size,$size); glBegin(GL_QUADS); # bottom face glColor3f(0.0,0.0,0.0); #black glVertex3f(-1.0,-1.0,-1.0); glColor3f(1.0,0.0,0.0); #red glVertex3f(1.0,-1.0,-1.0); glColor3f(1.0,0.0,1.0); #magenta glVertex3f(1.0,-1.0,1.0); glColor3f(0.0,0.0,1.0); #blue glVertex3f(-1.0,-1.0,1.0); # front face glColor3f(0.0,0.0,0.0); #black glVertex3f(-1.0,-1.0,-1.0); glColor3f(0.0,1.0,0.0); #green glVertex3f(-1.0,1.0,-1.0); glColor3f(1.0,1.0,0.0); #yellow glVertex3f(1.0,1.0,-1.0); glColor3f(1.0,0.0,0.0); #red glVertex3f(1.0,-1.0,-1.0); # right face glColor3f(0.0,0.0,0.0); #black glVertex3f(-1.0, -1.0, -1.0); glColor3f(0.0,0.0,1.0); #blue glVertex3f(-1.0,-1.0,1.0); glColor3f(0.0,1.0,1.0); #cyan glVertex3f(-1.0,1.0,1.0); glColor3f(0.0,1.0,0.0); #green glVertex3f(-1.0,1.0,-1.0); # left face glColor3f(1.0,1.0,1.0); #white glVertex3f(1.0,1.0,1.0); glColor3f(1.0,0.0,1.0); #magenta glVertex3f(1.0,-1.0,1.0); glColor3f(1.0,0.0,0.0); #red glVertex3f(1.0,-1.0,-1.0); glColor3f(1.0,1.0,0.0); #yellow glVertex3f(1.0,1.0,-1.0); # top face glColor3f(1.0,1.0,1.0); #white glVertex3f(1.0,1.0,1.0); glColor3f(1.0,1.0,0.0); #yelllow glVertex3f(1.0,1.0,-1.0); glColor3f(0.0,1.0,0.0); #green glVertex3f(-1.0,1.0,-1.0); glColor3f(0.0,1.0,1.0); #cyan glVertex3f(-1.0,1.0,1.0); # back face glColor3f(1.0,1.0,1.0); #white glVertex3f(1.0,1.0,1.0); glColor3f(0.0,1.0,1.0); #cyan glVertex3f(-1.0,1.0,1.0); glColor3f(0.0,0.0,1.0); #blue glVertex3f(-1.0,-1.0,1.0); glColor3f(1.0,0.0,1.0); #magenta glVertex3f(1.0,-1.0,1.0); glEnd(); $objectXRot += 0.5; $objectYRot += 0.5; $objectZRot += 0.5; } sub button1_Click { $flag = 1; } sub button2_Click { $flag = 2; } |
From: peter <my....@gm...> - 2009-07-15 20:03:53
|
Hi Win32-GUI-OpenGLFrame is an important adition to the win32::GUI, which will be recognized over the years. i have installed it using vc6++ without problems on win32gui v1.06 - activeperl 510 - winxp i will try it and post my findings. peter |
From: Robert M. <rob...@us...> - 2009-07-15 08:13:08
|
2009/7/15 eros-9 <ero...@ho...>: > when i close any of the examples in the demos, i get a message: > (in cleanup) Can't call method "FETCH" on an undefined value at > c:/perl/site/lib/Win32/GUI/OpenGLFrame.pm line 108 during global > destruction. What version of Win32::GUI? When this error occurs it's down to destruction happening in an unexpected order during perl's global cleanup at program exit. It can nearly always be mitigated by undef'ing the variable holding the main window object before program exit. It's a Win32::GUI problem, not a Win32::GUI::OpenGLFrame problem. I've looked into it pretty closely in the past, and it's pretty difficult to fix with the current code-base. Glad you like it. Rob. |
From: eros-9 <ero...@ho...> - 2009-07-15 07:55:17
|
this is like the sweets over the cake, thank you. a small note: when i close any of the examples in the demos, i get a message: (in cleanup) Can't call method "FETCH" on an undefined value at c:/perl/site/lib/Win32/GUI/OpenGLFrame.pm line 108 during global destruction. regards eros olmi Robert May-6 wrote: > > All, > > Following the discussions on the list recently about Win32::GUI and > OpenGL I just tidied up and released some code that I wrote a number > of years ago. I'm certainly not an OpenGL expert, so would appreciate > anyone having look at the source and commenting. > > I think this is fairly powerful, and whilst the documentation is > probably technically complete, I'm not sure it tell the whole story - > the demos that I've ported to Win32::GUI and included in the > distribution are probably important reading. > > Comments welcome, as always - and if anyone with a bigger OpenGL itch > than I have wants to take this over, I'm more than happy to give > anyone else co-ownership on CPAN - I doubt that I'll revisit this > unless there's a big demand. > > You'll need a C compiler to build it - or if you wait a few days it > should mke it into ActiveState's PPM repository. > > My apologies to those who have posted code to the list recently that I > haven't reviewed - if your code is significantly different fro what > I've done, then some benchmarking (or otherwise) may be in order to > determine the best way to proceed. > > Cheers, > Rob. > > CPAN: http://search.cpan.org/~robertmay/Win32-GUI-OpenGLFrame-0.01/ > GitHUb: http://github.com/remay/perl-win32-gui-openglframe > > ------------------------------------------------------------------------------ > Enter the BlackBerry Developer Challenge > This is your chance to win up to $100,000 in prizes! For a limited time, > vendors submitting new applications to BlackBerry App World(TM) will have > the opportunity to enter the BlackBerry Developer Challenge. See full > prize > details at: http://p.sf.net/sfu/Challenge > _______________________________________________ > Perl-Win32-GUI-Users mailing list > Per...@li... > https://lists.sourceforge.net/lists/listinfo/perl-win32-gui-users > http://perl-win32-gui.sourceforge.net/ > > -- View this message in context: http://www.nabble.com/ANNOUNCE%3A-Win32%3A%3AGUI%3A%3AOpenGLFrame-V0.01-tp24484181p24493354.html Sent from the perl-win32-gui-users mailing list archive at Nabble.com. |
From: Robert M. <rob...@us...> - 2009-07-15 07:13:11
|
[For some reason this appears not to have reached the list - retrying.] All, Back in May there was a discussion on this list about Visual Styles (aka XP Styles). Up to now we have been coping with applying style by copying a manifest file into the perl bin directory. This is unsatisfactory for a number of reasons. (1) It is difficult to make this work when packing executables (usinfg PAR for example) (2) It is difficult to test both with and without visual styles - especially now that Vista may cache the manifest (3) It is a continual problem with keeping newcomers informed with how to do this. I have created a module, Win32::VisualStyles, that allows you do apply a "V6 Common Control Activation Context" (to use some of the buzz words) at run-time. In particular this means that it is easy to pack an executable - it's just another dependency - and it's easy to test with and without visual styles simply by adding "-MWin32::VisualStyles" to the commandline. V0.02 is currently propagating to CPAN. The only differences from V0.01 are to cope better with the build process - there is no internal difference to the code that runs. You can download the source from CPAN and build it: http://search.cpan.org/~robertmay/Win32-VisualStyles-0.01/ or it should be available for 5.8 and 5.10 from ActiveState's new PPM repository. Full documentation included with the module, but let me know if you need any further help. Regards, Rob. |
From: Reini U. <ru...@x-...> - 2009-07-14 21:48:46
|
2009/7/14 Glenn Linderman <pe...@ne...>: >> I maintain phpwiki on sf.net and it gets worse and worse. > > Could you elaborate? I'm not sure what this is. For years we could host phpwiki on the sf.net webservers but then they removed the cronjobs, then the shared NFS disc, then the shell, then persistent mysql was broken, then their webserver proxy could not deal anymore with our app leading to cpu-eating cycles in various subrequest scenarios, and now the layout change. -- Reini Urban http://phpwiki.org/ http://murbreak.at/ |
From: Rob M. <ro...@th...> - 2009-07-14 17:26:26
|
Kevin et al., Many thanks for taking a look at this, it is certainly true that the documentation is lacking in many areas. I haven't been able to look at the work you've done, as none of the mail I have seen have any attachments (it's possible that the SourceForge mail ing list strip zip files?) Whilst I am not going to try to stop any activity in this area, I have some observations that you may choose to guide your activities: (1) My supply of tuits is very small, so I doubt that I will contribute much. (2) I am happy to give a commit bit to anyone who wants to commit changes to the core source code. (3) For the core documentation (i.e. functional documentation of the classes/methods within the Win32::GUI distribution) I'd like to see the docs reside within the source repository and be distributed with Win32::GUI. Fundamentally this means writing POD (which gets converted to HTML during the build process) or embedded docs as we currently have, with a suitable toolset for pulling the embedded docs into pod during the build[1]. An investigation into what other larger projects do might be worthwhile. (4) For other documentation (Tutorials etc) I am less concerned that they are kept in the core source, but would propose that they be hosted somewhere related to the project - as a first suggestion I'd be happy to give someone enough permissions to have a play with the hosted apps that SourceForge now offer (which weren't available last time I looked). There's certainly wiki and other documentation tools available there. Of course, it may be that none of the offered solutions suit us. (5) For experience, if we don't find a way to merge your changes in to the core documentation, or host them somewhere where someone else can take over maintenance, then they will drop into disuse over time. It is my experience that the closer you can put the documentation to the code it is documenting, the more likely that it will be kept up to date. Finally, I am also seeking someone who would be happy to take over the maintenance of the Win32::GUI website - it could do with a re-vamp and some TLC. Any takers? This work might tie in nicely with moving us over to a new Wiki (or similar). Thanks for all the interest. Rob. [1] It would actually be better to have the embedded docs pulled into POD before the build, so that source distributions to CPAN get their POD displayed properly. 2009/7/14 Glenn Linderman <pe...@ne...>: > On approximately 7/13/2009 12:51 AM, came the following characters from > the keyboard of Reini Urban: >> 2009/7/13 Glenn Linderman <pe...@ne...>: >> >>> So at the present time, I'm not sure >>> 1) if there are any active developers >>> 2) if there are any that would agree that moving the documentation to >>> separate files would be a good thing >>> 3) who would apply your documentation patches to the repository, even if >>> you submitted them that way, rather than creating your own web site >>> >>> I don't remember if Reini has a commit bit or not, >>> >> >> No, I don't think I have a commit bit. >> >> >>> but I don't think he's ever built a release. >>> >> >> No, I'm doing all the cygwin releases since years. >> > > That's right! I knew you were involved somehow, but couldn't remember > how. Of course building the cygwin package, is taking a release, and > building and packaging it. Really, building a release is likely simple, > although likely changed since I last did it, in the sense of the file > manipulations required, but the hard part comes in doing sufficient > testing to be convinced that it is a good release. And there are more > parts now than last I did it. I worked only on very focused bug fixes, > even then. > >>> There have been significant changes to >>> sourceforge in the intervening period, as well, so it would take some >>> learning curve for me (and probably for Reini, although maybe he's up on >>> the sourceforge changes from other projects) to attempt to build a >>> release, methinks. Or maybe Rob will poke his head in here, and say >>> that he could find some time to commit some doc changes and build a new >>> release... >>> >> >> I maintain phpwiki on sf.net and it gets worse and worse. >> > > Could you elaborate? I'm not sure what this is. > >> But posting releases is still simple. >> > > That sounds good. > > ------------------------------------------------------------------------------ > Enter the BlackBerry Developer Challenge > This is your chance to win up to $100,000 in prizes! For a limited time, > vendors submitting new applications to BlackBerry App World(TM) will have > the opportunity to enter the BlackBerry Developer Challenge. See full prize > details at: http://p.sf.net/sfu/Challenge > _______________________________________________ > 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: Rob M. <ro...@th...> - 2009-07-14 17:18:29
|
All, Following the discussions on the list recently about Win32::GUI and OpenGL I just tidied up and released some code that I wrote a number of years ago. I'm certainly not an OpenGL expert, so would appreciate anyone having look at the source and commenting. I think this is fairly powerful, and whilst the documentation is probably technically complete, I'm not sure it tell the whole story - the demos that I've ported to Win32::GUI and included in the distribution are probably important reading. Comments welcome, as always - and if anyone with a bigger OpenGL itch than I have wants to take this over, I'm more than happy to give anyone else co-ownership on CPAN - I doubt that I'll revisit this unless there's a big demand. You'll need a C compiler to build it - or if you wait a few days it should mke it into ActiveState's PPM repository. My apologies to those who have posted code to the list recently that I haven't reviewed - if your code is significantly different fro what I've done, then some benchmarking (or otherwise) may be in order to determine the best way to proceed. Cheers, Rob. CPAN: http://search.cpan.org/~robertmay/Win32-GUI-OpenGLFrame-0.01/ GitHUb: http://github.com/remay/perl-win32-gui-openglframe |