mirror of
https://github.com/mudita/MuditaOS.git
synced 2026-10-24 23:48:31 -04:00
Created structure and implementation for popup windows attachments on button actions into applications. Moved Volume window to fit into solution. BarGraph refactored.
99 lines
2.7 KiB
C++
99 lines
2.7 KiB
C++
// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
|
|
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
|
|
|
|
#include <module-gui/gui/input/InputEvent.hpp>
|
|
#include <i18n/i18n.hpp>
|
|
#include "VolumeWindow.hpp"
|
|
|
|
namespace gui
|
|
{
|
|
VolumeWindow::VolumeWindow(app::Application *app, const std::string &name) : AppWindow(app, name)
|
|
{
|
|
buildInterface();
|
|
}
|
|
|
|
void VolumeWindow::addVolumeText()
|
|
{
|
|
volumeText = new Label(this,
|
|
style::window::default_left_margin,
|
|
title->offset_h(),
|
|
style::window::default_body_width,
|
|
style::window::volume::title_height,
|
|
utils::localize.get(style::window::volume::title_key));
|
|
|
|
volumeText->setPenWidth(style::window::default_border_no_focus_w);
|
|
volumeText->setFont(style::window::font::mediumbold);
|
|
volumeText->setAlignment(gui::Alignment(gui::Alignment::Vertical::Center));
|
|
addWidget(volumeText);
|
|
}
|
|
|
|
void VolumeWindow::addVolumeBar()
|
|
{
|
|
volumeBar = new VBarGraph(this,
|
|
style::window::default_left_margin,
|
|
style::window::volume::bar::top_offset,
|
|
style::window::volume::bar::volume_levels);
|
|
}
|
|
|
|
void VolumeWindow::buildInterface()
|
|
{
|
|
AppWindow::buildInterface();
|
|
addVolumeText();
|
|
addVolumeBar();
|
|
}
|
|
|
|
void VolumeWindow::rebuild()
|
|
{}
|
|
|
|
void VolumeWindow::destroyInterface()
|
|
{
|
|
erase();
|
|
}
|
|
|
|
VolumeWindow::~VolumeWindow()
|
|
{
|
|
destroyInterface();
|
|
}
|
|
|
|
void VolumeWindow::onBeforeShow(ShowMode mode, SwitchData *data)
|
|
{
|
|
updateGraph();
|
|
}
|
|
|
|
bool VolumeWindow::onInput(const gui::InputEvent &inputEvent)
|
|
{
|
|
if (!inputEvent.isShortPress()) {
|
|
return false;
|
|
}
|
|
|
|
if ((inputEvent.isShortPress())) {
|
|
switch (inputEvent.keyCode) {
|
|
case KeyCode::KEY_VOLUP: {
|
|
application->increaseCurrentVolume();
|
|
updateGraph();
|
|
return true;
|
|
}
|
|
case KeyCode::KEY_VOLDN: {
|
|
application->decreaseCurrentVolume();
|
|
updateGraph();
|
|
return true;
|
|
}
|
|
case KeyCode::KEY_RF: {
|
|
application->returnToPreviousWindow();
|
|
return true;
|
|
}
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
return AppWindow::onInput(inputEvent);
|
|
}
|
|
|
|
void VolumeWindow::updateGraph()
|
|
{
|
|
application->getCurrentVolume(Volume);
|
|
volumeBar->setValue(Volume);
|
|
}
|
|
} // namespace gui
|