Back to Mac Usenet

From: David Phillip Oster <oster@ieee
To: All
Subject: Re: setting maximum length of T
Date:Sat, July 05, 2008 10:40 PM


In article
<ad89a2b9c20fdb1ead08c995194e075e@localhost.talkaboutmac.com>,
"vcmac" <sanjaya.busi@lionbridge.com> wrote:

> Hi,
>
> How could we set the maximum lenght of a TERec structure.
> We want to set the maximum lenght for extended-edit type in mac to suppose
> 32767,
> How should we do it ?
>
> we coded like as below. But still (*teHandle)->teLength is not modified.
> where teHandle is of typr **TERec
>
> if( len > 32767 )
> {
> len = 32767;
> HLock ((Handle)teHandle) ;
> (*teHandle)->teLength = len;
> (*teHandle)->selEnd = (*teHandle)->teLength ;
> HUnlock ((Handle)teHandle) ;
> }
>
> Please suggest any way to achieve this ?
>
> Thanks and Regards
> Sanjaya

In my own code, I use a keyDown handler that, after it has checked for
Clear, Left, Right, Up, Down, Home, End, PageUp, PageDown, and backSpace
does:

if(TEMAX -1 <= (**text).teLength){
TellAnyError(MUSTTRUNCATE);
}else{
TEKey(chr, text);
}

With a similar protection on Paste.

There is similar code in LTextEditView.cp

1.) a TE can't handle even 32767 characters. Pick a smaller maximum.
2.) You don't need to lock a teHandle to assign to if from simple
variables.
3.) Rarely do HLock() xxx HUnlock(). What if it were already locked on
entry?
You should use HGetState(); HLock(); xxx HSetState();
4.) Don't assign to selEnd. Use TESetSelection()
5.) You also have to resize the actual hText text handle with
SetHandleSize()


29


Running TeleFinder Server v5.7.
© Copyright Spider Island Software