Can't Display Keyboard Shortcuts in Popups
Ray
ray at linkit.com
Wed Apr 20 16:33:29 EDT 2016
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
> pmbrig at 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 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