tab buttons and localisation

Bob Hutchison hutch at recursive.ca
Sun Dec 11 11:18:58 EST 2005


On Dec 11, 2005, at 10:56 AM, Bob Hutchison wrote:

> Hi,
>
> I use tabbed buttons in my user interface. They work easily enough,  
> but every reference to how this is done uses the "on menuPick  
> pNew,pOld" handler. And every reference seems to use a switch or  
> something to recognise the tab that was clicked based on the  
> *visible* text. Sometimes a cardname = tabname trick is used.
>
> This means that the visible text on the tab is used in two places  
> and the RR user has to remember to change these values so that they  
> match.
>
> This is generally a Bad Thing, just out of principle. It means that  
> when the text of a tab is changed the script has to be changed.  
> This is a Really Bad Thing when trying to localise the application:  
> each tab will have multiple text values, where, as you'd know if  
> you've ever been involved in such a thing, the localised text is  
> pretty much guaranteed to change a number of times. (And the  
> cardname = tabname obviously won't work in this situation).
>
> Way too error prone.
>
> So, it turns out that there is a property that lists the tab  
> labels, so I can write something along the lines of:
>
> on menuPick pNew,pOld
>   get the properties of me
>   put it["text"] into labels
>   put 1 into tabNumber
>   repeat for each line aLabel in labels
>     if pNew = aLabel then exit repeat
>     add 1 to tabNumber
>   end repeat
>
>   switch tabNumber

A cleaner way to deal with this is to replace the above with what  
follows:

on menuPick pNew,pOld
   get the properties of me
   switch lineoffset(pNew, it["text"])


>   case 1
>     go card "card_one"
>     break
>   case 2
>     go card "card_two"
>     break
>   case 3
>     go card "card_three"
>     break
>   default
>      go card "card_one"
>      break
>   end switch
> end menuPick
>
> I checked this and it does localise correctly.
>
> Any better ways of doing this?
>
> There is nothing particularly clever about what I'm doing, but I'm  
> new to RR and this kind of thing is a) not obvious to a new user  
> (how to find the name of a property is not obvious to me at least);  
> and, b) a nasty trap if not addressed by the RR programmer. The  
> event "menuPick" isn't something I find particularly obvious either.
>
> It would be good if this was either fixed in RR or that this, or  
> some better technique/trick, was more widely documented.
>
> Cheers,
> Bob
>
> ----
> Bob Hutchison          -- blogs at <http://www.recursive.ca/hutch/>
> Recursive Design Inc.  -- <http://www.recursive.ca/>
> Raconteur              -- <http://www.raconteur.info/>
>
>

----
Bob Hutchison          -- blogs at <http://www.recursive.ca/hutch/>
Recursive Design Inc.  -- <http://www.recursive.ca/>
Raconteur              -- <http://www.raconteur.info/>





More information about the use-livecode mailing list