refactor(api)!: one namespace per feature, screen split out
Namespaces were shared across features: `settings` was written by core, the
panel and touch, and `input` by touch and buttons. That made "does this
firmware implement the whole feature?" a question no pointer could answer.
Each namespace now belongs to exactly one feature or to core, so a feature is
a provider pointer and the compiler validates completeness:
gui, node -> screen, tree, under the screen feature
settings -> screen (rotation, theme), sys (timezone),
touch (calibration)
input -> touch, buttons
Runtime::open() no longer requires a GuiProvider; a firmware without one runs
with no screen/tree globals and reports sys.hasFeature("screen") false.
Rotation is one value again: GuiProvider::setRotation applies and persists, so
an app rotating the panel transiently puts the old value back itself.
This commit is contained in:
+3
-3
@@ -3,7 +3,7 @@ package.path = "./lua/lib/?.lua;" .. package.path
|
||||
local drawn = {}
|
||||
local roles = { "confirm", "back", "right" }
|
||||
|
||||
gui = {
|
||||
screen = {
|
||||
FONT_SMALL = 0,
|
||||
STYLE_NORMAL = 0,
|
||||
color = function(r, g, b)
|
||||
@@ -29,8 +29,8 @@ gui = {
|
||||
end,
|
||||
}
|
||||
|
||||
input = {
|
||||
getButtons = function()
|
||||
buttons = {
|
||||
getAll = function()
|
||||
return roles
|
||||
end,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user