Version 1 (modified by landauf, 16 years ago) (diff) |
---|
ConsoleCommand
TracNav(TracNav/TOC_Development)?
Description
A ConsoleCommand is a function which can be called by the Shell?. ConsoleCommand inherits from Executor and adds some additional features used to bind commands to keys and to allow easy use in the Shell (like argument completion).
At the moment, a ConsoleCommand must call a static function. The command is of static nature too and exists for the whole time. But this will change in the future.
A ConsoleCommand can also be called directly from the code by using CommandExecutor. If you want to execute the same command over and over, see CommandEvaluation for more performance.
Usage
Creation
Creating a ConsoleCommand is usually really easy. Just write the following lines:
*.cc file:
#include "core/ConsoleCommand.h" SetConsoleCommand(ClassName, functionname, true);
Note: The last argument (true) means: create a shortcut for this command.
*.h file:
class ClassName { public: static returntype functionname(param1, param2, ...); };
Call
Now you can call the function by typing the functionname into the Shell?:
> functionname arg1 arg2 ... or > ClassName functionname arg1 arg2 ...
Note: The first variant works only if you enable the shortcut (true in SetConsoleCommand).
It's also possible to call the command directly from the code by using CommandExecutor:
CommandExecutor::execute("functionname arg1 arg2 ..."); or CommandExecutor::execute("ClassName functionname arg1 arg2 ...");
Attributes
There are several attributes you can set, some of them are inherited from Executor, some are new.
Inherited:
- description(description): Sets the description of the Executor (what the function does)
- descriptionParam(param number (0-4), description): Sets the description of an argument (what the argument does)
- descriptionReturnvalue(description): Sets the description of the return value (what the return value does)
- defaultValues(value1, …): Sets default values
- defaultValue(param number (0-4), value): Sets the default value for a given parameter
New:
- accessLevel(level): Sets the access level (see the chapter below)
- argumentCompleter(param number (0-4), completer): Sets the ArgumentCompleter for a given parameter (see the chapter below)
- keybindMode(mode):
- axisParamIndex(index):
- isAxisRelative(bool):
Chained attributes
You can specify all attributes from above in one single chained call, for example:
SetConsoleCommand(ClassName, functionname, true).description("Does something nice").defaultVal ues(10, "test", true, 1.234).argumentCompleter(0, autocompletion::completerfunction()).isA xisRelative(true);
Note: The attributes can be specified in any order.
Access Levels
Argument Completion
Attachments (1)
- ConsoleCommand.png (2.8 KB) - added by landauf 16 years ago.
Download all attachments as: .zip