Skip to content

Commit

Permalink
UI|Home: Added a Packages widget to the Packages column
Browse files Browse the repository at this point in the history
  • Loading branch information
skyjake committed Feb 13, 2016
1 parent 8d6e83d commit 9f73909
Show file tree
Hide file tree
Showing 5 changed files with 467 additions and 1 deletion.
33 changes: 33 additions & 0 deletions doomsday/apps/client/include/ui/home/packagescolumnwidget.h
@@ -0,0 +1,33 @@
/** @file packagescolumnwidget.h
*
* @authors Copyright (c) 2016 Jaakko Keränen <jaakko.keranen@iki.fi>
*
* @par License
* GPL: http://www.gnu.org/licenses/gpl.html
*
* <small>This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version. This program is distributed in the hope that it
* will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
* Public License for more details. You should have received a copy of the GNU
* General Public License along with this program; if not, see:
* http://www.gnu.org/licenses</small>
*/

#ifndef DENG_CLIENT_UI_HOME_PACKAGESCOLUMNWIDGET_H
#define DENG_CLIENT_UI_HOME_PACKAGESCOLUMNWIDGET_H

#include "columnwidget.h"

class PackagesColumnWidget : public ColumnWidget
{
public:
PackagesColumnWidget();

private:
DENG2_PRIVATE(d)
};

#endif // DENG_CLIENT_UI_HOME_PACKAGESCOLUMNWIDGET_H
41 changes: 41 additions & 0 deletions doomsday/apps/client/include/ui/home/packageswidget.h
@@ -0,0 +1,41 @@
/** @file packageswidget.h
*
* @authors Copyright (c) 2016 Jaakko Keränen <jaakko.keranen@iki.fi>
*
* @par License
* GPL: http://www.gnu.org/licenses/gpl.html
*
* <small>This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version. This program is distributed in the hope that it
* will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
* Public License for more details. You should have received a copy of the GNU
* General Public License along with this program; if not, see:
* http://www.gnu.org/licenses</small>
*/

#ifndef DENG_CLIENT_UI_HOME_PACKAGESWIDGET_H
#define DENG_CLIENT_UI_HOME_PACKAGESWIDGET_H

#include <de/GuiWidget>

/**
* Listing of packages with search and filtering options.
*
* Controls its own height; other position rules must be set by the owner.
*/
class PackagesWidget : public de::GuiWidget
{
public:
PackagesWidget(de::String const &name = "");

public slots:
void refreshPackages();

private:
DENG2_PRIVATE(d)
};

#endif // DENG_CLIENT_UI_HOME_PACKAGESWIDGET_H
3 changes: 2 additions & 1 deletion doomsday/apps/client/src/ui/home/homewidget.cpp
Expand Up @@ -21,6 +21,7 @@
#include "ui/home/nogamescolumnwidget.h"
#include "ui/home/gamecolumnwidget.h"
#include "ui/home/multiplayercolumnwidget.h"
#include "ui/home/packagescolumnwidget.h"
#include "ui/savedsessionlistdata.h"

#include <doomsday/doomsdayapp.h>
Expand Down Expand Up @@ -249,7 +250,7 @@ HomeWidget::HomeWidget()
column = new MultiplayerColumnWidget();
d->addColumn(column);

column = new ColumnWidget("packages-column");
column = new PackagesColumnWidget();
d->addColumn(column);

d->updateTabItems();
Expand Down
50 changes: 50 additions & 0 deletions doomsday/apps/client/src/ui/home/packagescolumnwidget.cpp
@@ -0,0 +1,50 @@
/** @file packagescolumnwidget.cpp
*
* @authors Copyright (c) 2016 Jaakko Keränen <jaakko.keranen@iki.fi>
*
* @par License
* GPL: http://www.gnu.org/licenses/gpl.html
*
* <small>This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version. This program is distributed in the hope that it
* will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
* Public License for more details. You should have received a copy of the GNU
* General Public License along with this program; if not, see:
* http://www.gnu.org/licenses</small>
*/

#include "ui/home/packagescolumnwidget.h"
#include "ui/home/packageswidget.h"

using namespace de;

DENG_GUI_PIMPL(PackagesColumnWidget)
{
PackagesWidget *packages;

Instance(Public *i) : Base(i)
{
ScrollAreaWidget &area = self.scrollArea();
area.add(packages = new PackagesWidget);
packages->rule()
.setInput(Rule::Width, area.contentRule().width())
.setInput(Rule::Top, self.header().rule().bottom() +
style().rules().rule("gap"))
.setInput(Rule::Left, area.contentRule().left());
}
};

PackagesColumnWidget::PackagesColumnWidget()
: ColumnWidget("packages-column")
, d(new Instance(this))
{
header().title().setText(_E(s) "\n" _E(.) + tr("Packages"));

scrollArea().setContentSize(maximumContentWidth(),
header().rule().height() +
style().rules().rule("gap") +
d->packages->rule().height());
}

0 comments on commit 9f73909

Please sign in to comment.