# Quanta Tag Dialog Definition XML

##### Richard Moore, rich@kde.org

## Introduction

This document describes the XML files used to define tags in the Quanta HTML editor. I believe the files are encoded as UTF 8. The files define both the attributes supported by a tag (I don't think this is used currently), and the layout and contents of the properties dialog Quanta shows for the tag.

Note: The encoding needs checking and should be specified in the XML files (rich)

## Supported Elements and Attributes

The table below lists the elements currently supported in Quanta's tag definition files.

Element | Description
--- | ---
TAGS | Top level container tag
tag | Defines the tag being described
attr | Define an attribute for the tag
location | Specifies the location of a field in the dialog
tooltip | Specifies the tooltip for a field in the dialog
whatsthis | Specifies the 'Whats This' help for a field in the dialog
label | Create a label
text | Define the text for a label or check box
items | Container element for defining lists
item | Defines an item in a list
spacer | Add a spacer to the dialog layout grid

### TAGS

This is the root tag of the XML document. It has no attributes and should contain the definition of a single tag.

Note: Can I change this tag to be lower case for consistency with the others? [Rich]

### tag

Specifies the tag being defined.

Attribute | Description
--- | ---
name | Specifies the name of the tag being defined. [required]

### attr

Specifies an attribute. This element occurs once of each defined attribute and defines the name and type, it also contains additional tags that specify how this attribute should be displayed etc.

Attribute | Value | Description
--- | --- | ---
name |  | Specifies the name of the attribute being defined. [required]
type |  | Specifies the type of the attribute being defined. The value should be one of the following strings. [optional]
| input | Says the field supports free text entries (text field). [default]
| check | Says the value is boolean (check box).
| color | Says the value is a colour.
| url | Says the value is a url (Allows the user to specify a local file to refer to).
| list | Says the value is an item from a specified list.

### location

Specifies the position and size of a field in the dialog. This tag should occur once for each field in the dialog (ie. one for each attr and label tag). All the attributes must have integer values, and row/column indices start from 0.

Attribute | Description
--- | ---
row | Specifies the row in the dialog layout of a field or label. [required]
col | Specifies the column in the dialog layout of a field or label. [required]
rowspan | Specifies the number of rows a field should span. [optional]
colspan | Specifies the number of columns a field should span. [optional]

### label

Place a label in the dialog. The text is specified by a nested text tag.

### text

Contains the text associated with a label. The label could be standalone, or it could be part of a widget such as a check box.

### spacer

Defines a spacer in the layout of a tag dialog. The spacer orientation may be horizontal or vertical.

Attribute | Value | Description
--- | --- | ---
orientation |  | Specifies the orientation of the spacer within the layout. [optional]
| h | Horizontal [default]
| v | Vertical

### items

A container tag that groups together the items in a list, it contains a bunch of item tags.

### item

Contains the text for an item in a list.

### tooltip

A tag containing the tool tip text for a field in the dialog. Note: Currently only plain text is supported (you can't use any markup).

### whatsthis

A tag containing the Whats This text for a field in the dialog. Note: Currently only plain text is supported (you can't use any markup).

## Issues with the current format

###

For me, the current tag definition system has a number of problems:

- Provides an inflexible UI
- Makes the definition of the types associated with an attribute part of the specification of the GUI rather than of the data model.
- i18n support
- Support for multiple DTDs