Interface question
J. Landman Gay
jacque at hyperactivesw.com
Sat Jan 2 23:30:18 EST 2010
In case anyone is interested, I thought I'd let people know how we
decided to resolve the interface issue I was having with a client's
stack. This was the problem:
> Because the prefs stack is much smaller than the print template stacks,
> the text entry fields are also not as wide. To give the user a way to
> visualize how their tabstops will look, the textsize in the entry fields
> is very small. This gives the right ratio between field width and text
> size, so that they get a fairly accurate idea of the text placement in
> the header or footer as they slide the tabstops around.
>
> So now the client says the text is too small to read easily (which is
> true) and he'd like it legible. Problem is, if I increase the text size,
> the relative ratio of the tabstops will not be accurate and the fields
> will not display the relative text placement correctly.
I got lots of good answers here but they all involved some kind of
second field, which I wasn't keen on. Someone had suggested a magnifying
glass effect, but that doesn't allow easy editing. It did give me an
idea though. The upshoot is that we decided to implement a dynamically
resizing field, which for our situation works pretty well.
When the insertion point is placed in one of the two relevant prefs
fields, it grows horizontally and a little bit vertically. The font size
and textheight are changed proportionately, which makes it readable. A
colored border is added to show that the field is in a special state. On
exitField and closeField, the field size and font properties are reduced
back to normal and the border removed.
It works pretty well, seems intuitive, avoids an extra editing field,
and has a semi-animated effect. (I'm considering adding a visual effect
to amplify that.)
--In each prefs field:
on openField
zoomFld "large"
end openField
on closeField
zoomFld "small"
end closeField
on exitField
zoomFld "small"
end exitField
--In the card script:
on zoomFld pSize
put the short name of the target into tFldName
put the uRect of fld tFldName into tNativeRect -- custom prop stores
native size
lock screen
switch pSize
case "large"
put the loc of fld tFldName into tLoc
set the threeD of fld tFldName to false
subtract 10 from item 1 of tNativeRect
add 10 to item 3 of tNativeRect
add 5 to item 4 of tNativeRect
set the rect of fld tFldName to tNativeRect -- now adjusted
set the loc of fld tFldName to tLoc
set the textsize of fld tFldName to 13
set the textheight of fld tFldName to 18
break
case "small"
set the threeD of fld tFldName to true
set the rect of fld tFldName to tNativeRect
set the textsize of fld tFldName to 9
set the textheight of fld tFldName to 16
break
default
end switch
unlock screen
end zoomFld
I didn't need a direct command to set the border, because toggling the
threeD property toggles border visibility. So all I had to do was
manually set up the border width and color, and then just turn threeD on
and off.
Maybe someone can use this. It's a simple solution that I just didn't
think of until you guys jogged my brain. Thanks.
--
Jacqueline Landman Gay | jacque at hyperactivesw.com
HyperActive Software | http://www.hyperactivesw.com
More information about the use-livecode
mailing list