## Property Class Definitions Property Classes — How to augment or define a GladePropertyClass |

## Property Class Configuration

Properties are introspected at load time and loaded into GladePropertyClass structures. The behaviour of properties can be modified by the catalog and fake properties can be added for editing purposes. Here is an example of the xml form:

    ...

    <property id="frobnicate-mode" default="FOO_FROBNICATE_RED">

      ... spec, tooltip etc

      <displayable-values>

        <value id="FOO_FROBNICATE_RED" name="Red"/>
        <value id="FOO_FROBNICATE_BLUE" name="Blue"/>

        ... values here

      </displayable-values>
    </property>

    ...

Properties of the 'property' tag:

id | This is manditory and specifies the property that we are modifying (or adding)
name | The name to be used in the interface. (if name is not specified; it defaults to the nickname of the GParamSpec)
since | A 'major.minor' formed version describing the version of the owning catalog in which this property was introduced; example: `since="1.0"`. Properties are initialized to be supported since the introducing GladeWidgetAdaptor was supported.
disabled | Remove this property from this widget class and derived classes
default | A default value to be used for this property
translatable | For text properties, whether the property value is translatable in glade interfaces (this will enable the i18n dialog on text properties). Defaults to False.
common | If set to "True", the property will end up on the common tab even if its not a property of GtkWidgetClass.
optional | Whether this property is an optional property, this will make the property insensitive and add a check box to enable it (like width/height-request for example).
optional-default | If this is in fact an optional property; whether it is enabled by default.
query | If query is set; the property will be queried from the user in a dialog when adding the owning widget class instance to the project.
save | Whether to save this property to the glade file (default "True")
visible | Whether to show the property in the editor and reset dialog (default "True")
custom-layout | This is used to avoid loading this property in the editor when implementing a custom GladeEditable that embeds the base GladeEditorTable implementation, custom-layout properties will still show up in the reset dialog (default "False)
ignore | Whether to set the property on the object instance (via g_object_set_property or plugin override functions) when it changes in the editor (the value in the editor is the value saved).
themed-icon | Depicts a string property that is used for an icon from the theme. These will the appropriate editor.
weight | A numerical value to specify this properties position in the property editor.
transfer-on-paste | Used for packing properties; depicts packing properties that should follow the widget when pasted to a new container that supports the same properties.
save-always | Specifies that the property should be saved regardless of its value (properties at thier default values are normally not saved).

Child tags of the 'property' tag:

spec | Specifies a function to be used to return a GParamSpec for this property; this is used to add virtual properties to an object (like the "size" property on GtkBox).
tooltip | The tooltip to be displayed in the property editor for this property. The tooltip defaults to the blurb of the associated GParamSpec.
visible-lines | An integer value to specify how many lines will be shown for text properties in the editor (this doesnt really work because of the complexity of calculating size of rendered text; instead, just set this to 2 if you want the text property to be edited in a textview with a scrolled window as opposed to a simple text entry).
displayable-values | Allows you to specify user friendly strings for enum and flag values as shown in the example above, use the `id' property in the value tag to depict the real value name and the `name' property for the human readable one.