[futurebasic] Re: [FB] Re: [FB^3] Focus Ring emulation in FB^3

Message: < previous - next > : Reply : Subscribe : Cleanse
Home   : October 2000 : Group Archive : Group : All Groups

From: Alain Pastor <apastor@...>
Date: Sun, 08 Oct 2000 17:21:07 +0200

Ken,

I think I have fixed the update problem I mentioned earlier in the fixFocus function.

Here are the changes (should work better):

CLEAR LOCAL MODE
LOCAL FN focusEF(theField,frameIt,lastFocus)
DIM err    AS LONG
DIM fieldH AS HANDLE
DIM @ teH  AS HANDLE

theField = USR ABS(theField)
fieldH   = [WNDBLK + WINDOW(WINDOW(_activeWnd))*16 + 4]

LONG IF theField
IF TEHANDLE(-theField) < 1 THEN EXIT FN
teH = TEHANDLE(theField)
LONG IF frameIt
WHILE fieldH
LONG IF fieldH..4% != theField
IF fieldH..4% = lastFocus THEN FN focusEF(fieldH..4%,_false,lastFocus)
XELSE
err = FN DrawThemeFocusRect(#@teH..TEDestRect%,_true)
EDIT FIELD theField
SetCursor(#[FN GetCursor(_iBeamCursor)])
END IF
fieldH = [[fieldH]]
WEND
XELSE
err = FN DrawThemeFocusRect(#@teH..TEdestRect%,_false)
END IF
XELSE
WHILE fieldH
IF fieldH..4% = lastFocus THEN FN focusEF(fieldH..4%,_false,lastFocus)
fieldH = [[fieldH]]
WEND
InitCursor
END IF
END FN = theField

LOCAL FN fixFocus
DIM fieldH  AS HANDLE
DIM mousePt AS POINT
DIM @ teH   AS HANDLE

fieldH = [WNDBLK + WINDOW(WINDOW(_activeWnd))*16 + 4]
WHILE fieldH
teH = TEHANDLE(fieldH..4%)
GetMouse(mousePt)
LONG IF FN PtInRect(mousePt,#@teH..TEViewRect%)
gLastFocus = FN focusEF(fieldH..4%,_true,gLastFocus)
EXIT WHILE
XELSE
IF gLastFocus = fieldH..4% THEN FN focusEF(fieldH..4%,_false,gLastFocus)
END IF
fieldH = [[fieldH]]
WEND
END FN

Cheers

Alain