From 4f2eb8232db76527a3670cab176ed43e0bc6a6b3 Mon Sep 17 00:00:00 2001 From: Kevin Whitaker Date: Sun, 19 Feb 2017 15:42:34 -0500 Subject: [PATCH] Now with more screens about to be added, move main interface to tab widgets. --- CMakeLists.txt | 2 +- src/ui/PlayerInterface.cpp | 9 ++++++++- src/ui/PlayerInterface.h | 6 ++++++ src/ui/RequestInterface.cpp | 20 ++++++++++++++++++++ src/ui/RequestInterface.h | 33 +++++++++++++++++++++++++++++++++ 5 files changed, 68 insertions(+), 2 deletions(-) create mode 100644 src/ui/RequestInterface.cpp create mode 100644 src/ui/RequestInterface.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 10a619d..fec0b32 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,7 +9,7 @@ find_package(Wt REQUIRED) find_package(Groove REQUIRED) find_package(TagLib REQUIRED) -add_executable(arbitrateor src/main.cpp src/WebInterface.cpp src/GroovePlayer.cpp src/ui/LoginInterface.cpp src/ui/PlayerInterface.cpp src/ui/TrackDetails.cpp) +add_executable(arbitrateor src/main.cpp src/WebInterface.cpp src/GroovePlayer.cpp src/ui/LoginInterface.cpp src/ui/PlayerInterface.cpp src/ui/TrackDetails.cpp src/ui/RequestInterface.cpp) target_link_libraries(arbitrateor ${Wt_LIBRARIES} ${GROOVE_LIBRARY} ${GROOVE_FINGERPRINT_LIBRARY} ${GROOVE_PLAYER_LIBRARY} ${TAGLIB_LIBRARY} pthread boost_system stdc++fs) #TODO get threading links based on platform. Remove gcc experimental fs when official c++17 exists. install(TARGETS arbitrateor RUNTIME DESTINATION bin) diff --git a/src/ui/PlayerInterface.cpp b/src/ui/PlayerInterface.cpp index be96cde..8f18f99 100644 --- a/src/ui/PlayerInterface.cpp +++ b/src/ui/PlayerInterface.cpp @@ -66,6 +66,11 @@ PlayerInterface::PlayerInterface(WebInterface* app) skipControls->addWidget(skipRequest); skipControls->addWidget(skipDeny); + mainDisplay = new Wt::WTabWidget(); + + voteMetaContainer = new Wt::WContainerWidget(); + voteMetaLayout = new Wt::WVBoxLayout(); + voteMetaContainer->setLayout(voteMetaLayout); voteControlContainer = new Wt::WContainerWidget(); voteControlContainer->setMaximumSize(Wt::WLength(75,Wt::WLength::Percentage),Wt::WLength::Auto); voteControlContainer->decorationStyle().setBackgroundColor(Wt::WColor("lightsteelblue")); @@ -117,10 +122,12 @@ PlayerInterface::PlayerInterface(WebInterface* app) interfaceLayout->addWidget(playControlWidget); interfaceLayout->addWidget(currentTrackProgress); - interfaceLayout->addWidget(voteControlContainer,0,Wt::AlignmentFlag::AlignCenter); + interfaceLayout->addWidget(mainDisplay); + mainDisplay->addTab(voteMetaContainer,"Up Next",Wt::WTabWidget::PreLoading); playControlWidget->addStyleClass("panel"); playControlWidget->addStyleClass("panel-default"); playControlWidget->decorationStyle().setBackgroundColor(Wt::WColor("gainsboro")); + voteMetaLayout->addWidget(voteControlContainer,0,Wt::AlignmentFlag::AlignCenter); playControlLayout->addWidget(playpause,0,Wt::AlignmentFlag::AlignLeft | Wt::AlignmentFlag::AlignMiddle); playControlLayout->addWidget(currentTrackDetails,0,Wt::AlignmentFlag::AlignCenter | Wt::AlignmentFlag::AlignMiddle); playControlLayout->addWidget(skipControls,0,Wt::AlignmentFlag::AlignRight | Wt::AlignmentFlag::AlignMiddle); diff --git a/src/ui/PlayerInterface.h b/src/ui/PlayerInterface.h index 240d961..ab9e386 100644 --- a/src/ui/PlayerInterface.h +++ b/src/ui/PlayerInterface.h @@ -21,6 +21,7 @@ #define PLAYERINTERFACE_H #include +#include #include #include #include "../WebInterface.h" @@ -52,7 +53,12 @@ public: Wt::WPushButton* skipRequest; Wt::WPushButton* skipDeny; + //TabView + Wt::WTabWidget* mainDisplay; + //Vote Controls + Wt::WContainerWidget* voteMetaContainer; + Wt::WVBoxLayout* voteMetaLayout; Wt::WContainerWidget* voteControlContainer; Wt::WContainerWidget* voteTracksContainer; Wt::WText* voteHeader; diff --git a/src/ui/RequestInterface.cpp b/src/ui/RequestInterface.cpp new file mode 100644 index 0000000..3263885 --- /dev/null +++ b/src/ui/RequestInterface.cpp @@ -0,0 +1,20 @@ +/* + * Copyright (C) 2017 Kevin Whitaker + * + * 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, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +#include "RequestInterface.h" diff --git a/src/ui/RequestInterface.h b/src/ui/RequestInterface.h new file mode 100644 index 0000000..8febc1b --- /dev/null +++ b/src/ui/RequestInterface.h @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2017 Kevin Whitaker + * + * 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, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +#ifndef REQUESTINTERFACE_H +#define REQUESTINTERFACE_H + +#include +#include "../WebInterface.h" + +class RequestInterface : public Wt::WContainerWidget +{ +public: + RequestInterface(WebInterface* app); + WebInterface* app; +}; + +#endif // REQUESTINTERFACE_H -- GitLab