1/************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27 28#ifndef __com_sun_star_util_XStringAbbreviation_idl__ 29#define __com_sun_star_util_XStringAbbreviation_idl__ 30 31#ifndef __com_sun_star_uno_XInterface_idl__ 32#include <com/sun/star/uno/XInterface.idl> 33#endif 34 35module com { module sun { module star { module util { 36 published interface XStringWidth; 37}; }; }; }; 38 39module com { module sun { module star { module util { 40 41//============================================================================ 42/** Abbreviate arbitrary strings. 43 44 <p>It is expected that there will be different implementations of this 45 interface, that each expect strings conforming to a certain structure 46 (e.g., URIs, platform-specific file paths, or newsgroup names). The 47 abbreviation algorithms will then take into account the structural 48 information.</p> 49 50 @see XStringWidth 51 */ 52published interface XStringAbbreviation: com::sun::star::uno::XInterface 53{ 54 //------------------------------------------------------------------------ 55 /** Abbreviate a string, so that the resulting abbreviated string is not 56 wider than some given width. 57 58 <p>The width of a string is an abstract concept here, measured via 59 an <type>XStringWidth</type> interface. Examples are the number of 60 characters in the string (<type>XStringWidth</type> will measure the 61 string's length), or the width in pixel when displayed with a specific 62 font (which <type>XStringWidth</type> would encapsulate).</p> 63 64 @param xStringWidth 65 The interface that makes concrete the abstract notion of string width. 66 67 @param nWidth 68 The resulting abbreviated string's width will be no larger than this. 69 70 @param aString 71 The string that is abbreviated. 72 73 @returns 74 an abbreviated string. 75 */ 76 string abbreviateString([in] XStringWidth xStringWidth, 77 [in] long nWidth, 78 [in] string aString); 79}; 80 81}; }; }; }; 82 83#endif 84