1/************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23#ifndef __com_sun_star_rendering_FontRequest_idl__ 24#define __com_sun_star_rendering_FontRequest_idl__ 25 26#ifndef __com_sun_star_rendering_FontInfo_idl__ 27#include <com/sun/star/rendering/FontInfo.idl> 28#endif 29 30#ifndef __com_sun_star_lang_Locale_idl__ 31#include <com/sun/star/lang/Locale.idl> 32#endif 33 34module com { module sun { module star { module rendering { 35 36/** This structure contains all information necessary to describe a 37 font to be queried from XCanvas.<p> 38 39 Note: Outline fonts are to be requested as a special family, set 40 <member>FontInfo::FamilyName</member> appropriately. Emboss/relief 41 must be emulated by upper layers.<p> 42 43 Leave the <member>FontInfo::FamilyName</member> and 44 <member>FontInfo::StyleName</member> empty, if font selection 45 should only happen via the PANOSE description. 46 47 @since OOo 2.0 48 */ 49published struct FontRequest 50{ 51 /** The description of the font.<p> 52 53 This member contains the description of the font as returned 54 by the font listing methods.<p> 55 */ 56 FontInfo FontDescription; 57 58 //------------------------------------------------------------------------- 59 60 /** The size of the font in <em>device</em> coordinate space.<p> 61 62 This value corresponds to the font height in Western scripts, 63 but is independent of the writing direction (see 64 <member>FontRequest::IsVertical</member> below). That 65 means, the value specified here is always measured orthogonal 66 to the text advancement (height for horizontal writing, and 67 width for vertical writing).<p> 68 69 When this value is negative, its absolute value is taken as 70 the character size of the font. If this value is positive, 71 it's taken as the cell size of the font.<p> 72 73 This member and the referenceAdvancement member are mutually 74 exclusive, one of them has to be set to 0 (which means don't 75 care).<p> 76 77 For distorted fonts, the render transformation must be 78 used. That is, the size specified here corresponds to device 79 pixel only if the combined render transformation during text 80 output equals the identity transform. This also applies to all 81 query methods, for both <type>XCanvasFont</type> and 82 <type>XTextLayout</type>.<p> 83 */ 84 double CellSize; 85 86 //------------------------------------------------------------------------- 87 88 /** This value specifies the size of the font in the writing 89 direction (i.e. width for horizontal writing, and height for 90 vertical writing).<p> 91 92 It is equivalent to the referenceCharSize of the FontMetrics 93 structure.<p> 94 95 This member and the cellSize member are mutually exclusive, 96 one of them has to be set to 0 (which means don't care). For 97 distorted fonts, the font matrix must be used.<p> 98 */ 99 double ReferenceAdvancement; 100 101 //------------------------------------------------------------------------- 102 103 /** The locale this font should be able to render.<p> 104 105 This member supplements the 106 <member>FontInfo::UnicodeRange0</member> entry with a specific 107 locale; this is e.g. important when selecting between 108 traditional and simplified chinese is necessary (since the 109 letters have the same unicode ranges and character values).<p> 110 */ 111 ::com::sun::star::lang::Locale Locale; 112 113}; 114 115}; }; }; }; 116 117#endif 118