popUp a button with itself on modified mouseDown?

Peter Brigham pmbrig at gmail.com
Wed Jul 2 08:16:26 EDT 2014


I'm late to this discussion but here's what I do. It's a modular solution,
and I use it a lot. It's great for contextual menus for right-clicking in a
field (customize the button contents depending on context) and I've often
used it for just what you are doing, to offer a popup list on
right-clicking a standard button. Once it's set up you will likely find
yourself using it for lots of things, since calling it is as simple as:
   put popChoose("Vera","Chuck","Dave","-","Lovely Rita","Nowhere Man")
into uChoice

function popChoose
   -- create a popup button in your mainstack or a library stack
   --    button style = menu, menumode = popup, name = "contextualMenu"
   --    button script:
   --      on menupick what
   --         set the uSelection of me to what
   --      end menupick
   -- make the button invisible when you're done, if needed

   -- then paste this handler into a suitable stack script, so it's
available anywhere
   --    could be the same stack the button is in, but that's not necessary
   -- 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 "Vera" & cr & "Chuck" & cr & "Dave" into choiceList
   --     put popChoose(choiceList) into userChoice
   -- or: put popChoose(choice1,choice2,choice3) into userChoice
   -- or: put popChoose("One","Two","Three") into userChoice

   constant popChooseStackName = "yourLibraryStack"

   put the params into tList
   put offset("(",tList) into q
   delete char 1 to q of tList
   delete char -1 of tList
   replace comma & space & quote with comma & quote in tList
   replace quote & comma & quote with cr in tList
   if char 1 of tList = quote then delete char 1 of tList
   if char -1 of tList = quote then 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 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
   end if
   return u
end popChoose

-- Peter

Peter M. Brigham
pmbrig at gmail.com
http://home.comcast.net/~pmbrig


On Mon, Jun 30, 2014 at 7:36 PM, Michael Doub <mikedoub at gmail.com> wrote:

> create a popup button
> move it to -100,-100
>
> create your standard visible button with the following script:
>
> on mousedown thebutton
>       popup button "x"
>    else
>       beep
>    end if
> end mousedown
>
> Does this do what you want?
>
> -= Mike
>
>
>
> On Jun 30, 2014, at 7:19 PM, Dr. Hawkins <dochawk at gmail.com> wrote:
>
> > On Mon, Jun 30, 2014 at 4:17 PM, Michael Doub <mikedoub at gmail.com>
> wrote:
> >
> >> Take a look at the button style, menumode and general appearance
> >> properties.  I would think that you could dynamicly change the style and
> >> menu mode and general appearance.   Just a thought….
> >
> >
> > Within limits, it does that so far.
> >
> > The code I have successfully changes the button type; my problem is
> getting
> > the now-popup to pop.
> >
> > --
> > Dr. Richard E. Hawkins, Esq.
> > (702) 508-8462
> > _______________________________________________
> > 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
>
> _______________________________________________
> 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