Command clicking and right-clicking are the same thing in OS x (unless you 
changed the default prefs). What you are really talking about is a contextual 
menu. These can be modified. I have an app that does it, thanks to someone on 
this list who showed me how to modify the contextual menu handler built into 
LC. Be careful though! Get it wrong and it can cause problems in other ways. 

To do this, you have to insert some code into the frontScript. My code, which 
allows me to right click a field in pointer mode, and select a type of 
validation from options that I added to the normal contextual menu. If only I 
could remember the people who help me with this kind of thing and give them 
credit I would, but my memory is an old man's memory. Always has been. It looks 
like this:

on revHookBuildObjectEditorContextMenu pMenuTarget, pMenuName, @pMenu, 
tModifiedMenu
    put the topstack into theCurrentStack
    put the long name of this card of theCurrentStack into theCurrentCard
    put the customkeys of theCurrentStack into theCustomProps
    
    if theCustomProps is empty then
        pass revHookBuildObjectEditorContextMenu
        exit revHookBuildObjectEditorContextMenu
    end if
    
    if word 1 of pMenuTarget is among the items of "field" and \
            ("PreConversions" is among the lines of theCustomProps or \
            "MidValidations" is among the lines of theCustomProps or \
            "PostValidations" is among the lines of theCustomProps) then
        put "Data Type" into line 1 of theValMenu
        put tab & "Text" into line 2 of theValMenu
        put tab & "Number" into line 3 of theValMenu
        put tab & "Date" into line 4 of theValMenu
        put "-" into line 5 of theValMenu
        put "Pre-Conversions" into line 6 of theValMenu
        put "Mid-Validations" into line 7 of theValMenu
        put "Post-Validations" & lf & "-" & lf into line 8 of theValMenu
        -- put the valMenu of me into theValMenu
        put theValMenu before pMenu
    end if
    
    -- preCheck the data type
    if "DataType" is among the lines of the customkeys of pMenuTarget then
        put the DataType of pMenuTarget into theDataType
        if theDataType is not empty then
            put lineoffset(theDataType, pMenu) into theTypeLine
            if theTypeLine is not 0 then
                put "!c" before word 1 of line theTypeLine of pMenu
            end if
        end if
    end if
    
    pass revHookBuildObjectEditorContextMenu
end revHookBuildObjectEditorContextMenu


function dispatchContextMenuPick pMenuName, pWhich
    if "Data Type" is in pWhich or \
            "Validations" is in pWhich or \
            "Conversions" is in pWhich then
        send "initVal" && pWhich to the topstack in 0 seconds
        exit to top -- essential that we do not pass anything along that LC 
does not expect
    end if
    pass dispatchContextMenuPick
end dispatchContextMenuPick

This code is fairly specific to what I want to do, but if you study it you will 
be able to discern what it does. The first function intercepts the 
revHookBuildObjectEditorContextMenu, which is responsible for building the 
contextual menu for all objects in LC. Having done that, I check for certain 
conditions, such as a custom property of the stack, and the fact that it was a 
field that was clicked on. I then proceed to append options to the menu text. 
The next function conditionally acts upon what was chosen. 
On Oct 1, 2012, at 2:40 PM, Timothy Miller wrote:

> Thanks Peter and Craig,
> 
> Good thoughts, but I wasn't thinking of either one of those things. I am 
> aware of the new LC text property that makes spell check possible in LC, I 
> have looked at the spell-checker in the LC store, and I do remember the HC 
> command-key feature. (Heck, my Atari 64 seems like just yesterday!) You've 
> probably overestimated me. My question was much dumber than that.
> 
> I'm just wondering two things. Is command-clickng on a hilited word an OS 
> thing, or does each application implement this feature independently? If it's 
> an OS thing, it might not be not very hard to implement. In that case why 
> doesn't LC do it? I.e., not just spell-check but all those other cute tricks 
> -- look up on google, look up in the dictionary, cut, copy, etc? 
> 
> Cheers,
> 
> Tim
> 
> 
> On Oct 1, 2012, at 12:28 PM, Peter Haworth wrote:
> 
>> Hi Tim,
>> There was a similar discussion a few months back regarding the spell
>> checking ability built into an OS, specifically OSX.  The outcome of that
>> was simply that LC doesn't provide a way to hook into it so I think the
>> answer to your question would be the same.
>> 
>> There is a third party spell checker application available on the RunRev
>> store but I don;t remember seeing anything for the feature you mentioned.
>> 
>> Pete
>> lcSQL Software <http://www.lcsql.com>
>> 
>> 
>> 
>> On Mon, Oct 1, 2012 at 10:34 AM, Timothy Miller <
>> gand...@doctortimothymiller.com> wrote:
>> 
>>> I'm not writing to complain about an absent feature. Mostly just curious,
>>> and maybe I'll learn something useful.
>>> 
>>> In recent years, I've come to take it for granted that I can hilite a word
>>> and command-click on it to get a pop-up dialog box with items like "cut"
>>> "copy" "look up in dictionary" and so on. The specific items depend on the
>>> application, but the dialog box usually looks the same.
>>> 
>>> A few minutes ago, I tried this in a text field an a LC stack and thought,
>>> "Hey, why doesn't that work!?" Then I remembered that LC doesn't do that,
>>> as far as I know. Yet I have the impression that this is an OS function
>>> that any application could invoke.
>>> 
>>> So, my question: Is this an OS function? If so, why doesn't LC take
>>> advantage of it?
>>> 
>>> I suppose it could be scripted. Is there an LC add-on that conveniently
>>> adds this functionality? Or maybe there's a simple LC command I don't know
>>> about?
>>> 
>>> Cheers,
>>> 
>>> Tim
>>> _______________________________________________
>>> use-livecode mailing list
>>> use-livecode@lists.runrev.com
>>> Please visit this url to subscribe, unsubscribe and manage your
>>> subscription preferences:
>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>>> 
>> _______________________________________________
>> use-livecode mailing list
>> use-livecode@lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your subscription 
>> preferences:
>> http://lists.runrev.com/mailman/listinfo/use-livecode
> 
> 
> _______________________________________________
> use-livecode mailing list
> use-livecode@lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription 
> preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode


_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to