/*************************************************************************
 *
 *  $RCSfile: Settings.idl,v $
 *
 *  $Revision: 1.4 $
 *
 *  last change: $Author: vg $ $Date: 2003/04/01 09:47:03 $
 *
 *  The Contents of this file are made available subject to the terms of
 *  either of the following licenses
 *
 *         - GNU Lesser General Public License Version 2.1
 *         - Sun Industry Standards Source License Version 1.1
 *
 *  Sun Microsystems Inc., October, 2000
 *
 *  GNU Lesser General Public License Version 2.1
 *  =============================================
 *  Copyright 2000 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
 *
 *
 *  Sun Industry Standards Source License Version 1.1
 *  =================================================
 *  The contents of this file are subject to the Sun Industry Standards
 *  Source License Version 1.1 (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.openoffice.org/license.html.
 *
 *  Software provided under this License is provided on an "AS IS" basis,
 *  WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
 *  WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
 *  MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
 *  See the License for the specific provisions governing your rights and
 *  obligations concerning the Software.
 *
 *  The Initial Developer of the Original Code is: Sun Microsystems, Inc.
 *
 *  Copyright: 2002 by Sun Microsystems, Inc.
 *
 *  All Rights Reserved.
 *
 *  Contributor(s): _______________________________________
 *
 *
 ************************************************************************/
#ifndef __com_sun_star_document_Settings_idl__
#define __com_sun_star_document_Settings_idl__

#ifndef __com_sun_star_beans_XPropertySet_idl__ 
#include <com/sun/star/beans/XPropertySet.idl>
#endif
#ifndef __com_sun_star_i18n_XForbiddenCharacters_idl__
#include <com/sun/star/i18n/XForbiddenCharacters.idl>
#endif

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

module com {   module sun {   module star {   module document {

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

/** describes properties that apply to the whole document of any
    application.

    <p>For application specific settings, please refer to the
    individual services.</p>

    @see com::sun::star::text::DocumentSettings
    @see com::sun::star::sheet::DocumentSettings
    @see com::sun::star::drawing::DocumentSettings
    @see com::sun::star::presentation::DocumentSettings
 */
service Settings
{
    /** gives access to the properties implemented by this service.
     */
	interface com::sun::star::beans::XPropertySet;

    //-------------------------------------------------------------------------

    // Note: These settings are global.  However there is a note at
    // every property that shows which application currently makes use
    // of it.

    // Writer and Draw/Impress and Calc
    //-------------------------------------------------------------------------
    /** gives access to the set of forbidden characters.

        @return the
            <type scope="com::sun::star::i18n">XForbiddenCharacters</type>
            interface to allow retreival and modification of the
            forbidden characters set.
    */
    [optional, readonly, property] com::sun::star::i18n::XForbiddenCharacters ForbiddenCharacters;

    // Writer and Calc
    //-------------------------------------------------------------------------
    /** specifies the update mode for links when loading text documents.

        <p>For supported values see the constants group
        <type>LinkUpdateModes</type>.</p>
    */
    [optional, property] short LinkUpdateMode;

    // Writer and Draw/Impress and Calc
    //-------------------------------------------------------------------------
    /** printer used by the document.
     */
    [property] string PrinterName;

    // Writer and Draw/Impress and Calc
    //-------------------------------------------------------------------------
    /** platform and driver dependent printer setup data.

        <p>This property serves to capture the current printer setup
        settings, such as paper tray, printer options, etc. The data
        can typically be interpreted only by the system that generated
        it. The PrinterSetup property may be used to save and restore
        the user's printer settings.</p>
    */
    [property] sequence< byte > PrinterSetup;

    // Writer and Draw/Impress and Calc
    //-------------------------------------------------------------------------
    /** specifies if kerning is applied to Asian punctuation.

        <p>Applies only if kerning is enabled.</p>
    */
    [optional, property] boolean IsKernAsianPunctuation;

    // Writer and Draw/Impress and Calc
    //-------------------------------------------------------------------------
    /** specifies the compression (character spacing) type used for
        Asian characters.

        @see com::sun::star::text::CharacterCompressionType
    */
    [optional, property] short CharacterCompressionType;

    // Writer and Draw/Impress and Calc
    //-------------------------------------------------------------------------
    /** specifies if the user-specific settings saved within a
        document should be loaded with the document.
    */
    [optional, property] boolean ApplyUserData;

    // Writer and Calc
    //-------------------------------------------------------------------------
    /** specifies if a new version is created if a document has
        been modified and you want to close it.
    */
    [optional, property] boolean SaveVersionOnClose;

    // Writer and Draw/Impress and Calc
    //-------------------------------------------------------------------------
    /** specifies if the document should be updated when the
        template it was created from changes.

        <p>Applies only for documents that were created from a template.</p>
    */
    [optional, property] boolean UpdateFromTemplate;

    // Writer
    //-------------------------------------------------------------------------
    /** specifies if fields in text documents are updated automatically.
     */
    [optional, property] boolean FieldAutoUpdate;

    // Writer
    //-------------------------------------------------------------------------
    /** The name of the globally registered
        <service scope="com::sun::star::sdb">DataSource</service>
        from which the current data is taken.

        <p>The data source can e.g. be used for feeding a form
        letter.</p>
    */
    [optional, property] string CurrentDatabaseDataSource;

    // Writer
    //-------------------------------------------------------------------------
    /** a string value, specifying the name of the object displayed
        currently (or the SQL statement used).
    */
    [optional, property] string CurrentDatabaseCommand;

    // Writer
    //-------------------------------------------------------------------------
    // Note: What is the property DataTableName?  Is this Writer-specific?
    /** determines the interpretation of the property DataTableName.

        @see com::sun::star::sdb::CommandType
    */
    [optional, property] long CurrentDatabaseCommandType;

    // Draw and Impress
    //-------------------------------------------------------------------------
    /**
     */
    [optional, property] long DefaultTabStop;

    // Draw and Impress
    //-------------------------------------------------------------------------
    /** determines if the document will be printed as a booklet
        (brochure), i.e., two document pages are put together on one
        physical page, such that you can fold the print result and get
        a booklet.

        <p>Note, that you have to print in duplex mode, if both,
        <member>IsPrintBookletFront</member> and
        <member>IsPrintBookletBack</member> are set to <TRUE/>.</p>
     */
    [optional, property] boolean IsPrintBooklet;

    // Draw and Impress
    //-------------------------------------------------------------------------
    /** is only effective, if <member>IsPrintBooklet</member> is
        <TRUE/>.  If this property is also <TRUE/>, only the fronts of
        the pages of your booklet are printed.

        <p>This is especially useful, if your printer does not supply
        duplex printing.</p>
     */
    [optional, property] boolean IsPrintBookletFront;

    // Draw and Impress
    //-------------------------------------------------------------------------
    /** is only effective, if <member>IsPrintBooklet</member> is
        <TRUE/>.  If this property is also <TRUE/>, only the backs of
        the pages of your booklet are printed.

        <p>This is especially useful, if your printer does not supply
        duplex printing.</p>
     */
    [optional, property] boolean IsPrintBookletBack;

    // Draw and Impress
    //-------------------------------------------------------------------------
    // Note: Define a constant group for that?
    /**
     */
    [optional, property] long PrintQuality;

    // Draw and Impress
    //-------------------------------------------------------------------------
    /** contains the URL that points to a color table (file extension
        .soc) that will be used for showing a palette in dialogs using
        colors.
     */
    [optional, property] string ColorTableURL;

    // Draw and Impress
    //-------------------------------------------------------------------------
    /**
     */
    [optional, property] string DashTableURL;

    // Draw and Impress
    //-------------------------------------------------------------------------
    /**
     */
    [optional, property] string LineEndTableURL;

    // Draw and Impress
    //-------------------------------------------------------------------------
    /**
     */
    [optional, property] string HatchTableURL;

    // Draw and Impress
    //-------------------------------------------------------------------------
    /**
     */
    [optional, property] string GradientTableURL;

    // Draw and Impress
    //-------------------------------------------------------------------------
    /**
     */
    [optional, property] string BitmapTableURL;

    // Calc
    //-------------------------------------------------------------------------
    /**
     */
    [optional, property] boolean AutoCalculate;

    // Writer, later others
    //-------------------------------------------------------------------------
    /** forbid use of printer metrics for layout

        <p>For supported values see the constants group
        <type>PrinterIndependentLayout</type>.</p>
     */
    [optional, property] short PrinterIndependentLayout;

};

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

}; }; }; };

#endif
