blob: e98e6246041b3f5b44f837edab96785dfc095e31 [file] [log] [blame]
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<!--
-//NetBeans//DTD Mode Properties 2.0//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?) >
<!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".
-->
<!ELEMENT kind EMPTY >
<!ATTLIST kind
type (editor | view) #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
>