<?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.
 * 
 ***********************************************************-->


	
<helpdocument version="1.0">
<meta>
<topic id="textswriter0105060000xml" indexer="include" status="PUBLISH">
<title id="tit" xml-lang="en-US">Graphics</title>
<filename>/text/swriter/01/05060000.xhp</filename>
</topic>
<history>
<created date="2003-10-31T00:00:00">Sun Microsystems, Inc.</created>
<lastedited date="2004-07-27T10:30:30">converted from old format - fpe</lastedited>
</history>
</meta>
<body>
<bookmark xml-lang="en-US" branch="hid/.uno:GraphicDialog" id="bm_id4787703" localize="false"/><!-- HID added by script -->
<bookmark xml-lang="en-US" branch="hid/.uno:GraphicDialog" id="bm_id3145246" localize="false"/>
<paragraph role="heading" id="hd_id3150016" xml-lang="en-US" level="1" l10n="U" oldref="1">Graphics<comment>UFI: menu changed to Picture - dialog also?</comment></paragraph>
<paragraph role="paragraph" id="par_id3148774" xml-lang="en-US" l10n="U" oldref="2"><variable id="grafiktext"><ahelp hid=".uno:GraphicDialog">Formats the size, position, and other properties of the selected graphic.</ahelp>
</variable></paragraph>
<paragraph role="paragraph" id="par_id3147167" xml-lang="en-US" l10n="U" oldref="5">You can also change some of the properties of the selected graphic with <link href="text/swriter/01/04130100.xhp" name="shortcut keys">shortcut keys</link>.</paragraph>
<section id="howtoget">
  <embed href="text/swriter/00/00000405.xhp#formatgrafik"/>
</section>
<paragraph role="paragraph" id="par_id3150759" xml-lang="en-US" l10n="U" oldref="3">The <emph>Graphics</emph> dialog contains the following tab pages:</paragraph>
<embed href="text/swriter/01/05060100.xhp#typ"/>
<embed href="text/swriter/01/05060900.xhp#zusaetze"/>
<paragraph role="heading" id="hd_id3145419" xml-lang="en-US" level="2" l10n="U" oldref="4"><link href="text/swriter/01/05060200.xhp" name="Wrap">Wrap</link></paragraph>
<embed href="text/swriter/01/05060200.xhp#umlauftext"/>
<embed href="text/swriter/01/05060800.xhp#hyperlink"/>
<embed href="text/swriter/01/05060300.xhp#grafik"/>
<embed href="text/shared/01/05030800.xhp#zuschneiden"/>
<embed href="text/shared/01/05030500.xhp#umrandung"/>
<embed href="text/shared/01/05030600.xhp#hintergrund"/>
<embed href="text/swriter/01/05060700.xhp#makro"/>
<embed href="text/shared/00/00000001.xhp#zurueck"/>
</body>
</helpdocument>
