Tutorial explanation object lib for creating a multiplatform splitter?
J. Landman Gay
jacque at hyperactivesw.com
Mon May 10 18:13:16 EDT 2004
On 5/10/04 12:58 PM, Kevin wrote:
>
> My definition follows a more "windows" slighted definition. When one
> uses the file explorer the right border of the folder listed tree
> control is a splitter it splits and allows resizeing of the folder
> listing.
There's no pre-made control that does this but they are trivial to
write. You can either place a narrow button where you want the splitter
to go, or you can just track the mouse position without using a control.
When the mouse goes down, get the rect of the field on the left and the
field on the right. Set the right edge of the left-hand field to the
mouseH and the left edge of the right-hand field to the same mouseH.
That's it.
For example (this assumes a narrow, transparent button between the fields):
-- note: untested, but should basically work
on mouseDown -- script of the narrow button
doSplitter
end mouseDown
on mouseUp
stopSplitter
end mouseUp
on mouseRelease
stopSplitter
end mouseRelease
on doSplitter
put item 1 of the loc of me into theH
get the rect of fld theLeftFld
put theH into item 3 of it
set the rect of fld theLeftFld to it
get the rect of fld theRightFld
put theH into item 1 of it
set the rect of fld theRightFld to it
set the loc of me to it,item 2 of the loc of me
send "doSplitter" to me in 100 milliseconds -- adjust as needed
end doSplitter
on stopSplitter
repeat for each line L in the pendingMessages
if L contains "doSplitter" then cancel (item 2 of L)
end repeat
end stopSplitter
If you don't want to use the transparent button, then just check the x
position of the mouse on mouseMove and calculate whether you should
start the splitter or not. (That's usually how I do it, it avoids an
extra control.)
--
Jacqueline Landman Gay | jacque at hyperactivesw.com
HyperActive Software | http://www.hyperactivesw.com
More information about the use-livecode
mailing list