Skip to content

Commit

Permalink
Widgets|libappfw: Added an optional close button to DocumentPopupWidget
Browse files Browse the repository at this point in the history
  • Loading branch information
skyjake committed Jun 18, 2016
1 parent e655e65 commit 437d59f
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 0 deletions.
Expand Up @@ -38,6 +38,8 @@ class LIBAPPFW_PUBLIC DocumentPopupWidget : public PopupWidget
DocumentPopupWidget(String const &name = "");
DocumentPopupWidget(ButtonWidget *actionButton, String const &name = "");

void enableCloseButton(bool enable);

void setPreferredHeight(Rule const &preferredHeight);
void setPreferredHeight(Rule const &preferredHeight, Rule const &maxHeight);

Expand Down
25 changes: 25 additions & 0 deletions doomsday/sdk/libappfw/src/widgets/documentpopupwidget.cpp
Expand Up @@ -17,13 +17,15 @@
*/

#include "de/DocumentPopupWidget"
#include "de/ButtonWidget"

namespace de {

DENG2_PIMPL_NOREF(DocumentPopupWidget)
{
DocumentWidget *doc;
ButtonWidget *button = nullptr;
ButtonWidget *close = nullptr;
};

DocumentPopupWidget::DocumentPopupWidget(String const &name)
Expand Down Expand Up @@ -65,6 +67,29 @@ DocumentPopupWidget::DocumentPopupWidget(ButtonWidget *actionButton, String cons
setContent(box);
}

void DocumentPopupWidget::enableCloseButton(bool enable)
{
if (enable && !d->close)
{
d->close = new ButtonWidget;
d->close->setColorTheme(Inverted);
d->close->setStyleImage("close.ringless", "small");
d->close->margins().set("dialog.gap").setTopBottom("unit");
d->close->setImageColor(d->close->textColorf());
d->close->setSizePolicy(ui::Expand, ui::Expand);
d->close->setActionFn([this] () { close(); });
d->close->rule()
.setInput(Rule::Top, rule().top() + margins().top())
.setInput(Rule::Right, rule().right() - margins().right());
add(d->close);
}
else if (!enable && d->close)
{
delete d->close;
d->close = nullptr;
}
}

void DocumentPopupWidget::setPreferredHeight(Rule const &preferredHeight)
{
d->doc->rule().setInput(Rule::Height,
Expand Down

0 comments on commit 437d59f

Please sign in to comment.