Initial commit

This commit is contained in:
Gericom
2025-11-22 17:21:45 +01:00
commit 5d6f67c612
517 changed files with 63025 additions and 0 deletions

View File

@@ -0,0 +1,48 @@
#pragma once
#include <memory>
#include "gui/views/ViewContainer.h"
#include "IconButtonView.h"
class MaterialColorScheme;
class AppBarView : public ViewContainer
{
public:
enum class Orientation
{
Horizontal,
Vertical
};
virtual ~AppBarView();
void SetButtonIcon(int button, u32 vramOffset)
{
_buttons[button]->SetIconVramOffset(vramOffset);
}
void SetButtonAction(int button, IconButtonView::button_action_t action, void* arg)
{
_buttons[button]->SetAction(action, arg);
}
Rectangle GetBounds() const override;
void Update() override;
View* MoveFocus(View* currentFocus, FocusMoveDirection direction, View* source) override;
void Focus(FocusManager& focusManager, int button);
constexpr Orientation GetOrientation() const { return _orientation; }
protected:
Orientation _orientation;
std::unique_ptr<IconButtonView*[]> _buttons;
int _startButtonCount;
int _endButtonCount;
void UpdateButtonPositionsHorizontal();
void UpdateButtonPositionsVertical();
int FindButtonIndex(const View* view);
AppBarView(int x, int y, Orientation orientation,
int startButtonCount, int endButtonCount, const MaterialColorScheme* materialColorScheme);
};