// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#include "module-apps/application-music-player/widgets/SongItem.hpp"
namespace gui
{
using namespace musicPlayerStyle;
SongItem::SongItem(const std::string &authorName, const std::string &songName, const std::string &duration)
{
setMinimumSize(songItem::w, songItem::h);
setMargins(Margins(0, style::margins::small, 0, style::margins::small));
vBox = new VBox(this, 0, 0, 0, 0);
vBox->setEdges(RectangleEdge::None);
firstHBox = new HBox(vBox, 0, 0, 0, 0);
firstHBox->setMinimumSize(songItem::w, songItem::bold_text_h);
firstHBox->setMargins(Margins(0, songItem::topMargin, 0, 0));
firstHBox->setReverseOrder(true);
firstHBox->setEdges(RectangleEdge::None);
secondHBox = new HBox(vBox, 0, 0, 0, 0);
secondHBox->setMinimumSize(songItem::w, songItem::text_h);
secondHBox->setMargins(Margins(0, songItem::topMargin, 0, 0));
secondHBox->setReverseOrder(true);
secondHBox->setEdges(RectangleEdge::None);
durationText = new TextFixedSize(firstHBox, 0, 0, 0, 0);
durationText->setMinimumSize(songItem::duration_w, songItem::text_h);
durationText->setMargins(Margins(0, 0, songItem::rightMargin, 0));
durationText->setEdges(RectangleEdge::None);
durationText->setUnderline(false);
durationText->setFont(style::window::font::verysmall);
durationText->setAlignment(Alignment(gui::Alignment::Horizontal::Right, gui::Alignment::Vertical::Center));
durationText->setEditMode(EditMode::Browse);
durationText->setText(duration);
songText = new TextFixedSize(firstHBox, 0, 0, 0, 0);
songText->setMinimumHeight(songItem::bold_text_h);
songText->setMaximumWidth(songItem::w);
songText->setMargins(Margins(songItem::leftMargin, 0, 0, 0));
songText->setEdges(RectangleEdge::None);
songText->setUnderline(false);
songText->setFont(style::window::font::verysmallbold);
songText->setAlignment(Alignment(gui::Alignment::Horizontal::Left, gui::Alignment::Vertical::Center));
songText->setEditMode(EditMode::Browse);
songText->setText(songName);
playedSong = new ImageBox(secondHBox, 0, 0, 0, 0, new Image("messages_error_W_M"));
playedSong->setMinimumSize(songItem::duration_w, songItem::text_h);
playedSong->setVisible(false);
playedSong->setEdges(RectangleEdge::None);
authorText = new TextFixedSize(secondHBox, 0, 0, 0, 0);
authorText->setMinimumHeight(songItem::text_h);
authorText->setMaximumWidth(songItem::w);
authorText->setMargins(Margins(songItem::leftMargin, 0, 0, 0));
authorText->setEdges(RectangleEdge::None);
authorText->setUnderline(false);
authorText->setFont(style::window::font::verysmall);
authorText->setAlignment(Alignment(gui::Alignment::Horizontal::Left, gui::Alignment::Vertical::Center));
authorText->setEditMode(EditMode::Browse);
authorText->setText(authorName);
dimensionChangedCallback = [&]([[maybe_unused]] gui::Item &item, const BoundingBox &newDim) -> bool {
vBox->setArea({0, 0, newDim.w, newDim.h});
return true;
};
}
} /* namespace gui */