/*************************************************************************
 *
 *  OpenOffice.org - a multi-platform office productivity suite
 *
 *  $RCSfile: XTextConversion.idl,v $
 *
 *  $Revision: 1.6 $
 *
 *  last change: $Author: rt $ $Date: 2005-09-08 01:58:17 $
 *
 *  The Contents of this file are made available subject to
 *  the terms of GNU Lesser General Public License Version 2.1.
 *
 *
 *    GNU Lesser General Public License Version 2.1
 *    =============================================
 *    Copyright 2005 by Sun Microsystems, Inc.
 *    901 San Antonio Road, Palo Alto, CA 94303, USA
 *
 *    This library is free software; you can redistribute it and/or
 *    modify it under the terms of the GNU Lesser General Public
 *    License version 2.1, as published by the Free Software Foundation.
 *
 *    This library is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *    Lesser General Public License for more details.
 *
 *    You should have received a copy of the GNU Lesser General Public
 *    License along with this library; if not, write to the Free Software
 *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 *    MA  02111-1307  USA
 *
 ************************************************************************/

#ifndef __com_sun_star_i18n_XTextConversion_idl__
#define __com_sun_star_i18n_XTextConversion_idl__

#ifndef __com_sun_star_uno_XInterface_idl__
#include <com/sun/star/uno/XInterface.idl>
#endif

#ifndef __com_sun_star_lang_Locale_idl__
#include <com/sun/star/lang/Locale.idl>
#endif

#ifndef __com_sun_star_i18n_TextConversionResult_idl__
#include <com/sun/star/i18n/TextConversionResult.idl>
#endif

#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
#include <com/sun/star/lang/IllegalArgumentException.idl>
#endif

#ifndef __com_sun_star_lang_NoSupportException_idl__
#include <com/sun/star/lang/NoSupportException.idl>
#endif


//=============================================================================

module com {  module sun {  module star {  module i18n {

//=============================================================================

/** Method to convert text from one type to another

     @since OOo 1.1.2
*/
published interface XTextConversion : ::com::sun::star::uno::XInterface
{
    //---------------------------------------------------------------------
    /** Method to search dictionaries for the conversion candidates.

        @param aText
            Text string to be converted.
        @param nStartPos
            The start position in aText for the conversion
        @param nLength
            The length of the partion in aText for the conversion
        @param aLocal
            Locale the conversion is referring to.
        @param nTextConversionType
            One of <type>TextConversionType</type> values.
        @param nTextConversionOptions
            Combination of <type>TextConversionOption</type> values.
        @returns
            <type>TextConversionResult</type>

        @throws NoSupportException
            when <var>nConversionDictionaryType</var> is not known by the implementation,
            or when the locale is not supported.
    */
    TextConversionResult getConversions(
            [in] string aText,
            [in] long nStartPos,
            [in] long nLength,
            [in] ::com::sun::star::lang::Locale aLocale,
            [in] short nTextConversionType,
            [in] long nTextConversionOptions )
        raises( com::sun::star::lang::IllegalArgumentException,
                com::sun::star::lang::NoSupportException );

    //---------------------------------------------------------------------
    /** Method to search dictionaries for the conversion candidate, if there
        are multiple candidates, it will return first one. This is for the
        conversion in non-interactive mode.

        @param aText
            Text string to be converted.
        @param nStartPos
            The start position in aText for the conversion
        @param nLength
            The length of the partion in aText for the conversion
        @param aLocal
            Locale the conversion is referring to.
        @param nTextConversionType
            One of <type>TextConversionType</type> values.
        @param nTextConversionOptions
            Combination of <type>TextConversionOption</type> values.
        @returns
            Converted text

        @throws NoSupportException
            when <var>nConversionDictionaryType</var> is not known by the implementation,
            or when the locale is not supported.
    */
    string getConversion(
            [in] string aText,
            [in] long nStartPos,
            [in] long nLength,
            [in] ::com::sun::star::lang::Locale aLocale,
            [in] short nTextConversionType,
            [in] long nTextConversionOptions )
        raises( com::sun::star::lang::IllegalArgumentException,
                com::sun::star::lang::NoSupportException );

    //---------------------------------------------------------------------
    /** Method to query if the conversion type should be interactive or
        non-interactive mode.

        @param aLocal
            Locale the conversion is referring to.
        @param nTextConversionType
            One of <type>TextConversionType</type> values.
        @param nTextConversionOptions
            Combination of <type>TextConversionOption</type> values.
        @returns
            <TRUE/> if the entry is a valid entry for the dictionary
            <FALSE/> otherwise.

        @throws NoSupportException
            when <var>nConversionDictionaryType</var> is not known by the implementation,
            or when the locale is not supported.
    */
    boolean interactiveConversion(
            [in] ::com::sun::star::lang::Locale aLocale,
            [in] short nTextConversionType,
            [in] long nTextConversionOptions )
        raises( com::sun::star::lang::IllegalArgumentException,
                com::sun::star::lang::NoSupportException );
};


//=============================================================================

}; }; }; };

#endif
