Spell checking on a Mac

Pete pete at mollysrevenge.com
Fri Oct 28 12:58:43 EDT 2011


Thanks for sharing all that code Scott!  I found a whole section on the
Apple Developers site about implementing the OS X spell checker but it's all
Cocoa-based so I guess would need some sort of external to interface to.
Pete
Molly's Revenge <http://www.mollysrevenge.com>




On Thu, Oct 27, 2011 at 9:48 PM, Scott Morrow
<scott at elementarysoftware.com>wrote:

>
> On Oct 27, 2011, at 9:20 PM, Scott Morrow wrote:
>
> >
> > Here is some code that might give you a start on rolling your own using
> the RunRevPlanet spell checker.
>
> I forgot to include a frontscript for the right-click feature… which was
> the whole point  :  )
> this frontscript "pops-up" a button named "PopUpMenu" which may contain
> menu items
> in the lower portion and spelling suggestions at the top.
>
>
>
> constant kMain = "ShortNameOfYourMainStack"
> -------Front script
> --the uSelectedChunk of stack kMain is used to track text selection
>
> on mouseDown tMouseButton  -- POP-UP menu on right click
>   put the long name of the target into tTarget
>   if "field" <> (word 1 of tTarget) then
>      pass mouseDown
>   end if
>   put the mouseChunk into tMouseChunk
>   put the mouseText into tMouseText
>
>   put the selectedChunk into tSelectedChunk
>
>
>    if tMouseButton is 3 then
>
>      put (word 1 to 4 of tSelectedChunk) && "of" && tTarget into
> tLongSelection
>      set the uSpellCheckSingleWord of btn "PopUpMenu" of stack kMain to
> "false"
>      set the uMouseChunk of btn "PopUpMenu" of stack kMain to empty
>
>
>      if (tSelectedChunk is not empty) then --AND (word 1 of tTarget is
> "field") then
>         set the uSelectedChunk of stack kMain to tLongSelection
>         -- spell check the word that the mouse is hovering over
>         -- offer suggestions if it is mispelled
>
>         if ("rrpSpellCheck" is among the lines of the stacksInUse) AND (not
> ((tMouseText is empty) OR (tMouseChunk is empty))) AND (not
> rrpSpellValidWord(tMouseText)) then
>            put Trim(rrpSpellSuggestions(tMouseText, 3)) &CR&\
>            "(-" &CR&\
>            (the uMenuItems of btn "PopUpMenu" of stack kMain) into
> tMenuConstruct
>            if line 1 of tMenuConstruct is empty then
>               put "No suggested spelling" into line 1 of tMenuConstruct
>            else
>               set the uSpellCheckSingleWord of btn "PopUpMenu" of stack
> kMain to "true"
>            end if
>            set the text of btn "PopUpMenu" of stack kMain to tMenuConstruct
>            put ((word 1 to 4 of tMouseChunk) && "of" && tTarget) into
> tLongMouseChunk
>            set the uMouseChunk of btn "PopUpMenu" of stack kMain to
> tLongMouseChunk
>            -- store the textStyle of the word we are checking so that we
> can insert a correction with the correct style
>            put the textStyle of tLongMouseChunk into tTextStyle
>            if tTextStyle is not empty then
>               do ("set the uSpellCheckSingleWordTextStyle of btn" &&QUOTE&
> "PopUpMenu"&QUOTE&& "of stack" &&QUOTE& kMain &QUOTE&& "to" && tTextStyle)
>            end if
>         else
>            -- normal field pop-up
>            set the text of btn "PopUpMenu" of stack kMain to the uMenuItems
> of btn "PopUpMenu" of stack kMain
>         end if
>         --      else -- build a non text edit popUp menu
>         --         set the text of btn "PopUpMenu" of stack kMain to line 8
> to -1 of (the uMenuItems of btn "PopUpMenu" of stack kMain)
>      end if
>
>      popUp btn "PopUpMenu" of stack kMain
>   else
>      pass mouseDown
>   end if
> end mouseDown
>
> -Scott Morrow
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
>
>



More information about the use-livecode mailing list