[futurebasic] Re: [FB] Beginner: Mouse function

Message: < previous - next > : Reply : Subscribe : Cleanse
Home   : February 2010 : Group Archive : Group : All Groups

From: Ken Shmidheiser <kshmidheiser@...>
Date: Wed, 3 Feb 2010 11:54:53 -0500
Robert asked:

>Any way to add detection of the number of  clicks?

Robert,

The guys who wrote the CE handlers built in automatic detection of 
just about everything you need.

Ken

/*

      Capturing Mouse Clicks
      with Carbon Events

      Ken Shmidheiser
      February 3, 2010

*/

include "Util_CE.incl"
include "Tlbx CFString.incl"

local fn MyMouseTrackingHandler( nextHandler as EventHandlerCallRef, 
theEvent as EventRef, userData as pointer )
'~'1
dim as Str63    s
dim as UInt32   clicks
dim as OSStatus err, result : result = _eventNotHandledErr

select ( fn GetEventClass( theEvent ) )
case _kEventClassMouse
select ( fn GetEventKind( theEvent ) )

case _kEventMouseDown
err = fn GetEventParameter( theEvent, _kEventParamClickCount, 
_typeUInt32, #0, sizeof( UInt32 ), #0, clicks )
long if (clicks == 1 )
s = "The mouse was clicked 1 time"
xelse
s = "The mouse was clicked" + Str$( clicks ) + " times
end if

end select
end select

fn SetButtonTextString( 1, s )

end fn = result

local fn BuildCEWindow
'~'1
dim as WindowRef  w
dim as Rect       r
dim as ControlFontStyleRec    tfs

SetRect( r, 0, 0, 500, 350 )
appearance window 1, "CE Mouse Tracker", @r,_kDocumentWindowClass, 
_kWindowStandardHandlerAttribute
SetRect( r, 20, 10, 480, 40 )
appearance button 1,,,,,, @r, _kControlStaticTextProc
tfs.flags = _kControlUseJustMask
tfs.just = _teJustCenter
fn SetButtonFontStyle( 1, tfs )

w = window( _wndRef )

fn CEAddEvent( _kEventClassMouse, _kEventMouseDown       )
fn CEInstallWindowEventHandler( w, @fn MyMouseTrackingHandler, 0, 0 )

end fn

fn BuildCEWindow

RunApplicationEventLoop()