Skip to content

Commit 0b9caec

Browse files
committed
Update code docs
1 parent 528a2e4 commit 0b9caec

8 files changed

Lines changed: 147 additions & 24 deletions

docs/components_data_SceneManager.bs.html

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,13 @@
299299
dialog.observeField("buttonSelected", "optionSelected")
300300
dialog.observeField("wasClosed", "optionClosed")
301301
dialog.title = title
302-
dialog.message = message
302+
if message = invalid
303+
dialog.message = invalid
304+
else if type(message) = "roArray"
305+
dialog.message = message
306+
else
307+
dialog.message = [message]
308+
end if
303309
dialog.buttons = buttons
304310

305311
m.scene.dialog = dialog

docs/components_keyboards_HexKeyboard.bs.html

Lines changed: 60 additions & 7 deletions
Large diffs are not rendered by default.

docs/components_settings_settings.bs.html

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333

3434
m.hexSetting.observeField("submit", "onHexKeyGridSubmit")
3535
m.hexSetting.observeField("escape", "onHexKeyGridEscape")
36+
m.hexSetting.observeField("reset", "onHexResetRequested")
3637

3738
m.settingsMenu.setFocus(true)
3839
m.settingsMenu.observeField("itemFocused", "settingFocused")
@@ -91,6 +92,51 @@
9192
end if
9293
end sub
9394

95+
' Called when reset button is selected in HexKeyboard
96+
sub onHexResetRequested()
97+
m.global.sceneManager.callFunc("optionDialog", tr("Reset Setting"), tr("Are you sure? This will reset the setting to its default value."), [tr("Yes"), tr("No")])
98+
m.global.sceneManager.observeFieldScoped("dataReturned", "onResetDialogResponse")
99+
end sub
100+
101+
' Handle user response from reset confirmation dialog
102+
sub onResetDialogResponse()
103+
m.global.sceneManager.unobserveFieldScoped("dataReturned")
104+
105+
returnData = m.global.sceneManager.returnData
106+
if not isValid(returnData) then return
107+
108+
' User selected "No" or closed dialog
109+
if returnData.indexSelected <> 0
110+
m.hexSetting.findNode("resetButton").setFocus(true)
111+
return
112+
end if
113+
114+
' User confirmed reset - get default value from config tree
115+
selectedSetting = m.userLocation.peek().children[m.settingsMenu.itemFocused]
116+
configEntry = findConfigTreeKey(selectedSetting.settingName, m.configTree)
117+
118+
if not isValid(configEntry) or not isValid(configEntry.default)
119+
m.log.warn("Could not find default value for setting", selectedSetting.settingName)
120+
m.hexSetting.findNode("resetButton").setFocus(true)
121+
return
122+
end if
123+
124+
defaultValue = configEntry.default
125+
126+
' Track if theme color changed (requires UI refresh on exit)
127+
if selectedSetting.settingName.left(12) = "uiThemeColor"
128+
m.themeColorsChanged = true
129+
end if
130+
131+
' Update node field - observer handles registry persistence
132+
user.settings.Save(selectedSetting.settingName, defaultValue)
133+
134+
' Update the UI
135+
m.hexSetting.text = defaultValue
136+
137+
m.hexSetting.findNode("resetButton").setFocus(true)
138+
end sub
139+
94140
sub LoadMenu(configSection)
95141
if not isValid(configSection.children)
96142
' Load parent menu

docs/components_ui_button_TextButton.bs.html

Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
m.top.observeField("enabled", "onEnabledChanged")
1111
m.top.observeField("background", "onBackgroundChanged")
12+
m.top.observeField("border", "onBorderChanged")
1213
m.top.observeField("textColor", "onTextColorChanged")
1314
m.top.observeField("text", "onTextChanged")
1415
m.top.observeField("padding", "onPaddingChanged")
@@ -28,6 +29,7 @@
2829

2930
' Set default colors
3031
m.top.background = constants.colorBackgroundSecondary
32+
m.top.border = constants.colorBackgroundSecondary
3133
m.top.textColor = constants.colorTextPrimary
3234
m.top.focusBorder = constants.colorPrimary
3335
m.top.focusBackground = constants.colorBackgroundSecondary
@@ -36,32 +38,38 @@
3638

3739
sub onFocusChanged()
3840
if m.top.hasFocus()
39-
' Button border - change to focus color
4041
if m.top.enableBorder
4142
m.buttonBorder.blendColor = m.top.focusBorder
4243
else
43-
' Border disabled - ensure it stays invisible
4444
m.buttonBorder.blendColor = m.top.background
4545
end if
46-
' Button background
4746
m.buttonBackground.blendColor = m.top.focusBackground
48-
' Button text
4947
m.buttonText.color = m.top.textFocusColor
5048
else
51-
' Button border - match background color
52-
m.buttonBorder.blendColor = m.top.background
53-
' Button background
49+
if m.top.enableBorder
50+
m.buttonBorder.blendColor = m.top.border
51+
else
52+
m.buttonBorder.blendColor = m.top.background
53+
end if
5454
m.buttonBackground.blendColor = m.top.background
55-
' Button text
5655
m.buttonText.color = m.top.textColor
5756
end if
5857
end sub
5958

6059
sub onBackgroundChanged()
6160
m.buttonBackground.blendColor = m.top.background
62-
' Border matches background when not focused OR when borders are disabled
63-
if not m.top.hasFocus() or not m.top.enableBorder
64-
m.buttonBorder.blendColor = m.top.background
61+
if not m.top.hasFocus()
62+
if m.top.enableBorder
63+
m.buttonBorder.blendColor = m.top.border
64+
else
65+
m.buttonBorder.blendColor = m.top.background
66+
end if
67+
end if
68+
end sub
69+
70+
sub onBorderChanged()
71+
if not m.top.hasFocus() and m.top.enableBorder
72+
m.buttonBorder.blendColor = m.top.border
6573
end if
6674
end sub
6775

@@ -126,7 +134,15 @@
126134

127135
setFocusBorderSize()
128136

129-
' Show the button now that it's properly sized
137+
' Apply initial colors before showing
138+
m.buttonBackground.blendColor = m.top.background
139+
m.buttonText.color = m.top.textColor
140+
if m.top.enableBorder
141+
m.buttonBorder.blendColor = m.top.border
142+
else
143+
m.buttonBorder.blendColor = m.top.background
144+
end if
145+
130146
m.buttonBackground.visible = true
131147
m.buttonBorder.visible = true
132148
m.buttonText.visible = true
@@ -156,9 +172,11 @@
156172

157173
if m.top.enabled
158174
m.top.background = constants.colorBackgroundSecondary
175+
m.top.border = constants.colorBackgroundSecondary
159176
m.top.textColor = constants.colorTextPrimary
160177
else
161178
m.top.background = constants.colorBackgroundPrimary
179+
m.top.border = constants.colorBackgroundPrimary
162180
m.top.textColor = constants.colorTextDisabled
163181
end if
164182
end sub

docs/data/search.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

docs/module-HexKeyboard.html

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

docs/module-TextButton.html

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

docs/module-settings.html

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)