diff --git a/src/ui/RequestInterface.cpp b/src/ui/RequestInterface.cpp index 8856ffe1ffe7bacece2b9d6dde75317f24bb8df7..e7870aaf7d2d1645f8e6c366daa515eb98f253d3 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 75ed664babfb34c9a4039f6b22a1d5963ba3eb79..e0334fddcc877b22d2af45c79433b617de1e6514 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