Add support for commands with dynamic help strings

Originally committed to SVN as r6326.
This commit is contained in:
Thomas Goyne 2012-01-20 21:33:30 +00:00
parent 64c7043123
commit b0c1ef2d6b
2 changed files with 7 additions and 2 deletions

View file

@ -79,8 +79,11 @@ namespace cmd {
/// This command's name may change based on the state of the project /// This command's name may change based on the state of the project
COMMAND_DYNAMIC_NAME = 8, COMMAND_DYNAMIC_NAME = 8,
/// This command's help string may change
COMMAND_DYNAMIC_HELP = 16,
/// This command's icon may change based on the state of the project /// This command's icon may change based on the state of the project
COMMAND_DYNAMIC_ICON = 16 COMMAND_DYNAMIC_ICON = 32
}; };
/// Holds an individual Command /// Holds an individual Command
@ -93,7 +96,7 @@ namespace cmd {
/// Plain string for display purposes; should normally be the same as StrMenu /// Plain string for display purposes; should normally be the same as StrMenu
/// but without accelerators /// but without accelerators
virtual wxString StrDisplay(const agi::Context *) const=0; virtual wxString StrDisplay(const agi::Context *) const=0;
/// Short help string descripting the command purpose. /// Short help string describing what the command does
virtual wxString StrHelp() const=0; virtual wxString StrHelp() const=0;
/// Get this command's type flags /// Get this command's type flags

View file

@ -148,6 +148,8 @@ class CommandManager {
int flags = c->Type(); int flags = c->Type();
if (flags & cmd::COMMAND_DYNAMIC_NAME) if (flags & cmd::COMMAND_DYNAMIC_NAME)
UpdateItemName(item); UpdateItemName(item);
if (flags & cmd::COMMAND_DYNAMIC_HELP)
item.second->SetHelp(c->StrHelp());
if (flags & cmd::COMMAND_VALIDATE) if (flags & cmd::COMMAND_VALIDATE)
item.second->Enable(c->Validate(context)); item.second->Enable(c->Validate(context));
if (flags & cmd::COMMAND_RADIO || flags & cmd::COMMAND_TOGGLE) { if (flags & cmd::COMMAND_RADIO || flags & cmd::COMMAND_TOGGLE) {