Navigation Menu

Skip to content

Commit

Permalink
Refactor|libappfw|Client: Fluent interface for widget Margins
Browse files Browse the repository at this point in the history
  • Loading branch information
skyjake committed Feb 24, 2014
1 parent f66dc5a commit 0ba6bff
Show file tree
Hide file tree
Showing 5 changed files with 53 additions and 48 deletions.
7 changes: 4 additions & 3 deletions doomsday/client/src/ui/dialogs/alertdialog.cpp
Expand Up @@ -170,9 +170,10 @@ DENG_GUI_PIMPL(AlertDialog)
label.setOverrideImageSize(style().fonts().font("default").height().value());
label.setImageAlignment(ui::AlignTop);
label.setTextAlignment(ui::AlignRight);
label.margins().setLeft("");
label.margins().setRight("");
label.margins().setBottom("");
label.margins()
.setLeft("")
.setRight("")
.setBottom("");

AlertItem const &alert = item.as<AlertItem>();
switch(alert.level())
Expand Down
8 changes: 4 additions & 4 deletions doomsday/client/src/ui/widgets/gameselectionwidget.cpp
Expand Up @@ -95,8 +95,7 @@ DENG_GUI_PIMPL(GameSelectionWidget)
title().setFont("title");
title().setTextColor("inverted.text");
title().setHoverTextColor("inverted.text", ButtonWidget::ReplaceColor);
title().setAlignment(ui::AlignLeft);
title().margins().setLeft("");
title().margins().setLeft("").setRight("");

switch(type)
{
Expand Down Expand Up @@ -126,8 +125,9 @@ DENG_GUI_PIMPL(GameSelectionWidget)

// This will be shown if there are no games in the subset.
noGames = LabelWidget::newWithText(_E(b) + tr("No games"), menu);
noGames->margins().setTop(style().rules().rule("gap") * 2);
noGames->margins().setBottom(noGames->margins().top());
noGames->margins()
.setTop (style().rules().rule("gap") * 2)
.setBottom(noGames->margins().top());
noGames->setFont("heading");
noGames->setTextColor("inverted.text");
noGames->setOpacity(.4f);
Expand Down
28 changes: 14 additions & 14 deletions doomsday/libappfw/include/de/framework/margins.h
Expand Up @@ -39,20 +39,20 @@ class LIBAPPFW_PUBLIC Margins
public:
Margins(String const &defaultMargin = "gap");

void setLeft (DotPath const &leftMarginId);
void setRight (DotPath const &rightMarginId);
void setTop (DotPath const &topMarginId);
void setBottom(DotPath const &bottomMarginId);
void set (ui::Direction dir, DotPath const &marginId);
void set (DotPath const &marginId);

void setLeft (Rule const &rule);
void setRight (Rule const &rule);
void setTop (Rule const &rule);
void setBottom(Rule const &rule);
void set (ui::Direction dir, Rule const &rule);
void set (Rule const &rule);
void setAll (Margins const &margins);
Margins &setLeft (DotPath const &leftMarginId);
Margins &setRight (DotPath const &rightMarginId);
Margins &setTop (DotPath const &topMarginId);
Margins &setBottom(DotPath const &bottomMarginId);
Margins &set (ui::Direction dir, DotPath const &marginId);
Margins &set (DotPath const &marginId);

Margins &setLeft (Rule const &rule);
Margins &setRight (Rule const &rule);
Margins &setTop (Rule const &rule);
Margins &setBottom(Rule const &rule);
Margins &set (ui::Direction dir, Rule const &rule);
Margins &set (Rule const &rule);
Margins &setAll (Margins const &margins);

Rule const &left() const;
Rule const &right() const;
Expand Down
49 changes: 27 additions & 22 deletions doomsday/libappfw/src/margins.cpp
Expand Up @@ -125,84 +125,89 @@ DENG2_PIMPL(Margins)
Margins::Margins(String const &defaultMargin) : d(new Instance(this, defaultMargin))
{}

void Margins::set(Direction dir, DotPath const &marginId)
Margins &Margins::set(Direction dir, DotPath const &marginId)
{
d->setInput(dir == Left? SideLeft :
dir == Right? SideRight :
dir == Up? SideTop : SideBottom, marginId);
return *this;
}

void Margins::set(DotPath const &marginId)
Margins &Margins::set(DotPath const &marginId)
{
set(Left, marginId);
set(Right, marginId);
set(Up, marginId);
set(Down, marginId);
return *this;
}

void Margins::setLeft(DotPath const &leftMarginId)
Margins &Margins::setLeft(DotPath const &leftMarginId)
{
set(ui::Left, leftMarginId);
return set(ui::Left, leftMarginId);
}

void Margins::setRight(DotPath const &rightMarginId)
Margins &Margins::setRight(DotPath const &rightMarginId)
{
set(ui::Right, rightMarginId);
return set(ui::Right, rightMarginId);
}

void Margins::setTop(DotPath const &topMarginId)
Margins &Margins::setTop(DotPath const &topMarginId)
{
set(ui::Up, topMarginId);
return set(ui::Up, topMarginId);
}

void Margins::setBottom(DotPath const &bottomMarginId)
Margins &Margins::setBottom(DotPath const &bottomMarginId)
{
set(ui::Down, bottomMarginId);
return set(ui::Down, bottomMarginId);
}

void Margins::set(Direction dir, Rule const &rule)
Margins &Margins::set(Direction dir, Rule const &rule)
{
d->setInput(dir == Left? SideLeft :
dir == Right? SideRight :
dir == Up? SideTop : SideBottom, rule);
return *this;
}

void Margins::set(Rule const &rule)
Margins &Margins::set(Rule const &rule)
{
set(Left, rule);
set(Right, rule);
set(Up, rule);
set(Down, rule);
return *this;
}

void Margins::setAll(Margins const &margins)
Margins &Margins::setAll(Margins const &margins)
{
if(this == &margins) return;
if(this == &margins) return *this;

set(Left, margins.left());
set(Right, margins.right());
set(Up, margins.top());
set(Down, margins.bottom());
return *this;
}

void Margins::setLeft(Rule const &rule)
Margins &Margins::setLeft(Rule const &rule)
{
set(ui::Left, rule);
return set(ui::Left, rule);
}

void Margins::setRight(Rule const &rule)
Margins &Margins::setRight(Rule const &rule)
{
set(ui::Right, rule);
return set(ui::Right, rule);
}

void Margins::setTop(Rule const &rule)
Margins &Margins::setTop(Rule const &rule)
{
set(ui::Up, rule);
return set(ui::Up, rule);
}

void Margins::setBottom(Rule const &rule)
Margins &Margins::setBottom(Rule const &rule)
{
set(ui::Down, rule);
return set(ui::Down, rule);
}

Rule const &Margins::left() const
Expand Down
9 changes: 4 additions & 5 deletions doomsday/libappfw/src/widgets/dialogwidget.cpp
Expand Up @@ -142,11 +142,10 @@ public ChildWidgetOrganizer::IFilter
{
heading = new LabelWidget;
heading->setFont("heading");
heading->margins().setBottom("");
heading->margins().setTop(style().rules().rule("gap") +
style().rules().rule("dialog.gap"));
heading->margins().setLeft(style().rules().rule("gap") +
style().rules().rule("dialog.gap"));
heading->margins()
.setBottom("")
.setTop (style().rules().rule("gap") + style().rules().rule("dialog.gap"))
.setLeft(style().rules().rule("gap") + style().rules().rule("dialog.gap"));
heading->setSizePolicy(ui::Expand, ui::Expand);
heading->setTextColor("accent");
heading->setAlignment(ui::AlignLeft);
Expand Down

0 comments on commit 0ba6bff

Please sign in to comment.