added external references for menus and message boxes too

This commit is contained in:
2026-03-05 14:27:57 -07:00
parent 0d93e4f1f9
commit 2d8f9aa005
5 changed files with 64 additions and 8 deletions
+30
View File
@@ -15,9 +15,12 @@ import (
"encoding/hex"
"errors"
"fmt"
"os"
"strings"
"git.erbosoft.com/amy/amsterdam/config"
"git.erbosoft.com/amy/amsterdam/util"
log "github.com/sirupsen/logrus"
"gopkg.in/yaml.v3"
)
@@ -80,6 +83,33 @@ func init() {
}
}
// setupMessageBoxes loads external message box definitions.
func setupMessageBoxes() {
if config.GlobalConfig.Resources.ExternalMessageDefinitions != "" {
b, err := os.ReadFile(config.GlobalConfig.Resources.ExternalMessageDefinitions)
if err == nil {
mb := new(MessageBoxDefs)
err = yaml.Unmarshal(b, mb)
if err == nil {
for i, def := range mb.D {
messageBoxDefs.table[def.Id] = &(mb.D[i])
mb.D[i].useConfirm = false
for _, b := range mb.D[i].Buttons {
if b.Confirm {
mb.D[i].useConfirm = true
break
}
}
}
} else {
log.Errorf("cannot parse external message definition file %s, ignored (%v)", config.GlobalConfig.Resources.ExternalMessageDefinitions, err)
}
} else {
log.Errorf("cannot read external message definition file %s, ignored (%v)", config.GlobalConfig.Resources.ExternalMessageDefinitions, err)
}
}
}
// MessageBox is the structure for a working message box.
type MessageBox struct {
def *MessageBoxDefinition