~~Title: New Script Templates~~
You can create your own templates for new scripts in other languages if desired.
Templates should be stored in the `/dopusdata/Script AddIns/Templates` folder (create this if it doesn't already exist). Each template file should be named after the language with an appropriate extension for scripts in that language. For example, `Python.py`.
Below is an example template for new Python scripts.
[language]
comment = #
true = True
false = False
[AddColumnIntro]
%object%._FlagAsMethod('AddColumn')
[AddColumn]
col = %object%.AddColumn()
col.name = "%column%"
col.method = "On%column%"
col.label = "%column%"
col.justify = "left"
col.autogroup = True
[AddCommandIntro]
%object%._FlagAsMethod('AddCommand')
[AddCommand]
col = %object%.AddCommand()
col.name = "%command%"
col.method = "On%command%"
cmd.desc = ""
col.label = "%command%"
col.template = ""
cmd.hide = False
cmd.icon = "script"
[OnInit]
def OnInit(initData):
initData.name = "%script%"
initData.version = "1.0"
initData.copyright = "%copyright%"
# initData.url = "https://resource.dopus.com/c/buttons-scripts/16"
initData.default_enable = True
initData.min_version = "%minver%"
%commands_and_columns%
[OnInitIncludeFile]
def OnInitIncludeFile(initData):
initData.name = "%script%"
initData.version = "1.0"
initData.copyright = "%copyright%"
# initData.url = "https://resource.dopus.com/c/buttons-scripts/16"
initData.default_enable = True
initData.min_version = "%minver%"
initData.shared = %shared%
[OnAboutScript]
def OnAboutScript(aboutData):
DOpus._FlagAsMethod('Dlg')
dlg = DOpus.Dlg()
dlg.window = aboutData.window
dlg.message = "%script%\r\n%desc%\r\n%copyright%\r\n"
dlg.title = "About %script%"
dlg.buttons = "OK"
dlg.icon = "info"
dlg._FlagAsMethod('Show')
dlg.Show()
[%event%]
def %event%(%data%):
%content%
The template file is structured like a .ini file, with individual sections controlling how to generate the template code for individual [[:reference:scripting_reference:scripting_events|script events]]. You can specify each script event individually if desired, or - more commonly - specify the code for certain functions and then provide boilerplate code for all other functions.
The sections of the template file that don't correspond directly to a script event are:
|**language**|Specify basic information about the language, including how comments are defined and the symbols that represent true and false.|
|**AddColumnIntro**|Code that will be output once before any defined script columns.|
|**AddColumn**|Code that will be output multiple times, once for each script column.|
|**AddCommandIntro**|Code that will be output once before any defined script commands.|
|**AddCommand**|Code that will be output multiple times, once for each script command.|
|**%event%**|Boilerplate code for any script events that aren't defined explicitly.|
Various tokens can be used in the template code for certain functions:
|**%object%**|When defining columns and commands, this provides the name of the object that's passed to the `OnAddColumns` and `OnAddCommands` events.|
|**%column%**|The name of the script column (AddColumn).|
|**%command%**|The name of the script command (AddCommand).|
|**%script%**|The name of the script (OnInit/OnInitIncludeFile/OnAboutScript).|
|**%copyright%**|The copyright text for the script (OnInit/OnInitIncludeFile/OnAboutScript).|
|**%minver%**|The minimum version required by the script (OnInit/OnInitIncludeFile).|
|**%shared%**|Shared include file true or false (OnInitIncludeFile).|
|**%desc%**|Script description text (OnAboutScript).|
|**%commands_and_columns%**|If using the "old style" for columns/commands, this specifies where in the OnInit method the code to add them should be inserted.|
|**%data%**|The name of the data object passed to the script event (only used for generic **%event%** boilerplate text).|
|**%content%**|The content of the function if any (only used for generic **%event%** boilerplate text).|