module refactor completion
This commit is contained in:
36
flexlove/GuiState.lua
Normal file
36
flexlove/GuiState.lua
Normal file
@@ -0,0 +1,36 @@
|
||||
-- ====================
|
||||
-- GUI State Module
|
||||
-- ====================
|
||||
-- Shared state between Gui and Element to avoid circular dependencies
|
||||
|
||||
---@class GuiState
|
||||
local GuiState = {
|
||||
-- Top-level elements
|
||||
topElements = {},
|
||||
|
||||
-- Base scale configuration
|
||||
baseScale = nil, -- {width: number, height: number}
|
||||
|
||||
-- Current scale factors
|
||||
scaleFactors = { x = 1.0, y = 1.0 },
|
||||
|
||||
-- Default theme name
|
||||
defaultTheme = nil,
|
||||
|
||||
-- Currently focused element (for keyboard input)
|
||||
_focusedElement = nil,
|
||||
|
||||
-- Active event element (for current frame)
|
||||
_activeEventElement = nil,
|
||||
|
||||
-- Cached viewport dimensions
|
||||
_cachedViewport = { width = 0, height = 0 },
|
||||
}
|
||||
|
||||
--- Get current scale factors
|
||||
---@return number, number -- scaleX, scaleY
|
||||
function GuiState.getScaleFactors()
|
||||
return GuiState.scaleFactors.x, GuiState.scaleFactors.y
|
||||
end
|
||||
|
||||
return GuiState
|
||||
Reference in New Issue
Block a user