Implement UI scaling and more (#501)
**New Features** * Runtime font accessors and new symbol fonts for text, launcher, statusbar, and shared icons. * Added font height base setting to device.properties * Text fonts now have 3 sizes: small, default, large **Improvements** * Renamed `UiScale` to `UiDensity` * Statusbar, toolbar and many UI components now compute heights and spacing from fonts/density. * SSD1306 initialization sequence refined for more stable startup. * Multiple image assets replaced by symbol-font rendering. * Many layout improvements related to density, font scaling and icon scaling * Updated folder name capitalization for newer style
This commit is contained in:
committed by
GitHub
parent
72c9b2b113
commit
9a11e6f47b
@@ -1,6 +1,8 @@
|
||||
#pragma once
|
||||
|
||||
#include <Tactility/hal/sdcard/SdCardDevice.h>
|
||||
#include <memory>
|
||||
#include <tactility/hal/Device.h>
|
||||
#include <vector>
|
||||
|
||||
namespace tt::hal {
|
||||
|
||||
@@ -11,9 +13,9 @@ typedef std::vector<std::shared_ptr<Device>> DeviceVector;
|
||||
typedef std::shared_ptr<Device> (*CreateDevice)();
|
||||
|
||||
/** Affects LVGL widget style */
|
||||
enum class UiScale {
|
||||
enum class UiDensity {
|
||||
/** Ideal for very small non-touch screen devices (e.g. Waveshare S3 LCD 1.3") */
|
||||
Smallest,
|
||||
Compact,
|
||||
/** Nothing was changed in the LVGL UI/UX */
|
||||
Default
|
||||
};
|
||||
@@ -25,7 +27,7 @@ struct Configuration {
|
||||
const InitBoot initBoot = nullptr;
|
||||
|
||||
/** Modify LVGL widget size */
|
||||
const UiScale uiScale = UiScale::Default;
|
||||
const UiDensity uiDensity = UiDensity::Default;
|
||||
|
||||
const std::function<DeviceVector()> createDevices = [] { return DeviceVector(); };
|
||||
};
|
||||
|
||||
@@ -7,8 +7,6 @@
|
||||
namespace tt::lvgl {
|
||||
|
||||
constexpr auto STATUSBAR_ICON_LIMIT = 8;
|
||||
constexpr auto STATUSBAR_ICON_SIZE = 20;
|
||||
constexpr auto STATUSBAR_HEIGHT = STATUSBAR_ICON_SIZE + 2;
|
||||
|
||||
/** Create a statusbar widget. Needs to be called with LVGL lock. */
|
||||
lv_obj_t* statusbar_create(lv_obj_t* parent);
|
||||
@@ -28,4 +26,6 @@ void statusbar_icon_set_image(int8_t id, const std::string& image);
|
||||
/** Update the visibility for an icon on the statusbar. Does not need to be called with LVGL lock. */
|
||||
void statusbar_icon_set_visibility(int8_t id, bool visible);
|
||||
|
||||
int statusbar_get_height();
|
||||
|
||||
} // namespace
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
#pragma once
|
||||
|
||||
#include "../app/AppContext.h"
|
||||
#include "Tactility/Tactility.h"
|
||||
|
||||
#include <lvgl.h>
|
||||
|
||||
namespace tt::lvgl {
|
||||
|
||||
#define TOOLBAR_ACTION_LIMIT 4
|
||||
|
||||
/** Create a toolbar widget that shows the app name as title */
|
||||
|
||||
Reference in New Issue
Block a user