<?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_ZOOM" _title="Zoom &amp; View Layout" optimumsize="true"
	     help-id="SID_ATTR_ZOOM"
             has_border="true" sizeable="true" moveable="true" closeable="true">
    <vbox spacing="0" border="12">
	<hbox spacing="0" border="0">
	    <vbox spacing="6" border="0">
		<fixedline id="FL_ZOOM" _text="Zoom factor" cnt:expand="false"/>
		<radiobutton radiogroup="zoom-factor" id="BTN_OPTIMAL"   _label="Optimal"/>
		<radiobutton radiogroup="zoom-factor" id="BTN_WHOLE_PAGE" _label="Whole Page"/>
		<radiobutton radiogroup="zoom-factor" id="BTN_PAGE_WIDTH" _label="Page Width"/>
		<radiobutton radiogroup="zoom-factor" id="BTN_100"   _label="100 %"/>
		<hbox cnt:expand="false" cnt:fill="true">
		    <align cnt:expand="false" cnt:fill="true">
			<radiobutton cnt:v-align="0.5" cnt:v-fill="0" radiogroup="zoom-factor" id="BTN_USER" _label="Variable"/>
		    </align>
		    <flow cnt:padding="12" cnt:expand="false"/>
		    <metricfield id="ED_USER" value-step="1"
				 repeat="true" has_border="true" spin="true"
				 _text="100%" unit="11" custom-unit-text="%"
				 right="true"
				 cnt:expand="false"/>
		</hbox>
	    </vbox>
	    <flow/>
	    <vbox spacing="6" border="0">
		<fixedline id="FL_VIEWLAYOUT" _text="View layout" cnt:expand="false"/>
		<radiobutton radiogroup="zoom-layout" id="BTN_AUTOMATIC" _label="~Automatic"/>
		<radiobutton radiogroup="zoom-layout" id="BTN_SINGLE"    _label="~Single page"/>
		<hbox cnt:expand="false" cnt:fill="true">
		    <align cnt:expand="false" cnt:fill="true">
			<radiobutton cnt:v-align="0.5" cnt:v-fill="0" radiogroup="zoom-layout" id="BTN_COLUMNS" _label="~Columns"/>
		    </align>
		    <flow cnt:padding="12" cnt:expand="false"/>
		    <metricfield id="ED_COLUMNS" value-step="1"
				 repeat="true" has_border="true" spin="true"
				 _text="100%"
				 right="true"
				 spin-value-min="1"
				 spin-value="1"
				 cnt:expand="false"/>
		</hbox>
		<hbox><flow cnt:expand="false" cnt:padding="12"/><checkbox id="CHK_BOOK" _label="~Book mode"/></hbox>
	    </vbox>
	</hbox>
        <fixedline cnt:padding="6" id="FL_BOTTOM"/>
	<dialogbuttonhbox border="0" spacing="12">
	    <flow/>
	    <okbutton defbutton="true" id="BTN_ZOOM_OK"/>
	    <cancelbutton id="BTN_ZOOM_CANCEL"/>
	    <helpbutton id="BTN_ZOOM_HELP"/>
	</dialogbuttonhbox>
    </vbox>
</modaldialog>
