From: <mie...@us...> - 2013-02-09 23:12:59
|
Revision: 8960 http://sourceforge.net/p/oorexx/code-0/8960 Author: miesfeld Date: 2013-02-09 23:12:56 +0000 (Sat, 09 Feb 2013) Log Message: ----------- Feature Requests: #534 Key status See ticket [Feature-requests:#534] Modified Paths: -------------- ooDialog/trunk/ooDialog/UtilityClasses.cls ooDialog/trunk/ooDialog/ooDialog.hpp ooDialog/trunk/ooDialog/oodMouse.cpp ooDialog/trunk/ooDialog/oodMouse.hpp ooDialog/trunk/ooDialog/oodPackageEntry.cpp ooDialog/trunk/ooDialog/oodialog.mak Added Paths: ----------- ooDialog/trunk/ooDialog/oodKeyboard.cpp Modified: ooDialog/trunk/ooDialog/UtilityClasses.cls =================================================================== --- ooDialog/trunk/ooDialog/UtilityClasses.cls 2013-02-09 02:05:46 UTC (rev 8959) +++ ooDialog/trunk/ooDialog/UtilityClasses.cls 2013-02-09 23:12:56 UTC (rev 8960) @@ -426,6 +426,8 @@ ::method test external "LIBRARY oodialog mouse_test" +::class 'Keyboard' public +::method getAsyncKeyState class external "LIBRARY oodialog kb_getAsyncKeyState_cls" ::class 'DayState' public ::method init external "LIBRARY oodialog ds_init" Modified: ooDialog/trunk/ooDialog/ooDialog.hpp =================================================================== --- ooDialog/trunk/ooDialog/ooDialog.hpp 2013-02-09 02:05:46 UTC (rev 8959) +++ ooDialog/trunk/ooDialog/ooDialog.hpp 2013-02-09 23:12:56 UTC (rev 8960) @@ -445,6 +445,7 @@ // Masks for GetAsyncKeyState() and GetKeyState() returns. #define TOGGLED 0x00000001 // GetKeyState() #define ISDOWN 0x8000 // GetAsyncKeyState() +#define WASPRESSED 0x0001 // GetAsyncKeyState() /* Microsoft does not define these, just has this note: * Added: ooDialog/trunk/ooDialog/oodKeyboard.cpp =================================================================== --- ooDialog/trunk/ooDialog/oodKeyboard.cpp (rev 0) +++ ooDialog/trunk/ooDialog/oodKeyboard.cpp 2013-02-09 23:12:56 UTC (rev 8960) @@ -0,0 +1,82 @@ +/*----------------------------------------------------------------------------*/ +/* */ +/* Copyright (c) 2013-2013 Rexx Language Association. All rights reserved. */ +/* */ +/* This program and the accompanying materials are made available under */ +/* the terms of the Common Public License v1.0 which accompanies this */ +/* distribution. A copy is also available at the following address: */ +/* http://www.oorexx.org/license.html */ +/* */ +/* Redistribution and use in source and binary forms, with or */ +/* without modification, are permitted provided that the following */ +/* conditions are met: */ +/* */ +/* Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in */ +/* the documentation and/or other materials provided with the distribution. */ +/* */ +/* Neither the name of Rexx Language Association nor the names */ +/* of its contributors may be used to endorse or promote products */ +/* derived from this software without specific prior written permission. */ +/* */ +/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */ +/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */ +/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */ +/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */ +/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ +/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */ +/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */ +/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */ +/* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */ +/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */ +/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* */ +/*----------------------------------------------------------------------------*/ + +/** + * oodKeyboard.cpp + * + * This module contains functions and methods for classes related to the + * keyboard. + * + */ +#include "ooDialog.hpp" // Must be first, includes windows.h, commctrl.h, and oorexxapi.h +#include "APICommon.hpp" + + +/** + * Methods for the .Keyboard class. + */ +#define KEYBOARD_CLASS "Keyboard" + + +/** Keyboard::getAysncKeyState() [class] + * + * + * @param _info + */ +RexxMethod2(RexxObjectPtr, kb_getAsyncKeyState_cls, uint8_t, vKey, OPTIONAL_RexxObjectPtr, _info) +{ + int16_t ret = GetAsyncKeyState(vKey); + RexxObjectPtr result = (ret & ISDOWN) ? TheTrueObj : TheFalseObj; + + if ( argumentExists(2) ) + { + if ( ! requiredClass(context->threadContext, _info, "Directory", 2) ) + { + goto done_out; + } + RexxDirectoryObject info = (RexxDirectoryObject)_info; + + RexxMethodContext *c = context; + c->DirectoryPut(info, result, "ISDOWN"); + c->DirectoryPut(info, (ret & WASPRESSED) ? TheTrueObj : TheFalseObj, "WASPRESSED"); + } + +done_out: + return result; +} + + Property changes on: ooDialog/trunk/ooDialog/oodKeyboard.cpp ___________________________________________________________________ Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Modified: ooDialog/trunk/ooDialog/oodMouse.cpp =================================================================== --- ooDialog/trunk/ooDialog/oodMouse.cpp 2013-02-09 02:05:46 UTC (rev 8959) +++ ooDialog/trunk/ooDialog/oodMouse.cpp 2013-02-09 23:12:56 UTC (rev 8960) @@ -43,10 +43,7 @@ * */ #include "ooDialog.hpp" // Must be first, includes windows.h, commctrl.h, and oorexxapi.h -//#include "oodControl.hpp" -//#include <stdio.h> -//#include <dlgs.h> #include <shlwapi.h> #include <WindowsX.h> @@ -63,14 +60,6 @@ */ #define MOUSE_CLASS "Mouse" -#define TRACK_MOUSE_KEYWORDS "CANCEL, HOVER, LEAVE, NONCLIENT, or QUERY" -#define WM_MOUSE_KEYWORDS "MouseMove, MouseWheel, MouseLeave, MouseHover, NcMouseLeave, NcMouseHover, lButtonUp, lButtonDown, or CaptureChanged" -#define MOUSE_BUTTON_KEYWORDS "LEFT, RIGHT, MIDDLE, XBUTTON1, or XBUTTON2" -#define SYSTEM_CURSOR_KEYWORDS "APPSTARTING, ARROW, CROSS, HAND, HELP, IBEAM, NO, SIZEALL, SIZENESW, SIZENS, " \ - "SIZENWSE, SIZEWE, UPARROW, or WAIT" - -#define DLG_HAS_ENDED_MSG "windows dialog has executed and been closed" - /** * Returns the mouse CSelf, raising an exception if it is null. * Modified: ooDialog/trunk/ooDialog/oodMouse.hpp =================================================================== --- ooDialog/trunk/ooDialog/oodMouse.hpp 2013-02-09 02:05:46 UTC (rev 8959) +++ ooDialog/trunk/ooDialog/oodMouse.hpp 2013-02-09 23:12:56 UTC (rev 8960) @@ -38,6 +38,15 @@ #ifndef oodMouse_Included #define oodMouse_Included +#define TRACK_MOUSE_KEYWORDS "CANCEL, HOVER, LEAVE, NONCLIENT, or QUERY" +#define WM_MOUSE_KEYWORDS "MouseMove, MouseWheel, MouseLeave, MouseHover, NcMouseLeave, NcMouseHover, lButtonUp, lButtonDown, or CaptureChanged" +#define MOUSE_BUTTON_KEYWORDS "LEFT, RIGHT, MIDDLE, XBUTTON1, or XBUTTON2" +#define SYSTEM_CURSOR_KEYWORDS "APPSTARTING, ARROW, CROSS, HAND, HELP, IBEAM, NO, SIZEALL, SIZENESW, SIZENS, " \ + "SIZENWSE, SIZEWE, UPARROW, or WAIT" + +#define DLG_HAS_ENDED_MSG "windows dialog has executed and been closed" + + // Struct for instantiating a new Rexx Mouse object. typedef struct newMouseParams { Modified: ooDialog/trunk/ooDialog/oodPackageEntry.cpp =================================================================== --- ooDialog/trunk/ooDialog/oodPackageEntry.cpp 2013-02-09 02:05:46 UTC (rev 8959) +++ ooDialog/trunk/ooDialog/oodPackageEntry.cpp 2013-02-09 23:12:56 UTC (rev 8960) @@ -1485,6 +1485,10 @@ REXX_METHOD_PROTOTYPE(mouse_trackEvent); REXX_METHOD_PROTOTYPE(mouse_test); +//Keyboard +REXX_METHOD_PROTOTYPE(kb_getAsyncKeyState_cls); + + // CustomDraw REXX_METHOD_PROTOTYPE(cd_init); REXX_METHOD_PROTOTYPE(cd_customDrawControl); @@ -2594,6 +2598,10 @@ REXX_METHOD(mouse_trackEvent, mouse_trackEvent), REXX_METHOD(mouse_test, mouse_test), + + // Keyboard + REXX_METHOD(kb_getAsyncKeyState_cls, kb_getAsyncKeyState_cls), + // CustomDraw REXX_METHOD(cd_init, cd_init), REXX_METHOD(cd_customDrawControl, cd_customDrawControl), Modified: ooDialog/trunk/ooDialog/oodialog.mak =================================================================== --- ooDialog/trunk/ooDialog/oodialog.mak 2013-02-09 02:05:46 UTC (rev 8959) +++ ooDialog/trunk/ooDialog/oodialog.mak 2013-02-09 23:12:56 UTC (rev 8960) @@ -80,25 +80,26 @@ all: $(OOD_OUTDIR)\oodialog.dll # All Source Files -SOURCEF= $(OOD_OUTDIR)\APICommon.obj $(OOD_OUTDIR)\oodBarControls.obj $(OOD_OUTDIR)\oodBaseDialog.obj \ - $(OOD_OUTDIR)\oodBasicControls.obj $(OOD_OUTDIR)\oodCommon.obj $(OOD_OUTDIR)\oodControl.obj \ - $(OOD_OUTDIR)\oodData.obj $(OOD_OUTDIR)\oodDeviceGraphics.obj $(OOD_OUTDIR)\ooDialog.obj \ - $(OOD_OUTDIR)\oodListView.obj $(OOD_OUTDIR)\oodMenu.obj $(OOD_OUTDIR)\oodMessaging.obj \ - $(OOD_OUTDIR)\oodMouse.obj $(OOD_OUTDIR)\oodPackageEntry.obj $(OOD_OUTDIR)\oodPropertySheetDialog.obj \ - $(OOD_OUTDIR)\oodResizableDialog.obj $(OOD_OUTDIR)\oodResources.obj $(OOD_OUTDIR)\oodRoutines.obj \ - $(OOD_OUTDIR)\oodShellObjects.obj $(OOD_OUTDIR)\oodToolTip.obj $(OOD_OUTDIR)\oodTreeView.obj \ - $(OOD_OUTDIR)\oodUser.obj $(OOD_OUTDIR)\oodUtilities.obj $(OOD_OUTDIR)\oodViewControls.obj \ - $(OOD_OUTDIR)\oodialog.res +SOURCEF= $(OOD_OUTDIR)\APICommon.obj $(OOD_OUTDIR)\oodBarControls.obj $(OOD_OUTDIR)\oodBaseDialog.obj \ + $(OOD_OUTDIR)\oodBasicControls.obj $(OOD_OUTDIR)\oodCommon.obj $(OOD_OUTDIR)\oodControl.obj \ + $(OOD_OUTDIR)\oodData.obj $(OOD_OUTDIR)\oodDeviceGraphics.obj $(OOD_OUTDIR)\ooDialog.obj \ + $(OOD_OUTDIR)\oodKeyboard.obj $(OOD_OUTDIR)\oodListView.obj $(OOD_OUTDIR)\oodMenu.obj \ + $(OOD_OUTDIR)\oodMessaging.obj $(OOD_OUTDIR)\oodMouse.obj $(OOD_OUTDIR)\oodPackageEntry.obj \ + $(OOD_OUTDIR)\oodPropertySheetDialog.obj $(OOD_OUTDIR)\oodResizableDialog.obj $(OOD_OUTDIR)\oodResources.obj \ + $(OOD_OUTDIR)\oodRoutines.obj $(OOD_OUTDIR)\oodShellObjects.obj $(OOD_OUTDIR)\oodToolTip.obj \ + $(OOD_OUTDIR)\oodTreeView.obj $(OOD_OUTDIR)\oodUser.obj $(OOD_OUTDIR)\oodUtilities.obj \ + $(OOD_OUTDIR)\oodViewControls.obj $(OOD_OUTDIR)\oodialog.res # All Source files that include APICommon.hpp -APICOMMON_SOURCEF = $(OOD_OUTDIR)\APICommon.obj $(OOD_OUTDIR)\oodBarControls.obj $(OOD_OUTDIR)\oodBaseDialog.obj \ - $(OOD_OUTDIR)\oodBasicControls.obj $(OOD_OUTDIR)\oodCommon.obj $(OOD_OUTDIR)\oodControl.obj \ - $(OOD_OUTDIR)\oodData.obj $(OOD_OUTDIR)\oodDeviceGraphics.obj $(OOD_OUTDIR)\ooDialog.obj \ - $(OOD_OUTDIR)\oodListView.obj $(OOD_OUTDIR)\oodMenu.obj $(OOD_OUTDIR)\oodMessaging.obj \ - $(OOD_OUTDIR)\oodMouse.obj $(OOD_OUTDIR)\oodPackageEntry.obj $(OOD_OUTDIR)\oodPropertySheetDialog.obj \ - $(OOD_OUTDIR)\oodResizableDialog.obj $(OOD_OUTDIR)\oodResources.obj $(OOD_OUTDIR)\oodRoutines.obj \ - $(OOD_OUTDIR)\oodShellObjects.obj $(OOD_OUTDIR)\oodToolTip.obj $(OOD_OUTDIR)\oodTreeView.obj \ - $(OOD_OUTDIR)\oodUser.obj $(OOD_OUTDIR)\oodUtilities.obj $(OOD_OUTDIR)\oodViewControls.obj +APICOMMON_SOURCEF = $(OOD_OUTDIR)\APICommon.obj $(OOD_OUTDIR)\oodBarControls.obj $(OOD_OUTDIR)\oodBaseDialog.obj \ + $(OOD_OUTDIR)\oodBasicControls.obj $(OOD_OUTDIR)\oodCommon.obj $(OOD_OUTDIR)\oodControl.obj \ + $(OOD_OUTDIR)\oodData.obj $(OOD_OUTDIR)\oodDeviceGraphics.obj $(OOD_OUTDIR)\ooDialog.obj \ + $(OOD_OUTDIR)\oodKeyboard.obj $(OOD_OUTDIR)\oodListView.obj $(OOD_OUTDIR)\oodMenu.obj \ + $(OOD_OUTDIR)\oodMessaging.obj $(OOD_OUTDIR)\oodMouse.obj $(OOD_OUTDIR)\oodPackageEntry.obj \ + $(OOD_OUTDIR)\oodPropertySheetDialog.obj $(OOD_OUTDIR)\oodResizableDialog.obj $(OOD_OUTDIR)\oodResources.obj \ + $(OOD_OUTDIR)\oodRoutines.obj $(OOD_OUTDIR)\oodShellObjects.obj $(OOD_OUTDIR)\oodToolTip.obj \ + $(OOD_OUTDIR)\oodTreeView.obj $(OOD_OUTDIR)\oodUser.obj $(OOD_OUTDIR)\oodUtilities.obj \ + $(OOD_OUTDIR)\oodViewControls.obj # All Source files that include oodCommon.hpp COMMON_SOURCEF = $(OOD_OUTDIR)\oodBarControls.obj $(OOD_OUTDIR)\oodBaseDialog.obj $(OOD_OUTDIR)\oodBasicControls.obj \ |