mirror of
https://github.com/mudita/MuditaOS.git
synced 2026-01-01 02:19:00 -05:00
* Added new widget SongsListViewItem implementing ListViewWithLabels that can be added as SettingsListItem. * Changed horizontal list in pre-wakeup to vertical using that new widget.
66 lines
2.1 KiB
C++
66 lines
2.1 KiB
C++
// Copyright (c) 2017-2024, Mudita Sp. z.o.o. All rights reserved.
|
|
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
|
|
|
|
#pragma once
|
|
|
|
#include <ThreeBox.hpp>
|
|
#include <ImageBox.hpp>
|
|
|
|
namespace style::bell_base_layout
|
|
{
|
|
constexpr inline auto w = style::window_width;
|
|
constexpr inline auto h = style::window_height;
|
|
constexpr inline auto first_layout_min_h = 30U;
|
|
constexpr inline auto first_top_margin = 38U;
|
|
constexpr inline auto first_layout_w = 448U;
|
|
constexpr inline auto first_layout_h = 102U;
|
|
constexpr inline auto last_layout_w = 448U;
|
|
constexpr inline auto last_layout_h = 127U;
|
|
constexpr inline auto outer_layouts_w = 448U;
|
|
constexpr inline auto outer_layouts_h = 102U;
|
|
constexpr inline auto center_layout_w = w;
|
|
constexpr inline auto center_layout_h = 200U;
|
|
constexpr inline auto arrows_layout_w = 504U;
|
|
constexpr inline auto info_box_top_margin = 18U;
|
|
} // namespace style::bell_base_layout
|
|
|
|
namespace gui
|
|
{
|
|
class BellBaseLayout : public VThreeBox<VBox, VBox, VBox>
|
|
{
|
|
public:
|
|
enum class LayoutType
|
|
{
|
|
WithArrows,
|
|
WithoutArrows
|
|
};
|
|
|
|
enum class Arrow
|
|
{
|
|
Left,
|
|
Right
|
|
};
|
|
|
|
explicit BellBaseLayout(Item *parent,
|
|
Position x = 0,
|
|
Position y = 0,
|
|
Length w = 0,
|
|
Length h = 0,
|
|
LayoutType type = LayoutType::WithArrows);
|
|
|
|
[[nodiscard]] Item *getCenterBox() const noexcept;
|
|
void resizeCenter();
|
|
void resize();
|
|
|
|
void setArrowVisible(Arrow arrow, bool isVisible);
|
|
void setMinMaxArrowsVisibility(bool minCondition, bool maxCondition);
|
|
|
|
private:
|
|
HThreeBox<HBox, HBox, HBox> *arrowsThreeBox = nullptr;
|
|
ImageBox *leftArrow = nullptr;
|
|
ImageBox *rightArrow = nullptr;
|
|
|
|
void addSideArrows();
|
|
};
|
|
} /* namespace gui */
|