Simulating password entry

Richard Gaskin ambassador at
Wed Aug 18 16:33:32 EDT 2004

Devin Asay wrote:
> I'm writing an app that simulates a network server login on Mac OS X. 
> I want the password field to behave just like normal password fields 
> in OS X; i.e., bullet characters appear in place of clear text. I've 
> sorta kinda got it working by trapping the keydown message in the 
> password field, but it's quirky. Before I spend a lot of time on this, 
> I thought I'd ask: Has anyone done this and would mind sharing a script?

A tip for use bullets across platforms:

Remember that characters in fields are automatically updated between 
platforms to account for things like mapping the Mac bullet character to 
the Windows bullet character.

So in my login screens I have a hidden field that contains just a bullet 
character, and I use that in the scripts that handle my visible entry field.

Here's a variant of such a script, borrowed largely from the MC IDE -- I 
have this in the bullet (display) field named "ftpPasswordBullet", with 
another hidden field to store the actual text named "ftpPassword":

local sBullet

on tabkey
   focus on fld "ftpname"
end tabkey

on openField
   put char 1 of fld "bulletchar" into sBullet
   select the text of the target
end openField

on keyDown which
   local tpos
   put the selectedChunk into tpos
   put which into character (word 2 of tpos) to (word 4 of tpos) of 
field "ftpPassword"
   select after character (word 2 of tpos) of fld "ftpPasswordBullet"
end keyDown

on deleteKey
end deleteKey

on backspaceKey
end backspaceKey

on deleteone
   put word 2 of the selectedChunk into tStart
   put word 4 of the selectedchunk into tEnd
   if tStart > tEnd then
     put empty into char tEnd of fld "ftpPassword"
     put empty into char tStart to tEnd of fld "ftpPassword"
   end if
   select before char (tStart-1) of fld "ftpPasswordBullet"
end deleteone

on commandKeyDown pChar
   put word 2 of the selectedChunk into tStart
   put word 4 of the selectedchunk into tEnd
   switch pChar
   case "x"
     cut char tstart to tEnd of fld "ftpPassword"
   case "v"
     select char tStart to tEnd of fld "ftpPassword"
     select after character tEnd of fld "ftpPasswordBullet"
     pass commandKeyDown
   end switch
end commandKeyDown

on star
   local tstring
   put empty into tstring
   repeat with i = 1 to the number of characters in fld "ftpPassword"
     put sBullet after tstring
   end repeat
   put tstring into field "ftpPasswordBullet"
end star

  Richard Gaskin
  Fourth World Media Corporation
  Ambassador at

More information about the Use-livecode mailing list