Difference between revisions of "Slicer4:Layouts"

From Slicer Wiki
Jump to: navigation, search
Line 1: Line 1:
 
= XML specification for a layout =
 
= XML specification for a layout =
 +
XSD schema for layouts
 +
<?xml version="1.0" encoding="UTF-8"?>
 +
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
 +
  <xs:element name="layout">
 +
    <xs:complexType>
 +
      <xs:sequence>
 +
        <xs:element minOccurs="1" maxOccurs="unbounded" ref="item"/>
 +
      </xs:sequence>
 +
      <xs:attribute name="split" type="xs:boolean"/>
 +
      <xs:attribute name="type" use="required" type="xs:string"/>
 +
    </xs:complexType>
 +
  </xs:element>
 +
  <xs:element name="item">
 +
    <xs:complexType>
 +
      <xs:sequence>
 +
        <xs:element minOccurs="0" ref="layout"/>
 +
        <xs:element minOccurs="0" ref="view"/>
 +
      </xs:sequence>
 +
      <xs:attribute name="multiple" type="xs:boolean"/>
 +
      <xs:attribute name="name"/>
 +
    </xs:complexType>
 +
  </xs:element>
 +
  <xs:element name="view">
 +
    <xs:complexType>
 +
      <xs:sequence>
 +
        <xs:element minOccurs="0" ref="property"/>
 +
      </xs:sequence>
 +
      <xs:attribute name="class" use="required" type="xs:string"/>
 +
      <xs:attribute name="singletontag" type="xs:string"/>
 +
    </xs:complexType>
 +
  </xs:element>
 +
  <xs:element name="property">
 +
    <xs:complexType>
 +
      <xs:simpleContent>
 +
        <xs:extension base="xs:string">
 +
          <xs:attribute name="name" use="required" type="xs:string"/>
 +
          <xs:attribute name="action" type="xs:string"/>
 +
        </xs:extension>
 +
      </xs:simpleContent>
 +
    </xs:complexType>
 +
  </xs:element>
 +
</xs:schema>
  
 
= Adding a new layout to Slicer4 =
 
= Adding a new layout to Slicer4 =

Revision as of 15:17, 4 April 2011

Home < Slicer4:Layouts

XML specification for a layout

XSD schema for layouts <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

 <xs:element name="layout">
   <xs:complexType>
     <xs:sequence>
       <xs:element minOccurs="1" maxOccurs="unbounded" ref="item"/>
     </xs:sequence>
     <xs:attribute name="split" type="xs:boolean"/>
     <xs:attribute name="type" use="required" type="xs:string"/>
   </xs:complexType>
 </xs:element>
 <xs:element name="item">
   <xs:complexType>
     <xs:sequence>
       <xs:element minOccurs="0" ref="layout"/>
       <xs:element minOccurs="0" ref="view"/>
     </xs:sequence>
     <xs:attribute name="multiple" type="xs:boolean"/>
     <xs:attribute name="name"/>
   </xs:complexType>
 </xs:element>
 <xs:element name="view">
   <xs:complexType>
     <xs:sequence>
       <xs:element minOccurs="0" ref="property"/>
     </xs:sequence>
     <xs:attribute name="class" use="required" type="xs:string"/>
     <xs:attribute name="singletontag" type="xs:string"/>
   </xs:complexType>
 </xs:element>
 <xs:element name="property">
   <xs:complexType>
     <xs:simpleContent>
       <xs:extension base="xs:string">
         <xs:attribute name="name" use="required" type="xs:string"/>
         <xs:attribute name="action" type="xs:string"/>
       </xs:extension>
     </xs:simpleContent>
   </xs:complexType>
 </xs:element>

</xs:schema>

Adding a new layout to Slicer4

  1. Libs/MRML/vtkMRMLLayoutNode.h
    1. Add an enum to the list of available layouts
  2. Libs/MRMLLogic/vtkMRMLLayoutLogic.cxx
    1. Add a string constant containing the XML describing the layout
    2. Add a line to the AddDefaultsLayouts() method
  3. Libs/qMRMLWidgets/Resources/Icons/
    1. Add an icon
  4. Applications/SlicerQT/Resources/qSlicerMainWindow.ui
    1. Add an action using the Action Editor View
    2. Drag&Drop created action into the LayoutMenu (View->Layout)
    3. Drag&Drop created action into the LayoutToolbar
  5. Applications/SlicerQt/qSlicerMainWindow.cxx
    1. Add a line to setupMenuActions()