Re: Question on Dynamic with "DockedCell"
- To: mathgroup at smc.vnet.net
- Subject: [mg104140] Re: Question on Dynamic with "DockedCell"
- From: David Reiss <dbreiss at gmail.com>
- Date: Wed, 21 Oct 2009 06:27:50 -0400 (EDT)
- References: <hbjtn3$606$1@smc.vnet.net>
I realize that I didn't actually address your specific question
directly, but I hope that the tips I gave are applicable to your
problem...
--David
On Oct 20, 4:51 am, Jason Ledbetter <jasonbr... at gmail.com> wrote:
> Folk,
> I'm attempting to create a dynamically-appearing set of choices/menus usi=
ng
> ButtonBar in a notebook window but I've been unable to get the desired
> affect to date. I've cobbled together the following code which almost doe=
s
> what I'm looking for but I could use some pointers in getting the rest of
> the way.
>
> The goal here is for the "topMenu" items to appear when the notebook is
> first instantiated and for the "secondMenu" option to appear when a
> "topMenu" option is selected. As it stands now, I'm having to start with =
the
> "secondMenu" option pre-defined to a bogus value.
>
> If I were to abstract my goal some more, I'm trying to figure out how to
> dynamically add/remove RowBox items that include ButtonBars from the
> notebook based on options that are selected.
>
> I'm guessing that I somehow need to programmatically generate the content=
s
> of a Dynamically wrapped RowBox (e.g., Dynamic[RowBox[...]]) but I'm not
> quite sure how to go about that just yet.
>
> Any help is greatly appreciated...
>
> Here's what I have thus far:
>
> --snip--
> Module[
>
> {topMenu, secondMenu},
>
> topMenu = {"option1", "option2"};
> secondMenu = {"No option selected"};
>
> menuChoice[choice_] := Module[{},
> Switch[choice,
> "option1", secondMenu = {"one", "selected"},
> "option2", secondMenu = {"two", "selected"}, _, Print[choice=
]
> ]];
>
> CreateWindow[DockedCells -> Cell[
> RowBox[
> {
> ToBoxes[
> ButtonBar[ToString[#] :> menuChoice[#] & /@ topMenu]
> ],
> ToBoxes[
> Dynamic[
> ButtonBar[ToString[#] :> menuChoice[#] & /@ secondMenu=
]
> ]
> ]
> }
> ],
> "DockedCell"],
> TextAlignment -> Center
> ]
> ];
>
> --snip--
>
> thanks,
>
> -jbl