blob: f61f558b38c54ce996e9cfb73d17762aa562d66f [file] [log] [blame]
<!--
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 https://netbeans.org/cddl.html
or https://netbeans.org/cddl.txt.
When distributing Covered Code, include this CDDL Header Notice in each file
and include the License file at https://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 Mode Properties 2.2//EN
-->
<!-- The root element for mode properties. Consists of name, optional
module information and several property sets for various types of
user interface.
Attribute "version" is versioning attribute which in fact specifies
version of this DTD. Attribute is used to perform simple versioning
without the need to use time-consuming xml validation using this DTD.
-->
<!ELEMENT mode (module?, name, kind, state, constraints?, (bounds | relative-bounds)?, frame?, active-tc?, empty-behavior?, slidingSide?, slideInSize*) >
<!ATTLIST mode
version 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 mode defined by module if module is disabled.
If you want your module's mode to be removed automatically when
your module is disabled, 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
>
<!-- Element name
"unique" represents unique ID of mode
-->
<!ELEMENT name EMPTY >
<!ATTLIST name
unique CDATA #REQUIRED
>
<!-- Element kind
"type" kind of mode "editor" or "view" or "sliding".
-->
<!ELEMENT kind EMPTY >
<!ATTLIST kind
type (editor | view | sliding) #REQUIRED
>
<!-- Element sliding side
"side" direction of slide
-->
<!ELEMENT slidingSide EMPTY >
<!ATTLIST slidingSide
side (left | right | bottom) #REQUIRED
>
<!-- Element slide-in size
"tc-id" TopComponent's ID
"size" the size of the TopComponent (width or height) when it is slided-in
-->
<!ELEMENT slideInSize EMPTY >
<!ATTLIST slideInSize
tc-id CDATA #REQUIRED
size CDATA #REQUIRED
>
<!-- Element state
"type" state of mode "joined" (is inside of main window) or "separated"
(is in its own native window separated from main window).
-->
<!ELEMENT state EMPTY >
<!ATTLIST state
type (joined | separated) #REQUIRED
>
<!-- Absolute bounds rectangle of the mode, stored in attributes
x, y, width, height, where x, y is location of left top point of bounds
rectangle.
Relevant only for separate mode (window).
-->
<!ELEMENT bounds EMPTY >
<!ATTLIST bounds
x CDATA #REQUIRED
y CDATA #REQUIRED
width CDATA #REQUIRED
height CDATA #REQUIRED
>
<!-- Relative (percentage) bounds rectangle of the mode, stored in attributes
x, y, width, height, where x, y is location of left top point of bounds
rectangle, it is relative to width of main window and height of area below
main window.
Relevant only for separate mode (window).
-->
<!ELEMENT relative-bounds EMPTY >
<!ATTLIST relative-bounds
x CDATA #REQUIRED
y CDATA #REQUIRED
width CDATA #REQUIRED
height CDATA #REQUIRED
>
<!-- Frame properties.
Relevant only for separate mode (window).
Attribute "state" represents current state of frame.
It is represented as bitwise mask - integer value.
See java.awt.Frame for possible values.
Default value is Frame.NORMAL (0).
-->
<!ELEMENT frame EMPTY >
<!ATTLIST frame
state CDATA #IMPLIED
>
<!-- Constraints describes path of mode in model tree.
Path consists of array of values to describe path eg. [H1;V2].
Relevant only for mode inside desktop
-->
<!ELEMENT constraints (path*) >
<!ATTLIST constraints
>
<!-- Path describe path to mode in model tree.
"orientation" sets orientation of splitter. "horizontal" means splitting
along x axis - components are from left to right. "vertical" means splitting
along y axis - components are from top to bottom.
"number" sets number of cell in given split cell. It is integer number. Number defines
position of given cell in array of cells. It is possible to define for example
20 for first cell and 40 for second cell. Later it is possible to insert third cell between
first and second by using 30 for third cell. It is usefull for platform to allow third party
modules to modify (insert) their own modes to existing layout.
Cells are counted from left to right in case of vertical split and
from top to bottom in case of horizontal split.
"weight" is double number from 0 to 1. It sets relative size of cell
in given splitter. Default value is 0.5.
-->
<!ELEMENT path EMPTY >
<!ATTLIST path
orientation (horizontal | vertical) #REQUIRED
number CDATA #REQUIRED
weight CDATA #IMPLIED
>
<!-- Active TopComponent.
"id" stores unique ID of active TopComponent
-->
<!ELEMENT active-tc EMPTY >
<!ATTLIST active-tc
id CDATA #IMPLIED
>
<!-- Element "empty-behavior" describes behavior of mode when it is empty ie. does not contain
any opened TopComponent.
Attribute "permanent" can be "true" of "false". "true" means that mode remains in window
system when it is empty ie. it does not contain any opened TopComponent. "false" means that
mode is completely destroyed when it is empty.
Optional attribute, default value is "true".
When mode is defined in module layer it is usually permanent ie. "true" is used.
-->
<!ELEMENT empty-behavior EMPTY >
<!ATTLIST empty-behavior
permanent (true | false) #IMPLIED
>