From: <mie...@us...> - 2011-10-28 04:04:30
|
Revision: 7262 http://oorexx.svn.sourceforge.net/oorexx/?rev=7262&view=rev Author: miesfeld Date: 2011-10-28 04:04:24 +0000 (Fri, 28 Oct 2011) Log Message: ----------- ooDialog - Fix the checkMsgReply() logic. Fix a typo in setting the 'tag' in the connectMouseWheel() method. Add the optional willReply argument to the connectButtonEvent() method. Modified Paths: -------------- main/trunk/extensions/platform/windows/oodialog/EventNotification.cls main/trunk/extensions/platform/windows/oodialog/oodMessaging.cpp Modified: main/trunk/extensions/platform/windows/oodialog/EventNotification.cls =================================================================== --- main/trunk/extensions/platform/windows/oodialog/EventNotification.cls 2011-10-28 04:01:35 UTC (rev 7261) +++ main/trunk/extensions/platform/windows/oodialog/EventNotification.cls 2011-10-28 04:04:24 UTC (rev 7262) @@ -85,7 +85,7 @@ -- WM_MOUSEWHEEL ::method connectMouseWheel use strict arg msgToRise = 'onMouseWheel', willReply = .true - tag = 0x00000003 + tag = 0x00000002 if willReply then tag = 0x02000002 return self~addUserMsg(msgToRise, "0x0000020a", "0xFFFFFFFF", 0, 0, 0, 0, tag) @@ -154,11 +154,14 @@ ::method connectButtonEvent - use strict arg id, type, msgToRise = "" + use strict arg id, type, msgToRise = "", willReply = .false if \ id~dataType("W") then id = self~resolveSymbolicId(id) if id = -1 then return -1 + if msgToRise == "" then msgToRise = "on" || type type = type~translate + tag = 0 + if willReply then tag = 0x02000000 select when type = "CLICKED" then do if id < 3 | id = 9 then return 0 @@ -174,12 +177,13 @@ when type = "HOTITEM" then do -- Sends WM_NOTIFY and notify code is: BCN_HOTITEMCHANGE=0xfffffb1f (decimal=-1249) TAG_BUTTON = 0x00000004 - return self~addUserMsg(msgToRise, 0x0000004E, "0xFFFFFFFF", id, "0xFFFFFFFF", 0xFFFFFB1F, "0xFFFFFFFF", 4) + tag = .DlgUtil~or(tag, 0x00000004) + return self~addUserMsg(msgToRise, 0x0000004E, "0xFFFFFFFF", id, "0xFFFFFFFF", 0xFFFFFB1F, "0xFFFFFFFF", tag) end otherwise return -1 end - return self~addUserMsg(msgToRise, 0x00000111, "0xFFFFFFFF", lp * x2d("10000") + id, "0xFFFFFFFF", 0, 0) /* buttons sends WM_COMMAND when BS_NOTIFY */ + return self~addUserMsg(msgToRise, 0x00000111, "0xFFFFFFFF", lp * x2d("10000") + id, "0xFFFFFFFF", 0, 0, tag) /* buttons sends WM_COMMAND when BS_NOTIFY */ ::method connectEditEvent Modified: main/trunk/extensions/platform/windows/oodialog/oodMessaging.cpp =================================================================== --- main/trunk/extensions/platform/windows/oodialog/oodMessaging.cpp 2011-10-28 04:01:35 UTC (rev 7261) +++ main/trunk/extensions/platform/windows/oodialog/oodMessaging.cpp 2011-10-28 04:04:24 UTC (rev 7262) @@ -972,18 +972,15 @@ bool checkMsgReply(RexxThreadContext *c, pCPlainBaseDialog pcpbd, RexxObjectPtr reply, CSTRING methodName, bool clear) { - if ( reply == NULLOBJECT ) - { - noMsgReturnException(c, methodName); - } + bool haveCondition = checkForCondition(c, clear); - bool result = checkForCondition(c, false); - - if ( reply == NULLOBJECT ) + if ( ! haveCondition && reply == NULLOBJECT ) { + noMsgReturnException(c, methodName); + haveCondition = checkForCondition(c, clear); endDialogPremature(pcpbd, pcpbd->hDlg, RexxConditionRaised); } - return result; + return haveCondition; } /** * Invokes the Rexx dialog's event handling method for a Windows message. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |