1d1766043SAndrew Rist/************************************************************** 2cdf0e10cSrcweir * 3d1766043SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4d1766043SAndrew Rist * or more contributor license agreements. See the NOTICE file 5d1766043SAndrew Rist * distributed with this work for additional information 6d1766043SAndrew Rist * regarding copyright ownership. The ASF licenses this file 7d1766043SAndrew Rist * to you under the Apache License, Version 2.0 (the 8d1766043SAndrew Rist * "License"); you may not use this file except in compliance 9d1766043SAndrew Rist * with the License. You may obtain a copy of the License at 10cdf0e10cSrcweir * 11d1766043SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12cdf0e10cSrcweir * 13d1766043SAndrew Rist * Unless required by applicable law or agreed to in writing, 14d1766043SAndrew Rist * software distributed under the License is distributed on an 15d1766043SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16d1766043SAndrew Rist * KIND, either express or implied. See the License for the 17d1766043SAndrew Rist * specific language governing permissions and limitations 18d1766043SAndrew Rist * under the License. 19cdf0e10cSrcweir * 20d1766043SAndrew Rist *************************************************************/ 21d1766043SAndrew Rist 22d1766043SAndrew Rist 23cdf0e10cSrcweir#ifndef __com_sun_star_rendering_XTextLayout_idl__ 24cdf0e10cSrcweir#define __com_sun_star_rendering_XTextLayout_idl__ 25cdf0e10cSrcweir 26cdf0e10cSrcweir#ifndef __com_sun_star_uno_XInterface_idl__ 27cdf0e10cSrcweir#include <com/sun/star/uno/XInterface.idl> 28cdf0e10cSrcweir#endif 29cdf0e10cSrcweir#ifndef __com_sun_star_lang_IllegalArgumentException_idl__ 30cdf0e10cSrcweir#include <com/sun/star/lang/IllegalArgumentException.idl> 31cdf0e10cSrcweir#endif 32cdf0e10cSrcweir#ifndef __com_sun_star_lang_IndexOutOfBoundsException_idl__ 33cdf0e10cSrcweir#include <com/sun/star/lang/IndexOutOfBoundsException.idl> 34cdf0e10cSrcweir#endif 35cdf0e10cSrcweir#ifndef __com_sun_star_geometry_RealPoint2D_idl__ 36cdf0e10cSrcweir#include <com/sun/star/geometry/RealPoint2D.idl> 37cdf0e10cSrcweir#endif 38cdf0e10cSrcweir#ifndef __com_sun_star_geometry_RealBezierSegment2D_idl__ 39cdf0e10cSrcweir#include <com/sun/star/geometry/RealBezierSegment2D.idl> 40cdf0e10cSrcweir#endif 41cdf0e10cSrcweir#ifndef __com_sun_star_geometry_RealRectangle2D_idl__ 42cdf0e10cSrcweir#include <com/sun/star/geometry/RealRectangle2D.idl> 43cdf0e10cSrcweir#endif 44cdf0e10cSrcweir#ifndef __com_sun_star_rendering_ViewState_idl__ 45cdf0e10cSrcweir#include <com/sun/star/rendering/ViewState.idl> 46cdf0e10cSrcweir#endif 47cdf0e10cSrcweir#ifndef __com_sun_star_rendering_RenderState_idl__ 48cdf0e10cSrcweir#include <com/sun/star/rendering/RenderState.idl> 49cdf0e10cSrcweir#endif 50cdf0e10cSrcweir#ifndef __com_sun_star_rendering_StringContext_idl__ 51cdf0e10cSrcweir#include <com/sun/star/rendering/StringContext.idl> 52cdf0e10cSrcweir#endif 53cdf0e10cSrcweir#ifndef __com_sun_star_rendering_TextHit_idl__ 54cdf0e10cSrcweir#include <com/sun/star/rendering/TextHit.idl> 55cdf0e10cSrcweir#endif 56cdf0e10cSrcweir#ifndef __com_sun_star_rendering_Caret_idl__ 57cdf0e10cSrcweir#include <com/sun/star/rendering/Caret.idl> 58cdf0e10cSrcweir#endif 59cdf0e10cSrcweir 60cdf0e10cSrcweir 61cdf0e10cSrcweirmodule com { module sun { module star { module rendering { 62cdf0e10cSrcweir 63cdf0e10cSrcweirpublished interface XCanvas; 64cdf0e10cSrcweirpublished interface XCanvasFont; 65cdf0e10cSrcweirpublished interface XPolyPolygon2D; 66cdf0e10cSrcweir 67cdf0e10cSrcweir/** This is the central interface for text layouting.<p> 68cdf0e10cSrcweir 69cdf0e10cSrcweir This is the central interface for text-related tasks more 70cdf0e10cSrcweir complicated than simple string rendering. Note that all query 71cdf0e10cSrcweir methods are subject to the current layout state of this 72cdf0e10cSrcweir object. That is, calls to <member>XTextLayout::justify()</member> 73cdf0e10cSrcweir or <member>XTextLayout::applyLogicalAdvancements()</member> are 74cdf0e10cSrcweir likely to change subsequent output of those query methods.<p> 75cdf0e10cSrcweir 76cdf0e10cSrcweir Similar to <type>XCanvasFont</type>, all measurements and 77cdf0e10cSrcweir coordinates accepted and returned by this interface are relative 78cdf0e10cSrcweir to the font's local coordinate system (which only equals device 79cdf0e10cSrcweir coordinate space, if the combined render transformation used 80cdf0e10cSrcweir during text output is the identity transformation). Conversely, if 81cdf0e10cSrcweir the combined transformation used during text output is 82cdf0e10cSrcweir <em>not</em> the identity transformation, all measurements 83cdf0e10cSrcweir returned by this interface should be subjected to that 84cdf0e10cSrcweir transformation, to yield values in device coordinate space. 85cdf0e10cSrcweir Depending on the underlying font technology, actual device output 86cdf0e10cSrcweir might be off by up to one device pixel from the transformed 87cdf0e10cSrcweir metrics.<p> 88cdf0e10cSrcweir 89d695a2a0SJürgen Schmidt @since OpenOffice 2.0 90cdf0e10cSrcweir */ 91cdf0e10cSrcweirpublished interface XTextLayout : ::com::sun::star::uno::XInterface 92cdf0e10cSrcweir{ 93cdf0e10cSrcweir /** Extract the polygonal shapes of the layouted text.<p> 94cdf0e10cSrcweir 95cdf0e10cSrcweir Each glyph is represented by a separate 96cdf0e10cSrcweir <type>XPolyPolygon2D</type> in the returned sequence.<p> 97cdf0e10cSrcweir 98cdf0e10cSrcweir @returns a sequence of <type>XPolyPolygon2D</type> in font 99cdf0e10cSrcweir coordinate space, one for every glyph. 100cdf0e10cSrcweir */ 101cdf0e10cSrcweir sequence<XPolyPolygon2D> queryTextShapes(); 102cdf0e10cSrcweir 103cdf0e10cSrcweir //------------------------------------------------------------------------- 104cdf0e10cSrcweir 105cdf0e10cSrcweir /** Query the ink bounding boxes for every glyph in the layouted 106cdf0e10cSrcweir text.<p> 107cdf0e10cSrcweir 108cdf0e10cSrcweir Ink, or tight bounding boxes in this case means that for 109cdf0e10cSrcweir e.g. an 'a', the bounding box for the 110cdf0e10cSrcweir <type>XPolyPolygon2D</type> describing the glyph 'a' is 111cdf0e10cSrcweir returned, not the logical dimensions of the character in the 112cdf0e10cSrcweir font.<p> 113cdf0e10cSrcweir 114cdf0e10cSrcweir @returns a sequence of rectangles in font coordinate space, 115cdf0e10cSrcweir specifying the bounds, one for every glyph. 116cdf0e10cSrcweir 117cdf0e10cSrcweir @see <member>XTextLayout::queryMeasures()</member> 118cdf0e10cSrcweir */ 119cdf0e10cSrcweir sequence<::com::sun::star::geometry::RealRectangle2D > queryInkMeasures(); 120cdf0e10cSrcweir 121cdf0e10cSrcweir //------------------------------------------------------------------------- 122cdf0e10cSrcweir 123cdf0e10cSrcweir /** Query the logical bounding boxes of every character in the 124cdf0e10cSrcweir given text string.<p> 125cdf0e10cSrcweir 126cdf0e10cSrcweir Logical bounding boxes means the space that the font allocates 127cdf0e10cSrcweir for the given character, which, e.g. for a '.', might be 128cdf0e10cSrcweir significantly broader than the bounds returned via 129cdf0e10cSrcweir <member>XTextLayout::queryInkMeasures()</member>. 130cdf0e10cSrcweir 131cdf0e10cSrcweir @returns a sequence of rectangles specifying the bounds in 132cdf0e10cSrcweir font coordinate space, one for every glyph. 133cdf0e10cSrcweir 134cdf0e10cSrcweir @see <member>XTextLayout::queryInkMeasures()</member> 135cdf0e10cSrcweir */ 136cdf0e10cSrcweir sequence<::com::sun::star::geometry::RealRectangle2D> queryMeasures(); 137cdf0e10cSrcweir 138cdf0e10cSrcweir //------------------------------------------------------------------------- 139cdf0e10cSrcweir 140cdf0e10cSrcweir /** Query the advancements for every character in the input string.<p> 141cdf0e10cSrcweir 142cdf0e10cSrcweir This method returns a sequence of advancements, one for each 143cdf0e10cSrcweir character in the input string (<em>not</em> for every 144cdf0e10cSrcweir glyph. There might be multiple glyphs per input character, or 145cdf0e10cSrcweir multiple input characters per glyph). Adding up all 146cdf0e10cSrcweir advancements yields the total advancement of this layout. To 147cdf0e10cSrcweir manipulate the layout of a string on the level of characters, 148cdf0e10cSrcweir this method can be used to query for the layout's default 149cdf0e10cSrcweir advancements, which can subsequently be changed and applied to 150cdf0e10cSrcweir the layout via 151cdf0e10cSrcweir <member>XTextLayout::applyLogicalAdvancements()</member>.<p> 152cdf0e10cSrcweir 153cdf0e10cSrcweir @returns a sequence of <type>double</type> specifying the 154cdf0e10cSrcweir advancements per character in font coordinate space. 155cdf0e10cSrcweir 156cdf0e10cSrcweir @see <member>XTextLayout::applyLogicalAdvancements()</member> 157cdf0e10cSrcweir */ 158cdf0e10cSrcweir sequence<double> queryLogicalAdvancements(); 159cdf0e10cSrcweir 160cdf0e10cSrcweir //------------------------------------------------------------------------- 161cdf0e10cSrcweir 162cdf0e10cSrcweir /** Apply explicit advancements for every character in the layout 163cdf0e10cSrcweir string.<p> 164cdf0e10cSrcweir 165cdf0e10cSrcweir This method applies the specified advancements to every 166cdf0e10cSrcweir logical character in the input string (<em>not</em> for every 167cdf0e10cSrcweir glyph. There might be multiple glyphs per input character, or 168cdf0e10cSrcweir multiple input characters per glyph). This is useful to 169*6d53c851Smseidel explicitly manipulate the exact output positions of 170cdf0e10cSrcweir characters, e.g. relative to a reference output device.<p> 171cdf0e10cSrcweir 172cdf0e10cSrcweir @param aAdvancements 173cdf0e10cSrcweir A sequence of character advancements, in font coordinate 174cdf0e10cSrcweir space. 175cdf0e10cSrcweir 176cdf0e10cSrcweir @see <member>XTextLayout::queryLogicalAdvancements()</member> 177cdf0e10cSrcweir 178cdf0e10cSrcweir @throws <type>com::sun::star::lang::IllegalArgumentException</type> 179cdf0e10cSrcweir if the size of aAdvancements does not match the number of 180cdf0e10cSrcweir characters in the text. 181cdf0e10cSrcweir */ 182cdf0e10cSrcweir void applyLogicalAdvancements( [in] sequence< double > aAdvancements ) 183cdf0e10cSrcweir raises (com::sun::star::lang::IllegalArgumentException); 184cdf0e10cSrcweir 185cdf0e10cSrcweir //------------------------------------------------------------------------- 186cdf0e10cSrcweir 187cdf0e10cSrcweir /** Query the overall bounding box of the text.<p> 188cdf0e10cSrcweir 189cdf0e10cSrcweir This method is similar to 190cdf0e10cSrcweir <member>XTextLayout::queryTextMeasures</member>, only that the 191cdf0e10cSrcweir overall bounds are returned by this method.<p> 192cdf0e10cSrcweir 193cdf0e10cSrcweir @return the overall bounding box for the given layout, in font 194cdf0e10cSrcweir coordinate space. 195cdf0e10cSrcweir */ 196cdf0e10cSrcweir ::com::sun::star::geometry::RealRectangle2D queryTextBounds(); 197cdf0e10cSrcweir 198cdf0e10cSrcweir //------------------------------------------------------------------------- 199cdf0e10cSrcweir 200cdf0e10cSrcweir /** Justify the text to the given size.<p> 201cdf0e10cSrcweir 202cdf0e10cSrcweir This method is the core of the <type>XTextLayout</type> 203cdf0e10cSrcweir interface, because it layouts the text in a typographically 204cdf0e10cSrcweir correct way into the available space.<p> 205cdf0e10cSrcweir 206cdf0e10cSrcweir @param nSize 207cdf0e10cSrcweir The requested size of the text after justification (either 208cdf0e10cSrcweir width or height, depending on the writing mode). This 209cdf0e10cSrcweir parameter is interpreted in font coordinate space. 210cdf0e10cSrcweir 211cdf0e10cSrcweir @return the actual size of the text after the justification in 212cdf0e10cSrcweir the font coordinate space. Depending on the font and the 213cdf0e10cSrcweir script type, this might be somewhat different from the size 214cdf0e10cSrcweir requested. If the requested size was smaller than the 215cdf0e10cSrcweir justification algorithm could compress the text, this value 216cdf0e10cSrcweir might even be significantly larger than nSize. 217cdf0e10cSrcweir 218cdf0e10cSrcweir @throws <type>com::sun::star::lang::IllegalArgumentException</type> 219cdf0e10cSrcweir if nSize is 0 or negative. 220cdf0e10cSrcweir */ 221cdf0e10cSrcweir double justify( [in] double nSize ) 222cdf0e10cSrcweir raises (com::sun::star::lang::IllegalArgumentException); 223cdf0e10cSrcweir 224cdf0e10cSrcweir //------------------------------------------------------------------------- 225cdf0e10cSrcweir 226cdf0e10cSrcweir /** Justify a number of text layouts to the given size.<p> 227cdf0e10cSrcweir 228cdf0e10cSrcweir This method can be used to combine the layout of a text line 229cdf0e10cSrcweir into a single justification run. This is e.g. useful if the 230cdf0e10cSrcweir line consists of several text portions (e.g. because of 231cdf0e10cSrcweir different fonts or colors), but it is desirable to spread the 232cdf0e10cSrcweir available space more globally across the different layout 233cdf0e10cSrcweir objects. If, for example, one layout object contains 234cdf0e10cSrcweir significantly more whitespace or Kashidas than the rest, this 235cdf0e10cSrcweir method can assign proportionally more space to this layout 236cdf0e10cSrcweir object.<p> 237cdf0e10cSrcweir 238cdf0e10cSrcweir @param aNextLayouts 239cdf0e10cSrcweir A sequence of layouts following this one in logical text 240cdf0e10cSrcweir order. 241cdf0e10cSrcweir 242cdf0e10cSrcweir @param nSize 243cdf0e10cSrcweir The requested size of the text for <em>all</em> 244cdf0e10cSrcweir <type>XTextLayout</type>s after justification in font 245cdf0e10cSrcweir coordinate space (either width or height, depending on the 246cdf0e10cSrcweir writing mode). 247cdf0e10cSrcweir 248cdf0e10cSrcweir @return the actual size of the text after the justification, 249cdf0e10cSrcweir in font coordinate space. Depending on the font and the 250cdf0e10cSrcweir script type, this might be somewhat different from the size 251cdf0e10cSrcweir requested. If the requested size was smaller than the 252cdf0e10cSrcweir justification algorithm could compress the text, this value 253cdf0e10cSrcweir might even be significantly larger than nSize. 254cdf0e10cSrcweir 255cdf0e10cSrcweir @throws <type>com::sun::star::lang::IllegalArgumentException</type> 256cdf0e10cSrcweir if one of the parameters are not in the valid range. 257cdf0e10cSrcweir */ 258cdf0e10cSrcweir double combinedJustify( [in] sequence< XTextLayout > aNextLayouts, [in] double nSize ) 259cdf0e10cSrcweir raises (com::sun::star::lang::IllegalArgumentException); 260cdf0e10cSrcweir 261cdf0e10cSrcweir //------------------------------------------------------------------------- 262cdf0e10cSrcweir 263cdf0e10cSrcweir /** This method determines the hit position in the text.<p> 264cdf0e10cSrcweir 265cdf0e10cSrcweir This method determines the index of the character hit at the 266cdf0e10cSrcweir specified position (in font coordinate space).<p> 267cdf0e10cSrcweir 268cdf0e10cSrcweir @param aHitPoint 269cdf0e10cSrcweir The position in font coordinate space to determine the 270cdf0e10cSrcweir underlying character index for. 271cdf0e10cSrcweir 272cdf0e10cSrcweir */ 273cdf0e10cSrcweir TextHit getTextHit( [in] ::com::sun::star::geometry::RealPoint2D aHitPoint ); 274cdf0e10cSrcweir 275cdf0e10cSrcweir //------------------------------------------------------------------------- 276cdf0e10cSrcweir 277cdf0e10cSrcweir /** This method converts an insertion index to a caret.<p> 278cdf0e10cSrcweir 279cdf0e10cSrcweir This method generates caret information for a given insertion 280cdf0e10cSrcweir point in the layout text.<p> 281cdf0e10cSrcweir 282cdf0e10cSrcweir @param nInsertionIndex 283cdf0e10cSrcweir The insertion index, as e.g. returned by 284cdf0e10cSrcweir <member>XTextLayout::getTextHit()</member>. This value must be 285cdf0e10cSrcweir in the range 0 up to the number of characters in the string. 286cdf0e10cSrcweir 287cdf0e10cSrcweir @param bExcludeLigatures 288cdf0e10cSrcweir Set this to <TRUE/>, to skip the positions inside ligatures as 289cdf0e10cSrcweir valid caret placements. That means, on cannot e.g. set the 290cdf0e10cSrcweir caret between the 'f' and the 'i' in a 'fi' ligature. 291cdf0e10cSrcweir 292cdf0e10cSrcweir @returns the generated Caret structure. 293cdf0e10cSrcweir 294cdf0e10cSrcweir @throws <type>com::sun::star::lang::IndexOutOfBoundsException</type> 295cdf0e10cSrcweir if nInsertionIndex is outside the permissible range. 296cdf0e10cSrcweir */ 297cdf0e10cSrcweir Caret getCaret( [in] long nInsertionIndex, 298cdf0e10cSrcweir [in] boolean bExcludeLigatures ) 299cdf0e10cSrcweir raises (com::sun::star::lang::IndexOutOfBoundsException); 300cdf0e10cSrcweir 301cdf0e10cSrcweir //------------------------------------------------------------------------- 302cdf0e10cSrcweir 303cdf0e10cSrcweir /** This method calculates a new insertion index.<p> 304cdf0e10cSrcweir 305cdf0e10cSrcweir This method calculates a new insertion index, given a start 306cdf0e10cSrcweir index and the number of characters to skip. This is most 307cdf0e10cSrcweir useful for caret traveling.<p> 308cdf0e10cSrcweir 309cdf0e10cSrcweir @param nStartIndex 310cdf0e10cSrcweir The insertion index to start from. 311cdf0e10cSrcweir 312cdf0e10cSrcweir @param nCaretAdvancement 313cdf0e10cSrcweir For values greater than 0, the caret is visually moved to the 314cdf0e10cSrcweir right. For values smaller than 0, the caret is visually moved 315cdf0e10cSrcweir to the left. 316cdf0e10cSrcweir 317cdf0e10cSrcweir @returns the new insertion index. 318cdf0e10cSrcweir 319cdf0e10cSrcweir @throws <type>com::sun::star::lang::IndexOutOfBoundsException</type> 320cdf0e10cSrcweir if nStartIndex or nCaretAdvancement is outside the permissible 321cdf0e10cSrcweir range. 322cdf0e10cSrcweir */ 323cdf0e10cSrcweir long getNextInsertionIndex( [in] long nStartIndex, 324cdf0e10cSrcweir [in] long nCaretAdvancement, 325cdf0e10cSrcweir [in] boolean bExcludeLigatures ) 326cdf0e10cSrcweir raises (com::sun::star::lang::IndexOutOfBoundsException); 327cdf0e10cSrcweir 328cdf0e10cSrcweir //------------------------------------------------------------------------- 329cdf0e10cSrcweir 330cdf0e10cSrcweir /** This method generates a highlight polygon.<p> 331cdf0e10cSrcweir 332cdf0e10cSrcweir This method generates a highlighting polygon from two 333cdf0e10cSrcweir insertion indices. This polygon will be visually continuous, 334cdf0e10cSrcweir i.e. will not have non-highlighted text in between.<p> 335cdf0e10cSrcweir 336cdf0e10cSrcweir @param nStartIndex 337cdf0e10cSrcweir Start of the selection range. 338cdf0e10cSrcweir 339cdf0e10cSrcweir @param nEndIndex 340cdf0e10cSrcweir End of the selection range. 341cdf0e10cSrcweir 342cdf0e10cSrcweir @return the highlight polygon in the font coordinate space. 343cdf0e10cSrcweir 344cdf0e10cSrcweir @throws <type>com::sun::star::lang::IndexOutOfBoundsException</type> 345cdf0e10cSrcweir if nStartIndex or nEndIndex are outside the permissible 346cdf0e10cSrcweir range. 347cdf0e10cSrcweir */ 348cdf0e10cSrcweir XPolyPolygon2D queryVisualHighlighting( [in] long nStartIndex, 349cdf0e10cSrcweir [in] long nEndIndex ) 350cdf0e10cSrcweir raises (com::sun::star::lang::IndexOutOfBoundsException); 351cdf0e10cSrcweir 352cdf0e10cSrcweir //------------------------------------------------------------------------- 353cdf0e10cSrcweir 354cdf0e10cSrcweir /** This method generates a highlight polygon.<p> 355cdf0e10cSrcweir 356cdf0e10cSrcweir This method generates a highlighting polygon from two 357cdf0e10cSrcweir insertion indices. This polygon will not always be visually 358cdf0e10cSrcweir continuous, if e.g. the text direction changes in the middle 359cdf0e10cSrcweir of the selection, the might be parts visually between start 360cdf0e10cSrcweir and end position that are not selected.<p> 361cdf0e10cSrcweir 362cdf0e10cSrcweir @param nStartIndex 363cdf0e10cSrcweir Start of the selection range. 364cdf0e10cSrcweir 365cdf0e10cSrcweir @param nEndIndex 366cdf0e10cSrcweir End of the selection range. 367cdf0e10cSrcweir 368cdf0e10cSrcweir @return the highlight polygon in the font coordinate space. 369cdf0e10cSrcweir 370cdf0e10cSrcweir @throws <type>com::sun::star::lang::IndexOutOfBoundsException</type> 371cdf0e10cSrcweir if nStartIndex or nEndIndex are outside the permissible 372cdf0e10cSrcweir range. 373cdf0e10cSrcweir */ 374cdf0e10cSrcweir XPolyPolygon2D queryLogicalHighlighting( [in] long nStartIndex, 375cdf0e10cSrcweir [in] long nEndIndex ) 376cdf0e10cSrcweir raises (com::sun::star::lang::IndexOutOfBoundsException); 377cdf0e10cSrcweir 378cdf0e10cSrcweir //------------------------------------------------------------------------- 379cdf0e10cSrcweir 380cdf0e10cSrcweir /** This method yields the baseline offset.<p> 381cdf0e10cSrcweir 382cdf0e10cSrcweir This method returns the baseline offset for this layout 383cdf0e10cSrcweir object, either measured from the top or the left edge, 384cdf0e10cSrcweir depending on the writing direction (horizontally or 385cdf0e10cSrcweir vertically). Since rendering this layout via 386cdf0e10cSrcweir <member>XCanvas::drawTextLayout()</member> outputs relative to 387cdf0e10cSrcweir the layout object's baseline, this method can be used to 388cdf0e10cSrcweir e.g. output relative to the left, top edge.<p> 389cdf0e10cSrcweir 390cdf0e10cSrcweir @returns the distance of the main baseline from the top or the 391cdf0e10cSrcweir left edge of this object, depending on the writing direction. 392cdf0e10cSrcweir */ 393cdf0e10cSrcweir double getBaselineOffset(); 394cdf0e10cSrcweir 395cdf0e10cSrcweir //------------------------------------------------------------------------- 396cdf0e10cSrcweir 397cdf0e10cSrcweir /** This method returns the main writing direction.<p> 398cdf0e10cSrcweir 399cdf0e10cSrcweir This method returns the main writing direction of this layout, 400cdf0e10cSrcweir i.e. either LEFT_TO_RIGHT or RIGHT_TO_LEFT.<p> 401cdf0e10cSrcweir 402cdf0e10cSrcweir @returns the main text direction of this layout. 403cdf0e10cSrcweir */ 404cdf0e10cSrcweir byte getMainTextDirection(); 405cdf0e10cSrcweir 406cdf0e10cSrcweir //------------------------------------------------------------------------- 407cdf0e10cSrcweir 408cdf0e10cSrcweir /** Request the associated font for this layout.. 409cdf0e10cSrcweir 410cdf0e10cSrcweir @returns the associated font for this layout. 411cdf0e10cSrcweir */ 412cdf0e10cSrcweir XCanvasFont getFont(); 413cdf0e10cSrcweir 414cdf0e10cSrcweir //------------------------------------------------------------------------- 415cdf0e10cSrcweir 416cdf0e10cSrcweir /** Request the text this layout contains. 417cdf0e10cSrcweir 418cdf0e10cSrcweir @returns the text this layout contains. 419cdf0e10cSrcweir */ 420cdf0e10cSrcweir StringContext getText(); 421cdf0e10cSrcweir 422cdf0e10cSrcweir //------------------------------------------------------------------------- 423cdf0e10cSrcweir 424cdf0e10cSrcweir}; 425cdf0e10cSrcweir 426cdf0e10cSrcweir}; }; }; }; 427cdf0e10cSrcweir 428cdf0e10cSrcweir#endif 429