From 8c8a6c30f1bbac3232fdfde2bcc3d6eee3c9a9d3 Mon Sep 17 00:00:00 2001 From: Kevin Whitaker Date: Sun, 19 Feb 2017 18:17:56 -0500 Subject: [PATCH] Set up basic request layout to fill with logic. --- src/ui/RequestInterface.cpp | 26 ++++++++++++++++++++++++ src/ui/RequestInterface.h | 40 +++++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) diff --git a/src/ui/RequestInterface.cpp b/src/ui/RequestInterface.cpp index 8856ffe..e7870aa 100644 --- a/src/ui/RequestInterface.cpp +++ b/src/ui/RequestInterface.cpp @@ -22,5 +22,31 @@ RequestInterface::RequestInterface(WebInterface* app) { this->app = app; + mainLayout = new Wt::WVBoxLayout(); + searchHeader = new Wt::WContainerWidget(); + searchLayout = new Wt::WHBoxLayout(); + searchBox = new Wt::WLineEdit(); + searchBtn = new Wt::WPushButton(); + resultBody = new Wt::WContainerWidget(); + resultLayout = new Wt::WGridLayout(); + + this->setLayout(mainLayout); + mainLayout->addWidget(searchHeader,0,Wt::AlignmentFlag::AlignCenter); + mainLayout->addWidget(resultBody); + + searchHeader->setLayout(searchLayout); + searchBtn->setTextFormat(Wt::XHTMLText); + searchBtn->decorationStyle().font().setFamily(Wt::WFont::Default,"FontAwesome"); + searchBtn->setText(""); + searchLayout->addWidget(searchBox); + searchLayout->addWidget(searchBtn); + //TODO:btn connections + + resultBody->setLayout(resultLayout); + +} + +void RequestInterface::trackRequestClicked(AudioTrack track) +{ //TODO } diff --git a/src/ui/RequestInterface.h b/src/ui/RequestInterface.h index 75ed664..e0334fd 100644 --- a/src/ui/RequestInterface.h +++ b/src/ui/RequestInterface.h @@ -22,6 +22,12 @@ #include #include "../WebInterface.h" +#include +#include +#include +#include +#include +#include "TrackDetails.h" class RequestInterface : public Wt::WContainerWidget { @@ -29,8 +35,42 @@ public: RequestInterface(WebInterface* app); WebInterface* app; + class RequestItem : public Wt::WContainerWidget + { + public: + TrackDetails* track; + Wt::WHBoxLayout* layout; + Wt::WPushButton* voteBtn; + RequestInterface* parent; + void requestClicked() { + this->parent->trackRequestClicked(track->extractTrackFromDetails()); + }; + RequestItem(RequestInterface* parent, AudioTrack track) { + this->track = new TrackDetails(); + this->track->updateWithTrackDetails(track); + layout = new Wt::WHBoxLayout(); + voteBtn = new Wt::WPushButton(); + this->parent = parent; + + this->setLayout(layout); + voteBtn->setTextFormat(Wt::XHTMLText); + voteBtn->decorationStyle().font().setFamily(Wt::WFont::Default,"FontAwesome"); + voteBtn->setText(""); + layout->addWidget(this->track,1,Wt::AlignmentFlag::AlignMiddle | Wt::AlignmentFlag::AlignLeft); + layout->addWidget(voteBtn,0,Wt::AlignmentFlag::AlignMiddle | Wt::AlignmentFlag::AlignRight); + voteBtn->clicked().connect(this, &RequestItem::requestClicked); + }; + }; + + Wt::WVBoxLayout* mainLayout; Wt::WContainerWidget* searchHeader; + Wt::WHBoxLayout* searchLayout; + Wt::WLineEdit* searchBox; + Wt::WPushButton* searchBtn; Wt::WContainerWidget* resultBody; + Wt::WGridLayout* resultLayout; + + void trackRequestClicked(AudioTrack track); }; #endif // REQUESTINTERFACE_H -- GitLab