<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>

  
  <meta http-equiv="CONTENT-TYPE" content="text/html;charset=iso-8859-1">

  
  <title>Specification Project</title>
</head>



<body style="direction: ltr;" lang="en-US">

  
<p align="right"><em>Project

Owner: <a href="mailto:cj@openoffice.org">Christian

Jansen</a></em></p>

  
<h1>OpenOffice.org Specification Project</h1>

  
<p>The goal of the OpenOffice.org

Specification project is to have a home for specifications which are

related to OpenOffice.org. These can be User Interface specifications

or Technical specifications. The table below lists the areas for which

specifications are written.</p>

  
<p><b>Note: </b>For detailed information about this project please continue reading on the <a href="http://wiki.services.openoffice.org/wiki/Specification">Specification Project Wiki</a> page.</p>

  
<h2><br>

   Specification Index</h2>

  
<table style="text-align: left; width: 100%;" border="0" cellpadding="1" cellspacing="0">


  <tbody>

    <tr>


      <td style="background-color: rgb(240, 240, 251);" align="undefined" valign="undefined"><span style="font-weight: bold;">Project</span></td>


      <td style="background-color: rgb(240, 240, 251);"><span style="font-weight: bold;">Count</span></td>


      <td style="background-color: rgb(240, 240, 251);" align="undefined" valign="undefined"><span style="font-weight: bold;">Description</span></td>


    </tr>

    <tr>


      <td align="undefined" valign="undefined"><a href="ui_in_general/index.html">User Interface in

General</a></td>


      <td align="undefined" valign="undefined">15+</td>


      <td>Specifications for

Toolbars, Wizards, Widgets etc.</td>


    </tr>

    <tr>

     <td align="undefined" valign="undefined"><a href="ui_term/index.html">User Interface Terminology</a></td>

     <td align="undefined" valign="undefined">1</td>

     <td>Specifications that deal

exclusively with text on the UI</td>

    </tr>

    <tr height="11">

     <td align="undefined" height="11" valign="undefined"></td>

     <td align="undefined" height="11" valign="undefined"></td>

     <td height="11"></td>

    </tr>

    <tr>


      <td align="undefined" valign="undefined"><a href="appwide/index.html">Application Wide</a></td>


      <td align="undefined" valign="undefined">50+</td>


      <td>Specification which

affect all OpenOffice.org modules</td>


    </tr>

    <tr>


      <td align="undefined" valign="undefined"><a href="g11n/index.html">G11n</a></td>


      <td align="undefined" valign="undefined">15+</td>


      <td>General

globalization-related specifications</td>


    </tr>

    <tr height="11">

     <td align="undefined" height="11" valign="undefined"></td>

     <td align="undefined" height="11" valign="undefined"></td>

     <td height="11"></td>

    </tr>

    <tr>


      <td align="undefined" valign="undefined">
      <a href="writer/index.html">OpenOffice.org Writer</a>
     </td>


      <td align="undefined" valign="undefined">40+</td>


      <td>Specifications for the

text document module</td>


    </tr>

    <tr>


      <td align="undefined" valign="undefined"><a href="calc/index.html">OpenOffice.org

Calc</a></td>


      <td align="undefined" valign="undefined">27+</td>


      <td>Specifications for the

spread sheet module</td>


    </tr>

    <tr>


      <td align="undefined" valign="undefined"><a href="impress/index.html">OpenOffice.org Impress</a></td>


      <td align="undefined" valign="undefined">5+</td>


      <td>Specifications for the

presentation module</td>


    </tr>

    <tr>

     <td align="undefined" valign="undefined"><a href="draw/index.html">
                  OpenOffice.org

                  Draw
      </a></td>

     <td align="undefined" valign="undefined">5</td>

     <td>
              Specifications for the

              drawing module
      </td>

    </tr>

    <tr>

          <td align="undefined" valign="undefined">
              <a href="chart/index.html">OpenOffice.org Chart</a>
          </td>

          <td align="undefined" valign="undefined">20+</td>

          <td>
              Specifications for the
              chart module
          </td>

      </tr>

    <tr>


          <td align="undefined" valign="undefined">
              <a href="math/index.html">
                  OpenOffice.org

                  Math
              </a>
          </td>


          <td align="undefined" valign="undefined">-</td>


          <td>
              Specifications for the

              formula module
          </td>


      </tr>

    <tr>

     <td align="undefined" valign="undefined"><a href="http://dba.openoffice.org/specifications/index.html">
                  OpenOffice.org
                  Base
      </a></td>

     <td align="undefined" valign="undefined">20+</td>

     <td>
              Specifications for the
              database module
      </td>

    </tr>

    <tr height="11">

     <td align="undefined" height="11" valign="undefined"></td>

     <td align="undefined" height="11" valign="undefined"></td>

     <td height="11"></td>

    </tr>

    <tr>


          <td align="undefined" valign="undefined">
              <a href="ide/index.html">
                  OpenOffice.org

                  Basic IDE
              </a>
          </td>


          <td align="undefined" valign="undefined">2</td>


          <td>
              Specifications for the
              basic &amp; dialog editor
          </td>

      </tr>

      <tr>

          <td align="undefined" valign="undefined">
              <a href="sdk/index.html">
                  OpenOffice.org
                  SDK
              </a>
          </td>

          <td align="undefined" valign="undefined">9</td>

          <td>
              Specifications for UNO,
              API and SDK
          </td>

      </tr>

    <tr>

          <td align="undefined" valign="undefined">
              <a href="scripting_framework/index.html">
                  Scripting
                  Framework
              </a>
          </td>

          <td align="undefined" valign="undefined">5+</td>

          <td>
              Specifications for the
              Scripting Framework
          </td>

      </tr>

    <tr height="11">

     <td align="undefined" height="11" valign="undefined"></td>

     <td align="undefined" height="11" valign="undefined"></td>

     <td height="11"></td>

    </tr>

    <tr>

          <td align="undefined" valign="undefined"><a href="Mac_Port/index.html">OpenOffice.org for Mac</a></td>

          <td align="undefined" valign="undefined">2</td>

          <td>Specifications for the <a href="http://porting.openoffice.org/mac/">Mac Port</a></td>

        </tr>

        <tr>

      <td align="undefined" valign="undefined"><a href="installation/index.html">Installation</a></td>

      <td align="undefined" valign="undefined">10+</td>

      <td>Specifications for the
installers</td>

    </tr>

  
  </tbody>
</table>

  <br>

  
<h2><a name="spectemplate"></a><br>

   Specification Template</h2>

  
<p>The specification template can be downloaded from here: <a href="http://specs.openoffice.org/files/documents/138/4541/OpenOffice-org-Specification-Template.ott"><strong>OpenOffice-org-Specification-Template.ott</strong></a>. You can also create a specification based on the <a href="http://wiki.services.openoffice.org/wiki/Specification_Template"><strong>wiki template</strong></a>. </p>

  
<p>A Specification Guide (deprecated) can be found here: <a href="collaterals/OpenOffice_org_Specification_guide.sxw"><strong>OpenOffice_org_Specification_guide.sxw</strong></a></p>

  
<p>As a small piece of the workflow puzzle for specifications, there's a document describing <a href="collaterals/linguistic_string_review.sxd">how to obtain linguistic review for a specification document</a> (as <a href="collaterals/linguistic_string_review.pdf">PDF</a>).</p>

  
<h2><br>

   <span lang="EN-GB">Specifications and the What's New Guide</span></h2>

  
<p class="MsoNormal"><span lang="EN-GB">OpenOffice.org uses a
semi-automatic What's New Guide creation process. This means that parts
of the specification are automatically transferred into the What's New
Guide. To assure that the What's New Guide generation works well it is
very important that only the official specification template is used.</span></p>

  
<h2 class="MsoNormal"><br>

   <span lang="EN-GB"><span style="font-weight: bold;">How do I know that my specification is OK?</span></span></h2>

  <span lang="EN-GB">To check the specification we've created a "<a href="http://eis.services.openoffice.org/EIS2/guide.CheckSpecification">Specification Checking Tool</a>".
Using it is really easy. Just fill in the URL pointing to the location
of the specification. Click "Check" to check the specification.</span>
  
<p class="MsoNormal"><span lang="EN-GB">If errors occur please change
or revise the specific sections causing these errors. Errors will also
occur, if a different format has been used (e.g. HTML). If so, please
copy the content into a new specification based on the specification
template.</span></p>

  
<h2><br>

   Related Pages</h2>

  
<ul>

   <li><a href="http://wiki.services.openoffice.org/wiki/Category:Specification">Specification Project (Wiki)</a></li>

   <li><a href="http://wiki.services.openoffice.org/wiki/UI_Style_Guides">UI Style Guides (Wiki)</a></li>

   <li><a href="http://wiki.services.openoffice.org/wiki/UI_Style_Guides#OpenOffice.org_Style_Guides">OpenOffice.org Style Guides</a></li>

   <li><a href="http://ui.openoffice.org/">OpenOffice.org UI Project</a></li>

   
  <ul>

    <li><a href="http://ui.openoffice.org/proposals/index.html">Spec Proposals</a> for OOo 1.1.x</li>

   
  </ul>

   <li><a href="http://ux.openoffice.org/">OpenOffice.org User Experience Project</a></li>

  
</ul>

 
</body>
</html>
