Navigation Menu

Skip to content

Commit

Permalink
UI|Client: Use a TabWidget for game session filtering
Browse files Browse the repository at this point in the history
  • Loading branch information
skyjake committed Feb 19, 2014
1 parent 393f4fa commit 2ea334f
Showing 1 changed file with 27 additions and 14 deletions.
41 changes: 27 additions & 14 deletions doomsday/client/src/ui/widgets/gamefilterwidget.cpp
Expand Up @@ -22,14 +22,16 @@
#include <de/ChoiceWidget>
#include <de/SequentialLayout>
#include <de/DialogContentStylist>
#include <de/TabWidget>

using namespace de;

DENG2_PIMPL(GameFilterWidget)
{
ButtonWidget *sp;
ButtonWidget *mp;
ButtonWidget *all;
TabWidget *tabs;
//ButtonWidget *sp;
//ButtonWidget *mp;
//ButtonWidget *all;
LabelWidget *sortLabel;
ChoiceWidget *sortBy;
DialogContentStylist stylist;
Expand All @@ -39,33 +41,44 @@ DENG2_PIMPL(GameFilterWidget)
stylist.setContainer(self);

// Create widgets.
self.add(sp = new ButtonWidget);
self.add(mp = new ButtonWidget);
self.add(all = new ButtonWidget);
//self.add(sp = new ButtonWidget);
//self.add(mp = new ButtonWidget);
//self.add(all = new ButtonWidget);
self.add(tabs = new TabWidget);
sortLabel = LabelWidget::newWithText(tr("Sort By:"), &self);
self.add(sortBy = new ChoiceWidget);

sp->setText(tr("Singleplayer"));
mp->setText(tr("Multiplayer"));
all->setText(tr("All"));
tabs->items()
<< new TabItem(tr("Singleplayer"))
<< new TabItem(tr("Multiplayer"))
<< new TabItem(tr("All Games"));

sortLabel->setTextColor("inverted.text");
sortLabel->setFont("tab.label");
sortBy->setFont("tab.label");
sortBy->setOpeningDirection(ui::Down);
sortBy->items()
<< new ChoiceItem(tr("Title"), SortByTitle)
<< new ChoiceItem(tr("Identity key"), SortByIdentityKey);

SequentialLayout layout(self.rule().right(), self.rule().top(), ui::Left);
layout << *sortBy << *sortLabel;

AutoRef<Rule> sum(sp->rule().width() + mp->rule().width() + all->rule().width());
SequentialLayout blay(self.rule().left() + self.rule().width() / 2 - sum / 2,
self.rule().top(), ui::Right);
blay << *sp << *mp << *all;
//AutoRef<Rule> sum(sp->rule().width() + mp->rule().width() + all->rule().width());
//SequentialLayout blay(self.rule().left() + self.rule().width() / 2 - sum / 2,
// self.rule().top(), ui::Right);
// blay << *sp << *mp << *all;

tabs->rule()
.setInput(Rule::Width, self.rule().width())
.setInput(Rule::Left, self.rule().left())
.setInput(Rule::Top, self.rule().top());
}
};

GameFilterWidget::GameFilterWidget(String const &name)
: GuiWidget(name), d(new Instance(this))
{
rule().setInput(Rule::Height, d->sp->rule().height());
rule().setInput(Rule::Height, d->tabs->rule().height());
}

0 comments on commit 2ea334f

Please sign in to comment.