<?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.
 * 
 ***********************************************************-->
<!-- This is a template.  i18n translation is not performed in-place;
     i18n translated xml files are generated from this template by
     transex3/layout/tralay.  !-->

<modaldialog xmlns="http://openoffice.org/2007/layout"
             xmlns:cnt="http://openoffice.org/2007/layout/container"
             id="RID_DLG_PLUGIN" _title="Plugin Test" optimumsize="true"
	     help-id="SID_ATTR_PLUGIN"
             has_border="true" sizeable="true" moveable="true">
    <vbox spacing="5" border="5">
        <hbox spacing="5" cnt:expand="false">
	    <fixedimage id="FI_HEADER" cnt:expand="false" graphic="res/commandimagelist/sc_apply.png" />
	    <fixedtext id="FT_HEADER" _label="Plugin Test"/>
	</hbox>
	<fixedline id="FL_HEADER"/>
	<hbox>
	  <flow cnt:padding="80"/>
	  <plugin id="PL_DIAL" width="80" height="80"/>
	</hbox>
	<dialogbuttonhbox border="5" spacing="5">
	    <flow/>
	    <okbutton defbutton="true" id="BTN_OK"/>
	    <cancelbutton id="BTN_CANCEL" />
	    <helpbutton id="BTN_HELP"/>
	</dialogbuttonhbox>
    </vbox>
</modaldialog>

