- Multiplayer - Launches lobby's battle tab
- Singleplayer - list of installed Lua scripts or launches singleplayer screen on the lobby client
- Settings - launches settings.exe
- Keybinds or Interface - some sort of button that will launch the mouse selection interface and keybinding editor. I think the two probably need to be combined into one program and with a user interface clean up. I think the selection editor is pretty user hostile right now.
- Help - should open a web browser and go to either the wiki or a new dedicated help page
- Credits - list of all the Spring developers, plus the GPL license and credit to any libraries used like SDL
- Lua UI - Turn on and off LuaUI scripts without starting a battle
That's why I'm pointing out that adding / moving / resizing the buttons and adding sub-menus is a must-have... that's your list, most projects will want credits for their designers / contributors, etc. and maybe explain their backstories, gameplay, etc., etc., which is all pretty easy if we can write simple button behaviors, i.e.:
pageZero = {
buttonOne = {"bitmaps/buttonOne.png",30,30,130,60,NavLocation = "pageTwo",},
}
To get there, we just need a few basics- ComboBox / Checkbox in addition to Navigation buttons, to facilitate writing a Settings presentation, a way to display a list of items with a scrollbar (using bitmaps specified), and a way to display bitmaps that aren't buttons (or they could be buttons, but buttons that don't do anything).
Add behaviors like Pxtl did with AppLauncher, where there is an alternative button graphic that's shown briefly before it navigates (minor visual polish) and it'd be good for the vast majority of uses, and flexible for weird ones.
In the end, players will launch a game, using parameters set- i.e., this Mission --> Map, SP vs. whatever AI / Lua, so there has to be a way to set up those parameters so that when players hit "Launch game" we can set up the proper ReHost and launch Spring with the desired behaviors.
The real challenge is going to be writing a Lua'd keybind application (I think somebody did that already, but that needs to be elegant and allow people to put in custom commands into a list- user clicks command, selects a key / keys to bind to, and it's now bound, etc.).