2
$\begingroup$

I'm looking to create Dynamic menus with multiple options that would allow multiple selections.

For example, mousing over an object (let's say a black circle of radius 1), a menu would popup at MousePosition[] with two options of "red" and "5". Selecting "red" would create a new circle, red with radius of 1, and selecting both would give a red circle of radius = 5.

How would I create temporary/dynamic menus similar to the standard right-click (disappears after clicking away), except with multi-selection?

Edit: I got carried away with my end-goal example. All I am wondering is if Panel is the correct function to use here with multiple Checkboxes (the documentation examples did not have what I expected).

screenshot

$\endgroup$
  • $\begingroup$ Have a look at this thread, this may get you started. If I have time, I will port that answer here as an answer. $\endgroup$ – Leonid Shifrin Aug 21 '12 at 16:32
  • $\begingroup$ THanks Leonid, I'll look through that $\endgroup$ – Twoday Aug 21 '12 at 16:35
1
$\begingroup$

Something like:

Panel@DynamicModule[{color = Gray, radius = 1, ww = {}},
Mouseover[
   Graphics[{Dynamic@color, Disk[{0, 0}, Dynamic@radius], Gray, Circle[{0, 0}, 3]}],
   Dynamic[Panel[CheckboxBar[
      Dynamic[ww, {(ww = #; radius = If[MemberQ[ww, 1], 2, 1]; 
              color = If[MemberQ[ww, 2], Red, Gray]) &}],
      {1 -> "radius = 2", Delimiter, 2 -> "color = Red"},
   Appearance -> "Vertical", Appearance -> Small]]],
   ImageSize -> All]]

Screenshots:

view when mouse is over the panel:

enter image description here

views when mouse is off the panel:

enter image description here

enter image description here

enter image description here

$\endgroup$
  • $\begingroup$ Ahhh beautiful ~~Thank you. Could you explain why there are two Panels in your code? I believe the second Panel creates the panel with the checkboxbar, but what does the first line (Panel@DynamicModule) do? edit: oh wait, one of them makes the circle...? $\endgroup$ – Twoday Aug 21 '12 at 22:21
  • $\begingroup$ @Twoday, the outer panel is not essential. I used it to get the screenshots -- to crop the prt-scr image to appropriate size. $\endgroup$ – kglr Aug 21 '12 at 22:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.