There is a workaround and current implementation of WTabWidget
allow you access its contents stack like this:
Wt::WTabWidget* tw = new WTabWidget();
Wt::WStackedWidget* cs = tw->addTab(..)->menu()->contentsStack();
// you code next

But its not so elegant :-). But its just works.

2010/10/26 Raindog <[email protected]>

> What I ended up doing was copy/pasting WTabWidget, as I didn't want to
> also be responsible for coding all of the look and feel code too. I
> think in a future version of Wt, perhaps there should be a field to
> provide ones own stackedwidget to WTabWidget.
>
> On 10/26/2010 2:06 AM, Dmitriy Igrishin wrote:
> > Hey Raindog,
> >
> > WTabWidget - is a ready to use widget which uses WMenu with specific
> > styling. If you need full control of contents stack (aka WStackedWidget)
> > you can use pure WMenu and WStackedWidget.
> >
> > 2010/10/26 Raindog <[email protected]
> > <mailto:[email protected]>>
> >
> >     On 10/26/2010 1:03 AM, Raindog wrote:
> >     > Hello,
> >     >
> >     > I'm trying to use a WTabWidget to implement a navigation tool bar
> >     > (basically a horizontal menu, where when a tab is clicked, it loads
> >     > different content. The problem I have is that the way that WMenu
> and
> >     > WTabWidget work is that you create a menu/tab item, and then
> >     pass in a
> >     > WWidget* that you want to have displayed when the user clicks
> >     the menu
> >     > item and the menu control itself takes care of positioning the
> >     widget
> >     > either below or to the side of the menu.
> >     >
> >     > What I want to do is to be able to take control of where the
> >     widget is
> >     > positioned on the page without regard to the position of the
> >     actual menu
> >     > itself, so what I did was I passed in NULL pointers to the addTab,
> I
> >     > stored the index along with the widget i wanted associated with
> >     that tab
> >     > and connected the currentChanged event to a handler, that would
> >     look up
> >     > the widget from a std::map, remove the old widget from being
> >     displayed,
> >     > and add in the new widget.
> >     >
> >     > Like this:
> >     >
> >     >       void navBarChanged(int tabClicked)
> >     >       {
> >     >           Wt::WLayoutItem *item =
> >     layout->itemAt(Wt::WBorderLayout::Center);
> >     >           layout->removeItem(item);
> >     >           layout->addWidget(tabbedControls[tabClicked],
> >     > Wt::WBorderLayout::Center);
> >     >       }
> >     >
> >     > layout is a WHBoxLayout.
> >     >
> >     > My goal is to make my navigation bar decoupled from the rest of the
> >     > layout of the site and make one main component responsible for all
> >     > layout logic.
> >     >
> >     > However, after implementing the solution I described, I
> >     discovered that
> >     > removing and a new item to the layout does not actually cause it
> >     to be
> >     > displayed.
> >     >
> >     > Any suggestions on how to go about dynamically adding and removing
> >     > content to a layout?
> >     >
> >     > Thanks.
> >     >
> >     >
> >     >
> >
> >     So I've done some more searching and it looks like what I would
> really
> >     need is the ability to set the WStackedWidget in WTabWidget to one
> >     that
> >     I have already constructed, and hence can give to a layout of my
> >     choosing. Since the parts of the WTabWidget interface that are
> >     important
> >     are private, besides copy paste and creating a MyTabWidget, does
> >     anyone
> >     have any other suggestions that I can do to accomplish this?
> >
> >     Thanks.
> >
> >
> >
> ------------------------------------------------------------------------------
> >     Nokia and AT&T present the 2010 Calling All Innovators-North
> >     America contest
> >     Create new apps & games for the Nokia N8 for consumers in  U.S.
> >     and Canada
> >     $10 million total in prizes - $4M cash, 500 devices, nearly $6M in
> >     marketing
> >     Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi
> >     Store
> >     http://p.sf.net/sfu/nokia-dev2dev
> >     _______________________________________________
> >     witty-interest mailing list
> >     [email protected]
> >     <mailto:[email protected]>
> >     https://lists.sourceforge.net/lists/listinfo/witty-interest
> >
> >
> >
> >
> > --
> > // Dmitriy.
> >
> >
> >
> >
> ------------------------------------------------------------------------------
> > Nokia and AT&T present the 2010 Calling All Innovators-North America
> contest
> > Create new apps&  games for the Nokia N8 for consumers in  U.S. and
> Canada
> > $10 million total in prizes - $4M cash, 500 devices, nearly $6M in
> marketing
> > Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
> > http://p.sf.net/sfu/nokia-dev2dev
> >
> >
> > _______________________________________________
> > witty-interest mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/witty-interest
> >
>
>
>
> ------------------------------------------------------------------------------
> Nokia and AT&T present the 2010 Calling All Innovators-North America
> contest
> Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
> $10 million total in prizes - $4M cash, 500 devices, nearly $6M in
> marketing
> Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
> http://p.sf.net/sfu/nokia-dev2dev
> _______________________________________________
> witty-interest mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/witty-interest
>



-- 
// Dmitriy.
------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store 
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
witty-interest mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/witty-interest

Reply via email to