<?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 sizeable="true" closeable="true" help-id="FID_TAB_MOVE" moveable="true" output-size="true" id="RID_SCDLG_MOVETAB" sv-look="true" _title="Move/Copy Sheet" xmlns="http://openoffice.org/2007/layout" xmlns:cnt="http://openoffice.org/2007/layout/container">
    <vbox spacing="5" border="5">
	<string id="STR_NEWDOC" _text="- new document -"/>
        <fixedtext id="FT_DEST" _label="To ~document"/>
        <listbox has_border="true" dropdown="true" id="LB_DEST" tabstop="true"/>
        <fixedtext id="FT_INSERT" _label="~Insert before"/>
        <listbox has_border="true" id="LB_INSERT" tabstop="true" string-item-list=" : : : : " />
        <checkbox id="BTN_COPY" tabstop="true" _label="~Copy"/>
	<dialogbuttonhbox border="5" spacing="5">
	    <flow/>
            <cancelbutton id="BTN_CANCEL" tabstop="true"/>
            <helpbutton id="BTN_HELP" tabstop="true"/>
            <okbutton defbutton="true" id="BTN_OK" tabstop="true"/>
	</dialogbuttonhbox>
    </vbox>
</modaldialog>
