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" &"E&
> "PopUpMenu""E&& "of stack" &"E& kMain "E&& "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