mirror of
https://github.com/mudita/MuditaOS.git
synced 2026-04-24 17:09:39 -04:00
There is need of popup window on volume key pressed event. This PR handles: Creating base popup window attached to application desktop. Creating volume window. Audio key events logic implementation.
54 lines
1.5 KiB
C++
54 lines
1.5 KiB
C++
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
|
|
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
|
|
|
|
#pragma once
|
|
|
|
#include <BoxLayout.hpp>
|
|
#include <module-gui/gui/widgets/ProgressBar.hpp>
|
|
|
|
namespace style::bargraph
|
|
{
|
|
constexpr inline auto rect_axis_length_sml = 8;
|
|
constexpr inline auto rect_axis_length_lrg = 20;
|
|
constexpr inline auto spacing = 17;
|
|
constexpr inline auto radius = 4;
|
|
} // namespace style::bargraph
|
|
|
|
namespace gui
|
|
{
|
|
class BarGraph : public Progress
|
|
{
|
|
protected:
|
|
std::vector<gui::Rect *> rectangles;
|
|
std::uint32_t numberOfRectangles;
|
|
std::uint32_t currentLevel = 0;
|
|
|
|
[[nodiscard]] auto createRectangle(std::uint32_t width, std::uint32_t height) const -> Rect *;
|
|
|
|
public:
|
|
void setPercentageValue(unsigned int value) override;
|
|
|
|
[[nodiscard]] auto getValue() const -> std::uint32_t
|
|
{
|
|
return currentLevel;
|
|
}
|
|
|
|
auto setValue(unsigned int value) -> bool override;
|
|
};
|
|
|
|
class VBarGraph : public VBox, public BarGraph
|
|
{
|
|
public:
|
|
VBarGraph(Item *parent = nullptr, Position x = 0, Position y = 0, uint32_t numberOfRectangles = 0);
|
|
void setMaximum(unsigned int value) final;
|
|
};
|
|
|
|
class HBarGraph : public HBox, public BarGraph
|
|
{
|
|
public:
|
|
HBarGraph(Item *parent = nullptr, Position x = 0, Position y = 0, uint32_t numberOfRectangles = 0);
|
|
void setMaximum(unsigned int value) final;
|
|
};
|
|
|
|
} /* namespace gui */
|