Is UInt32(*) a cast? eventClass is an OSType; what is enEventClasses.kEventClassWindow?
Charles Yeomans On May 2, 2007, at 6:03 PM, Daniel Stenning wrote: > > These: > > > evTypes.Type(0).eventClass = UInt32 > (enEventClasses.kEventClassWindow) > evTypes.Type(0).eventKind = UInt32(kEventWindowClose) > > evTypes.Type(1).eventClass = UInt32(enEventClasses.kEventClassMouse) > evTypes.Type(1).eventKind = UInt32(kEventMouseDown) > > evTypes.Type(2).eventClass = UInt32(enEventClasses.kEventClassMouse) > evTypes.Type(2).eventKind = UInt32(kEventMouseDragged) > > evTypes.Type(3).eventClass = UInt32 > (enEventClasses.kEventClassWindow) > evTypes.Type(3).eventKind = UInt32(kEventWindowDrawContent) > > evTypes.Type(4).eventClass = UInt32 > (enEventClasses.kEventClassWindow) > evTypes.Type(4).eventKind = UInt32(kEventWindowResizeCompleted) > > evTypes.Type(5).eventClass = UInt32 > (enEventClasses.kEventClassWindow) > evTypes.Type(5).eventKind = UInt32(kEventWindowDragCompleted) > > evTypes.Type(6).eventClass = UInt32 > (enEventClasses.kEventClassWindow) > evTypes.Type(6).eventKind = UInt32(kEventWindowUpdate) > > > Regards, > > Dan > > On 2/5/07 18:20, "Charles Yeomans" <[EMAIL PROTECTED]> wrote: > >> For which events are you registering? >> >> Charles Yeomans >> >> >> >> On May 2, 2007, at 1:15 PM, Daniel Stenning wrote: >> >>> On 2/5/07 17:58, "Charles Yeomans" <[EMAIL PROTECTED]> wrote: >>> >>>> Offhand, I'm not sure that the code below would work. For example, >>>> you appear to be passing a nil Ptr as the last parameter to >>>> InstallEventHandler. >>> >>> The carbon library declaration for the last parameter is ByRef so >>> InstallEventHandler sets the pointer by reference. >>> >>>> I assume that CEventTypes is a struct, >>> Correct >>> >>>> but I'm not sure how that works, since you should be passing an >>>> array of >>>> event types. >>> >>> It is a struct with a fixed number of eventtype elements ( I >>> realise I could >>> have done this through a memoryblock but it seemed easier just to >>> use a >>> struct holding a fixed array. >>> >>> >>>> Does InstallEventHandler always return 0? >>> >>> Yes. >>>> >>>> Charles Yeomans >>>> >>>> >>>> On May 2, 2007, at 12:45 PM, Daniel Stenning wrote: >>>> >>>>> I have in fact added the carbon event handler ( I just used the >>>>> same code as >>>>> used for the pure carbon version). >>>>> >>>>> Here is the main code for the "RB" window version which doesn't >>>>> work ( it >>>>> opens and the dylib paints the window correctly,l but the window >>>>> fails to >>>>> respond to any mouse events: >>>>> >>>>> <snick> >>>>> //----------------- >>>>> >>>>> Function InstallCarbonEventHandler( editwinRef as WindowPtr ) >>>>> Soft Declare Function InstallEventHandler Lib "Carbon" (Target >>>>> As Ptr, >>>>> Handler as Ptr, EventTypeCount As integer, ByRef evTypes As >>>>> CEventTypes, >>>>> userData As Ptr, ByRef outHandlerRef as Ptr) As Integer >>>>> Soft Declare Function GetWindowEventTarget Lib >>>>> "Carbon" (inWindow As >>>>> WindowPtr) As Ptr >>>>> >>>>> dim eventHandler as Ptr >>>>> dim evTypeCount as integer = 7//SetupCarbonEventTypes >>>>> (CarbonEventTypes) >>>>> dim err as integer = InstallEventHandler( GetWindowEventTarget( >>>>> editwinRef ), AddressOf windowHandler, evTypeCount, >>>>> CarbonEventTypes , >>>>> plug.GetEffectPointer() , eventHandler ) >>>>> >>>>> Return eventHandler >>>>> End Function >>>>> >>>>> //----------------- >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> On 2/5/07 17:16, "Charles Yeomans" <[EMAIL PROTECTED]> wrote: >>>>> >>>>>> You might try adding a Carbon event handler to the window to >>>>>> handle >>>>>> mouse events before the Rb code. As I recall, event handlers >>>>>> form a >>>>>> stack, so the last handler added gets first crack at the >>>>>> events for >>>>>> which it has registered. I've had mixed luck in taking >>>>>> control of >>>>>> mouse events in windows via declares. >>>>>> >>>>>> Charles Yeomans >>>>>> >>>>>> On May 2, 2007, at 12:11 PM, Daniel Stenning wrote: >>>>> >>>>> _______________________________________________ Unsubscribe or switch delivery mode: <http://www.realsoftware.com/support/listmanager/> Search the archives: <http://support.realsoftware.com/listarchives/lists.html>
