Command Referencing

First of all, if you're extending Scenome via C++ you'll create a new module, a new command, and maybe a new interactive mode or new modifier. Make sure that your module is linked to SCENOME.EXE. After you compile the new module, run a Scenome application and open the customization center. If the command does not appear in the list of commands inside the customization center, your new command has not been recognized by your Scenome application. If you are extending a Scenome application via scripting, you must refresh the script links first and then look for the command in one of the categories. If your command is not recognized, you may have forgotten to generate a new GUID. In the case of C++ commands, check the GUID and command category before exploring module registration errors.

Source Names & Interface Names

You can use whatever naming conventions you like for commands implemented in C++ or as scripts. All existing commands in Scenome applications use Pascal Case ( also called Upper Camel Case ), where the first letter in each word is capitalized. Make sure the source name is clear and sensible. You can rename the "instance" of a command in the interface to whatever you like. For example, a script named WorksheetSetColorDay is actually named Gradient: Day in the interface. Of course, if you want to use the source name in the interface, feel free to do so. It is important to use a consistent, clean source name and interface name. Do not create duplicate source names as this can be very confusing.

You can use duplicate interface names in the interface but this should be avoided if at all practical. For example, "Properties..." appears in the Edit menu and the Worksheet menu, although each "command instance" in the interface is mapped to a different C++ command by a unique GUID. In the Edit menu the Properties... command is mapped to EditProperties and in the Worksheet menu the Properties... command is mapped to WorksheetProperties. To prevent confusion, the source name for each command is EditProperties and WorksheetProperties.


Each command has a category that is specified in its C++ or script source code. For example, if you are creating a command that fits into an existing category, such as modifier, make sure that you set the category to 'Modifier Commands'. Keeping your categories clean and organized is very important. Otherwise create a new category with an appropriate name. That way you'll be able to easily find your commands. Sample command categories are as follows:

Globally Unique Identifiers

Each command, whether implemented in C++ or as a script, MUST have its own GUID. If not, the command cannot be reliably mapped to a specific item in the interface! Don't use the same GUID for two commands!! That's even worse. Many Scenome applications have a command for generating GUIDs if you are unable to generate your own list.

Keyboard Macros

Items in the main menu and command menus often have a macro that enables you to use the keyboard to select the command. For example, File » Save is ALT + F + S. Never use duplicate macros in the main menu items and avoid doing so in the individual menus themselves as you'll find such duplicates quite aggravating. Please note, a keyboard macro is different from a keyboard accelerator. For example, the accelerator for File » Save is CTRL + S.