I just tried out the “forcedROMode” described in the docs in the ActionButtons section.
While implementing a “RO-Toggle” command, my demand came up: I’d like to edit the Action-Buttons “on-the-fly” to change a button/icon to represent the current status.
Would be nice, if the “actionbutton.define” function would get an “actionbutton.update” equivalent
(or maybe an “actionbutton.delete” to remove a button to create it new)
Dont’t know, if changing buttons at runtime is possible, anyway…
actionButton.define {
icon = (editor.getUiOption("forcedROMode") and "eye-off") or "eye",
run = function()
local mode = editor.getUiOption("forcedROMode")
editor.setUiOption("forcedROMode", not mode)
editor.rebuildEditorState()
editor.reloadConfigAndCommands()
end
}
Tried it and it works like a charm! Thanks again!
In fact, that basically is exactly what I tried to achieve.
The puzzle piece I was missing obviously is the “actionbutton.define” function.
Until now I used the "config.set { actionbuttons = … } definition.
And thanks for the idea to simply reload the config/UI. Did not see the forest for the trees here…
Only thing I have to figure out now is how to define the position of the button, as via “actionbuttons.define”, the button is placed at the end (which is only a cosmetic issue for me…)