<!--
The contents of this file are subject to the terms of the Common Development
and Distribution License (the License). You may not use this file except in
compliance with the License.

You can obtain a copy of the License at http://www.netbeans.org/cddl.html
or http://www.netbeans.org/cddl.txt.

When distributing Covered Code, include this CDDL Header Notice in each file
and include the License file at http://www.netbeans.org/cddl.txt.
If applicable, add the following below the CDDL Header, with the fields
enclosed by brackets [] replaced by your own identifying information:
"Portions Copyrighted [year] [name of copyright owner]"

The Original Software is NetBeans. The Initial Developer of the Original
Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
Microsystems, Inc. All Rights Reserved.
-->

<!--
-//NetBeans//DTD Top Component in Mode Properties 1.0//EN
-->

<!--
    Top component reference consists of several property sets for various
    user-interface types and optional module information. Attributes:
 1) "version" is optional versioning attribute, which in fact specifies version
    of DTD for the document. Attribute is used to perform simple versioning
    without the need to use time-consuming xml validation using this DTD.
 2) "id" is unique identificator of top component to which we are referring to,
    required
-->
<!ELEMENT tc-ref        (module?, ui-type+) >
<!ATTLIST tc-ref
    version CDATA #IMPLIED
    id CDATA #REQUIRED
>

<!-- Optional element for module information. Attribute name specifies name of
    module which defines this xml description. Module information is used for
    automatic removal of top component reference defined by module if module
    is unistalled.
    If you want your module's top component reference to be unistalled
    automatically when your module is deinstalled, fill this element.
    When this element is missing, no automatic removal will be done.
 1) "name" code name of the module, can be either base code name or full code
    name with slash and release number. Examples for core module are: 
    "org.netbeans.core" or "org.netbeans.core/1"
 2) "spec" is specification version of the module which defines this xml description.
-->
<!ELEMENT module EMPTY >
<!ATTLIST module
    name CDATA #REQUIRED
    spec CDATA #IMPLIED
>

<!--
    ui-type element, describes properties for specific type of user interface
    1) type - id of user interface type; required. Value "any" is special value
        which is reserved for default setting set which is used when property
        set for specific ui-type is not found. Thus, simplest variant is to
        define only one property set with type "any", which means that for all
        types of user interface we have same properties.
    2) state - opened or closed flag; if value is opened, component is showing
       in mode, if closed, component is hidden; default value is closed
    3) constraint - represents position of top component in frame, optional,
       if missing, "center" value is used as default
    5) selected - flag saying if component is selected in context of container
        (usually tabbed pane)
-->
<!ELEMENT ui-type       EMPTY >
<!ATTLIST ui-type
    type (sdi | mdi | any) #REQUIRED
    state (opened | closed) #IMPLIED
    constraint (center | left | right | top | bottom) #IMPLIED
    selected (true | false) #IMPLIED
>
