<?xml version='1.0' encoding='UTF-8'?>
<!--***********************************************************
 *
 * 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.
 *
 ***********************************************************-->

<oor:component-data oor:name="WriterWindowState" oor:package="org.openoffice.Office.UI" xmlns:install="http://openoffice.org/2004/installation" xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <node oor:name="UIElements">
    <node oor:name="States">
      <node oor:name="private:resource/toolpanel/org.openoffice.example.colorpanel/00FF00" oor:op="replace">
        <prop oor:name="UIName" oor:type="xs:string">
          <value>Soylent Green</value>
        </prop>
        <prop oor:name="Visible" oor:type="xs:boolean">
          <value>false</value>
        </prop>
        <prop oor:name="ImageURL" oor:type="xs:string">
          <value>vnd.sun.star.extension://org.apache.openoffice.custom-tool-panel/panel.png</value>
        </prop>
        <prop oor:name="HelpURL" oor:type="xs:string">
          <value>vnd.sun.star.help://org.apache.openoffice.custom-tool-panel/colorpanel</value>
        </prop>
      </node>
      <node oor:name="private:resource/toolpanel/org.openoffice.example.colorpanel/FF0000" oor:op="replace">
        <prop oor:name="UIName" oor:type="xs:string">
          <value>Soylent Red</value>
        </prop>
        <prop oor:name="Visible" oor:type="xs:boolean">
          <value>false</value>
        </prop>
        <prop oor:name="ImageURL" oor:type="xs:string">
          <value>vnd.sun.star.extension://org.apache.openoffice.custom-tool-panel/panel.png</value>
        </prop>
        <prop oor:name="HelpURL" oor:type="xs:string">
          <value>vnd.sun.star.help://org.apache.openoffice.custom-tool-panel/colorpanel</value>
        </prop>
      </node>
    </node>
  </node>
</oor:component-data>
