Update of /cvsroot/perl-win32-gui/Win32-GUI In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8883
Modified Files: CHANGELOG GUI.xs Listbox.xs Log Message: bug fix and addition of GetKeyState Index: GUI.xs =================================================================== RCS file: /cvsroot/perl-win32-gui/Win32-GUI/GUI.xs,v retrieving revision 1.50 retrieving revision 1.51 diff -C2 -d -r1.50 -r1.51 *** GUI.xs 16 Mar 2006 21:11:11 -0000 1.50 --- GUI.xs 16 Mar 2006 21:31:42 -0000 1.51 *************** *** 42,46 **** ########################################################################## ! # (@)METHOD:GetAsyncKeyState(key) # Retrieve the status of the specified virtual key at the time the function # is called. The status specifies whether the key is up or down. --- 42,46 ---- ########################################################################## ! # (@)METHOD:GetAsyncKeyState(keyCode) # Retrieve the status of the specified virtual key at the time the function # is called. The status specifies whether the key is up or down. *************** *** 54,62 **** int key CODE: ! RETVAL = (GetAsyncKeyState(key) & 0x8000) >>16; OUTPUT: RETVAL ########################################################################## # (@)METHOD:GetKeyboardState() # Return array ref with the status of the 256 virtual keys. --- 54,94 ---- int key CODE: ! RETVAL = (GetAsyncKeyState(key) & 0x8000) >>15; OUTPUT: RETVAL ########################################################################## + # (@)METHOD:GetKeyState(keyCode) + # Retrieve the status of the specified virtual key at the time the last + # keyboard message was retrieved from the message queue. + # + # In scalar context returns a value specifying whether the key is up(0) + # or down(1). In list context, returns a 2 element list with the first + # element as in scalar context and the second member specifying whether + # the key is toggled(1) or not(0) - this is only meaningful for keys that + # have a toggled state: Caps Lock, Num Lock etc. + # + # keyCode -- If A..Z0..9, use the ASCII code. Otherwise, use + # a virtual key code. Example: VK_SHIFT + void + GetKeyState(key) + int key + PREINIT: + USHORT result; + PPCODE: + result = (USHORT)GetKeyState(key); + if(GIMME_V == G_ARRAY) { + /* list context */ + mXPUSHu((result & 0x8000) >> 15); + mXPUSHu(result & 0x0001); + XSRETURN(2); + } + else { + /* scalar(and void) context */ + mXPUSHu((result & 0x8000) >> 15); + XSRETURN(1); + } + + ########################################################################## # (@)METHOD:GetKeyboardState() # Return array ref with the status of the 256 virtual keys. Index: Listbox.xs =================================================================== RCS file: /cvsroot/perl-win32-gui/Win32-GUI/Listbox.xs,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Listbox.xs 3 Dec 2005 01:56:31 -0000 1.5 --- Listbox.xs 16 Mar 2006 21:31:42 -0000 1.6 *************** *** 663,669 **** UINT tab CODE: ! DWORD * pBuf = (DWORD *) safemalloc(items * sizeof(DWORD)); for (int i = 1; i < items; i++) ! pBuf[i] = SvIV(ST(i)); RETVAL = SendMessage(handle, LB_SETTABSTOPS, items-1, (LPARAM) pBuf); safefree(pBuf); --- 663,669 ---- UINT tab CODE: ! DWORD * pBuf = (DWORD *) safemalloc((items-1) * sizeof(DWORD)); for (int i = 1; i < items; i++) ! pBuf[i-1] = SvIV(ST(i)); RETVAL = SendMessage(handle, LB_SETTABSTOPS, items-1, (LPARAM) pBuf); safefree(pBuf); Index: CHANGELOG =================================================================== RCS file: /cvsroot/perl-win32-gui/Win32-GUI/CHANGELOG,v retrieving revision 1.72 retrieving revision 1.73 diff -C2 -d -r1.72 -r1.73 *** CHANGELOG 16 Mar 2006 21:11:11 -0000 1.72 --- CHANGELOG 16 Mar 2006 21:31:42 -0000 1.73 *************** *** 6,9 **** --- 6,13 ---- Win32-GUI ChangeLog =================== + + [Robert May] : 16 Mar 2006 - bug fix and addition of GetKeyState + - Added Win32::GUI::GetKeyState + - Listbox.xs fix to indexing error in SetTabStops(). + + [Robert May] : 11 Jan 2006 - bug fixes and add balloon tips for Notify Icon - Label.xs correct -truncate option processing, as SS_.*ELLIPSIS.*