Thanks Peter - I'll experiment with this.  Looks interesting...

On 4/20/2016 4:14 PM, Peter M. Brigham wrote:
On Apr 20, 2016, at 2:31 PM, Ray wrote:

Thanks for the heads-up on the commandKeyDown handler.  I've actually already 
got that in place, and my software doesn't really use fields so I think it 
should be good.  If it isn't I'll more than likely see it in testing.

On 4/20/2016 2:20 PM, Peter M. Brigham wrote:
On Apr 20, 2016, at 1:45 PM, Richard Gaskin wrote:

If this item isn't also in the menu bar, you can put the shortcut into the 
context menu item but with two downsides:

1. It won't be right-aligned as users are accustomed to seeing.

2. It won't have any functional effect, requiring as Craig noted that
   you also write a commandKeyDown handler, with conditionals within
   it to determine when it should be invoked and when it should be
   ignored.
WIth trapping commandkeydown messages, if you're working in the IDE you do have 
to be sure that you're paying attention to existing commandkey shortcuts. If 
the user types ctrl-A and the focus is on an editable field then the text of 
the field will be selected and your own handler won't fire off. If this is a 
standalone then you have more control.
FWIW, here's a modular way of managing popup menus that I use all the time. It 
requires about 5 minutes of setup (create a popup menu button, and paste a 
handler into your library stack) but then to pop up a menu and get the user 
choice you just do something like:

put popChoose("Audio","Video","Photo") into userChoice
switch userChoice
    ...

-- Peter

Peter M. Brigham
pmb...@gmail.com

--------

(watch line wraps)

function popChoose
    -- popChoose() is the equivalent of the "answer" command, but for a pop-up 
list
    -- pops up a list of options, returns the option chosen by the user,
    --    if no option chosen, exits to top
    -- you must have a button "contextualMenu"
    --    button style = menu, menumode = popup, name = "contextualMenu"
    --    the button should be placed in your mainstack or a library stack
    --    button can be made invisible when you're done, if you like
    -- the button script needs only one handler:
    --    on menupick what
    --       set the uSelection of me to what
    --    end menupick
    -- paste this popChoose handler into a suitable stack script,
    --    (mainstack or library) so it's available anywhere --
    --    put the button into same stack for convenience
    -- enter the short name of the stack containing the button
    --    into the constant declaration below
-- popChoose() can accept a cr-delimited list of choices
    --    or a comma-delimited list
    -- eg: put "parsley" & cr & "sage" & cr & "rosemary" into choiceList
    --     put popChoose(choiceList) into userChoice
    -- or: put popChoose(choice1,choice2,choice3) into userChoice
    -- or: put popChoose("parsley","sage","rosemary","-","thyme") \
       --           into userChoice
    -- if you need the line number of the chosen item, check the dialogdata
    --    after calling popChoose()
constant popChooseStackName = "yourLibraryStack" repeat with n = 1 to paramcount()
       put param(n) & cr after tList
    end repeat
    delete char -1 of tList
    put empty into u
    set the uSelection of btn "contextualMenu" of stack popChooseStackName to 
empty
    put tList into btn "contextualMenu" of stack popChooseStackName
    popup btn "contextualMenu" of stack popChooseStackName
    put the menuhistory of btn "contextualMenu" of stack popChooseStackName \
          into lineNbr
    put the uSelection of btn "contextualMenu" of stack popChooseStackName into 
u
    set the uSelection of btn "contextualMenu" of stack popChooseStackName to 
empty
    put empty into btn "contextualMenu" of stack popChooseStackName
    -- belt and suspenders, don't leave contents hanging around
    select empty
    if u = empty then exit to top
    -- ie, mouseRelease, no action, otherwise:
    set the dialogdata to lineNbr
    return u
end popChoose



_______________________________________________
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