<?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_SVXDLG_RECOVER" _title="OpenOffice.org Document Restore -- questions to sigi(at)novell.com--" optimumsize="true"
	     help-id="SID_ATTR_RESTORE"
             has_border="true" sizeable="true" moveable="true">
    <vbox spacing="5" border="5" width="640">
        <hbox spacing="5" cnt:expand="false">
	    <fixedimage id="FI_HEADER" cnt:expand="false" graphic="res/commandimagelist/sc_apply.png" />
	    <fixedtext id="FT_HEADER" _label="OpenOffice.org Document Restore"/>
	</hbox>
	<fixedline id="FL_HEADER"/>
	<!-- mockup: fixedtext multiline=true" does not work?
	<multilineedit id="MLE_RECOVER" has_border="false" foobar="x" _text="At least one document was found that was not stored safely to the media.  Uncheck any documents you do not want to restore (information may be lost)."/>
	<fixedtext id="FT_RECOVER" has_border="false" multi-line="true" font-word-line-mode="true" word-break="true"  _label="At least one document was found that was not stored safely to the media.  Uncheck any documents you do not want to restore (information may be lost).
LINE TEST"/>
	!-->
	<fixedtext id="FT_RECOVER" has_border="false" multi-line="true" font-word-line-mode="true" _label="At least one document was not stored safely and must be recovered."/>
	<fixedtext id="FT_ADVANCED" has_border="false" multi-line="true" font-word-line-mode="true" word-break="true"  _label="Uncheck any documents you do not want to restore (information may be lost)."/>
	<vbox cnt:fill="true" cnt:expand="true" cnt:padding="20" border="20" spacing="20">
	    <hbox>
		<checkbox id="CB_DOC" state="1" cnt:expand="false" scale="false"/>
		<fixedimage id="FI_DOC" cnt:v-align="0.5" image-align="0.5" cnt:expand="false" scale="false" graphic="res/commandimagelist/lc_insertdoc.png"/>
		<fixedtext id="FT_DOC" _label="My document"/>
	    </hbox>
	    <hbox>
		<checkbox id="CB_SHEET" state="1" cnt:expand="false" scale="false" />
		<fixedimage id="FI_SHEET" cnt:expand="false" scale="false" graphic="res/commandimagelist/lc_inserttable.png" />
		<fixedtext id="FT_SHEET" _label="My spreadsheet"/>
	    </hbox>
	    <hbox>
		<checkbox id="CB_DRAW" state="1" cnt:expand="false" scale="false"/>
		<fixedimage id="FI_DRAW" cnt:expand="false" scale="false" graphic="res/commandimagelist/lc_insertdraw.png" />
		<fixedtext id="FT_DRAW" _label="My drawing"/>
	    </hbox>
	    <hbox>
		<checkbox id="CB_PRESENT" state="1" cnt:expand="false" scale="false" />
		<fixedimage id="FI_PRESENT" cnt:expand="false" scale="false" graphic="res/commandimagelist/lc_insertvideo.png" />
		<fixedtext id="FT_PRESENT" _label="My presentation"/>
	    </hbox>
	    <hbox border="5">
		<flow/>
		<advancedbutton id="PB_ADVANCED" cnt:expand="false" _label="Advanced..."/>
	    </hbox>
	</vbox>
	<vbox>
	    <fixedtext id="FT_PROGRESS" _label="Restore progress (idle)"/>
	    <hbox height="40" cnt:expand="true">
		<progressbar cnt:expand="true" cnt:fill="true" id="PB_RECOVER" has_border="true" border="10" fill-color="#ccccff" background-color="#ffffff" progress-value-min="0" progress-value-max="100" progress-value="50" />
		<!-- FIXME: cannot set progress bar's height, use space as strut... !-->
		<fixedtext label="" height="10" cnt:expand="false" cnt:fill="false"/>
	    </hbox>
	</vbox>
	<checkbox id="CH_LOGFILE" _label="Open additional text document to display the restore logfile"/>
	<dialogbuttonhbox border="5" spacing="5">
	    <flow/>
	    <okbutton defbutton="true" id="BTN_OK" _label="Restore"/>
	    <cancelbutton id="BTN_CANCEL" />
	    <helpbutton id="BTN_HELP"/>
	</dialogbuttonhbox>
    </vbox>
</modaldialog>
