Quanta uses tag files to define the various actions that are available for toolbar association. These tag files can define a simple tag with no attributes or they can define a tag dialog box that will remember all of the available attributes for you so that you can simply fill in the blanks.
Spaces don't adversely affect anything, but watch out for & and < characters. These should likely be replaced by & and < respectively in all of the xml based Quanta resource files. This won't cause a crash, but you'll have chunks of your work disappear if you forget.
Possible entries for the type attribute of the attr tag: To get a list of possible types, I did the following against the tag dirs: grep -h type= *.tag |sed -e 's/^.*type=\"\([a-z]*\).*/\1/'| sort |uniq
These are the types for tag dialog items:
check |
color |
input |
list |
text |
url |
These are the argument types inside the php function tags, ask Andras if these are pretty much free form and the former are keywords:
array |
bool |
boolean |
char |
constant |
flags |
float |
function |
int |
long |
mixed |
number |
object |
resource |
resoure |
string |
The tag definition has the following optional attributes:
"1" if common events/scripts can be associated to this tag (onclick etc.)
"1" if common core attributes are present (id, class, etc)
"1" if common i18n attributes are present (lang, dir)
"1" if it is a single tag (eg. <hr>)
"1" if it is an optional tag (eg. <colgroup>)
for scripting languages, the function return type if any. (eg int)
The <attr> definition can have the following attributes:
the default value of the tag ???
can be “optional”, “required”, “implied”
For scripting language functions, define tag files as such:
<!DOCTYPE tags>
<tags>
<tag name=“[function-name]” type=“function” returnType=“[return-type]”>
<attr name=“[argument1]>” type=“[argument1-type]”></attr>
<attr name=“[argument2]” type=“[argument2-type]” status=“optional”></attr>
...
</tag>
<tag ...
...
</tag>
...
</tags>
Items in [] are to be substituted. argument1 above is required and argument2 is optional.
A tag file that you want to have tag dialog editing of should look like this:
<!DOCTYPE tags> <tags> <tag name="[name] [hasCore="[01]" hasI18n="[01]" hasScript="[01]"]> <attr name="[attribute1]" type="[check|color|input|list|text|url]"> <text></text> <textlocation col="0" row="0" /> <tooltip></tooltip> <location col="1" row="0" colspan="3"/> </attr> ... </tag> ... </tags>
<text></text> defines brief descriptive text for the object.
<textlocation ... /> defines row and column layout for <text> tag.
<tooltip></tooltip> is text description for a hovering user.
<location ../> defines the location of the object for that attribute.
All the attributes must be enumarated in the tag file. If you don't want to appear in the tagdialog, just forget the <location> tag. eg <attr ...> </attr>