/**************************************************************
 * 
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 * 
 *************************************************************/


#ifndef __com_sun_star_text_ViewSettings_idl__
#define __com_sun_star_text_ViewSettings_idl__

#ifndef __com_sun_star_beans_XPropertySet_idl__
#include <com/sun/star/beans/XPropertySet.idl>
#endif
#ifndef __com_sun_star_view_DocumentZoomType_idl__
#include <com/sun/star/view/DocumentZoomType.idl>
#endif
#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
#include <com/sun/star/lang/IllegalArgumentException.idl>
#endif

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

 module com {  module sun {  module star {  module text {

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

// DocMerge from xml: service com::sun::star::text::ViewSettings
/** provides access to the settings of the controller of a text document.
 */
published service ViewSettings
{
	// DocMerge: empty anyway
	interface com::sun::star::beans::XPropertySet;

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

	// DocMerge from xml: property com::sun::star::text::ViewSettings::ShowAnnotations
	/** If this property is <TRUE/>, annotations (notes) are visible.
	 */
	[property] boolean ShowAnnotations;

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

	// DocMerge from xml: property com::sun::star::text::ViewSettings::ShowBreaks
	/** If this property is <TRUE/>, paragraph line breaks are visible.
	 */
	[property] boolean ShowBreaks;

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

    // DocMerge from xml: property com::sun::star::text::ViewSettings::ShowFieldCommandsShowDrawings
	/** If this property is <TRUE/>, shapes are visible.
	 */
	[property] boolean ShowDrawings;

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

	// DocMerge from xml: property com::sun::star::text::ViewSettings::ShowFieldCommands
	/** If this property is <TRUE/>, text fields are shown with their commands; otherwise
		the content is visible.
	 */
	[property] boolean ShowFieldCommands;

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

	// DocMerge from xml: property com::sun::star::text::ViewSettings::ShowFootnoteBackground
	/** If this property is <TRUE/>, footnotes symbols are displayed with gray background.
	 */
	[property] boolean ShowFootnoteBackground;

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

	// DocMerge from xml: property com::sun::star::text::ViewSettings::ShowGraphics
	/** If this property is <TRUE/>, graphic objects are visible.
	 */
	[property] boolean ShowGraphics;

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

	// DocMerge from xml: property com::sun::star::text::ViewSettings::ShowHiddenParagraphs
	/** If this property is <TRUE/>, hidden paragraghs are displayed.
	 */
	[property] boolean ShowHiddenParagraphs;

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

	// DocMerge from xml: property com::sun::star::text::ViewSettings::ShowHiddenText
	/** If this property is <TRUE/>, hidden text is displayed.
	 */
	[property] boolean ShowHiddenText;

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

         /** ShowHoriRuler and ShowVertRuler determine whether a ruler is visible.
         */
        [property] boolean ShowRulers;

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

        /** If this property is <TRUE/> and the property ShowRulers is <TRUE/>,
           the horizontal ruler is displayed.
	 */
	[property] boolean ShowHoriRuler;

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

        /** If this property is <TRUE/> and the property ShowRulers is <TRUE/>,
           the horizontal scroll bar is displayed.
	 */
	[property] boolean ShowHoriScrollBar;

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

	// DocMerge from xml: property com::sun::star::text::ViewSettings::ShowIndexMarkBackground
	/** If this property is <TRUE/>, index marks are displayed with gray background.
	 */
	[property] boolean ShowIndexMarkBackground;

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

	// DocMerge from xml: property com::sun::star::text::ViewSettings::ShowParaBreaks
	/** If this property is <TRUE/>, paragraph breaks are visible.
	 */
	[property] boolean ShowParaBreaks;

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

	// DocMerge from xml: property com::sun::star::text::ViewSettings::ShowProtectedSpaces
	/** If this property is <TRUE/>, protected spaces (hard spaces) are displayed with gray
		background.
	 */
	[property] boolean ShowProtectedSpaces;

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

	// DocMerge from xml: property com::sun::star::text::ViewSettings::ShowSoftHyphens
	/** If this property is <TRUE/>, soft hyphens are displayed with gray background.
	 */
	[property] boolean ShowSoftHyphens;

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

	// DocMerge from xml: property com::sun::star::text::ViewSettings::ShowSpaces
	/** If this property is <TRUE/>, spaces are displayed with dots.
	 */
	[property] boolean ShowSpaces;

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

	// DocMerge from xml: property com::sun::star::text::ViewSettings::ShowTableBoundaries
	/** If this property is <TRUE/>, table boundaries are displayed.
	 */
	[property] boolean ShowTableBoundaries;

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

	// DocMerge from xml: property com::sun::star::text::ViewSettings::ShowTables
	/** If this property is <TRUE/>, tables are visible.
	 */
	[property] boolean ShowTables;

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

	// DocMerge from xml: property com::sun::star::text::ViewSettings::ShowTabstops
	/** If this property is <TRUE/>, tab stops are visible.
	 */
	[property] boolean ShowTabstops;

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

	// DocMerge from xml: property com::sun::star::text::ViewSettings::ShowTextBoundaries
	/** If this property is <TRUE/>, text boundaries are displayed.
	 */
	[property] boolean ShowTextBoundaries;

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

	// DocMerge from xml: property com::sun::star::text::ViewSettings::ShowTextFieldBackground
	/** If this property is <TRUE/>, text fields are displayed with gray background.
	 */
	[property] boolean ShowTextFieldBackground;

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

	// DocMerge from xml: property com::sun::star::text::ViewSettings::ShowVertRuler
	/** If this property is <TRUE/>, the vertical ruler is displayed.
	 */
	[property] boolean ShowVertRuler;

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

	// DocMerge from xml: property com::sun::star::text::ViewSettings::ShowVertScrollBar
	/** If this property is <TRUE/>, the vertical scroll bar is displayed.
	 */
	[property] boolean ShowVertScrollBar;

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

	// DocMerge from xml: property com::sun::star::text::ViewSettings::SmoothScrolling
	/** If this property is <TRUE/>, smooth scrolling is active.
	 */
	[property] boolean SmoothScrolling;

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

	// DocMerge from xml: property com::sun::star::text::ViewSettings::SolidMarkHandles
	/** If this property is <TRUE/>, handles of drawing objects are visible.
	 */
	[property] boolean SolidMarkHandles;
    //-------------------------------------------------------------------------
    /** If this property is <TRUE/>, the vertical ruler is aligned to the right side
     of the view and the vertical scrollbar is on the left.
	 */
    [property] boolean IsVertRulerRightAligned;

    //-------------------------------------------------------------------------
    /** If this property is <TRUE/> the document will be displayed as if it
        were a HTML document.
	 */
    [property] boolean ShowOnlineLayout;

    //-------------------------------------------------------------------------
    /** This property defines the zoom type for the document.

        @see com::sun::star::view::DocumentZoomType
     */
    [property] short ZoomType;

    //-------------------------------------------------------------------------
    /** Defines the zoom value to use.
        Valid only if the ZoomType is set to
        <member scope="com::sun::star::view::DocumentZoomType">BY_VALUE</member>.
	 */
    [property] short ZoomValue;
    //-------------------------------------------------------------------------
    /** If this property is <TRUE/> hyperlinks in the document are executed (loaded) on
     mouse click. Otherwise they are handled like normal text.
         */
    [optional, property] boolean IsExecuteHyperlinks;

    //-------------------------------------------------------------------------
    /** Specifies whether to display the grid or not

        @since OOo 2.0
     */
    [optional, property] boolean IsRasterVisible;

    //-------------------------------------------------------------------------
    /** Specifies whether to move frames, drawing elements, and form
        functions only between grid points.

        @since OOo 2.0
     */
    [optional, property] boolean IsSnapToRaster;

    //-------------------------------------------------------------------------
    /** Specifies the number of intervals between grid points on the X-axis.

        <p>The value must be greater or equal to 0, and the application
        may enforce an upper bound for the value.</p>

        @since OOo 2.0
        @throws com::sun::star::lang::IllegalArgumentException
            if the value is out of bounds.
     */
    [optional, property] long RasterSubdivisionX;

    //-------------------------------------------------------------------------
    /** Specifies the number of intervals between grid points on the Y-axis.

        <p>The value must be greater or equal to 0, and the application
        may enforce an upper bound for the value.</p>

        @since OOo 2.0
        @throws com::sun::star::lang::IllegalArgumentException
            if the value is out of bounds.
     */
    [optional, property] long RasterSubdivisionY;

    //-------------------------------------------------------------------------
    /** Defines the unit of measure for the spacing between grid points
        on the X-axis.

        <p>The value must be greater than 0. The application
        may enforce more restricting bounds for the value.</p>

        @since OOo 2.0
        @throws com::sun::star::lang::IllegalArgumentException
            if the value is out of bounds.
     */
    [optional, property] long RasterResolutionX;

    //-------------------------------------------------------------------------
    /** Defines the unit of measure for the spacing between grid points
        on the Y-axis.

        <p>The value must be greater than 0. The application
        may enforce more restricting bounds for the value.</p>

        @since OOo 2.0
        @throws com::sun::star::lang::IllegalArgumentException
            if the value is out of bounds.
     */
    [optional, property] long RasterResolutionY;

    //-------------------------------------------------------------------------
    /** If this property is <TRUE/>, hidden characters are displayed

        @since OOo 3.0
     */
    [optional, property] boolean ShowHiddenCharacters;
    //-------------------------------------------------------------------------
    /** If this proeperty is <TRUE/>, the settings of nonprinting characters are applied.

        <p>This option controls the use of the settings ShowHiddenCharacters,
        ShowTabstops, ShowSpaces, ShowBreaks and ShowParaBreaks </p>

        @since OOo 3.0
     */
    [optional, property] boolean ShowNonprintingCharacters;
    //-------------------------------------------------------------------------
    /** metric unit of the horizontal ruler

        <p>Uses values <type scope="com::sun::star::awt">FieldUnit</type></p>

        @since OOo 3.1
     */
    [optional, property] long HorizontalRulerMetric;
    //-------------------------------------------------------------------------
    /** metric unit of the vertical ruler

        <p>Uses values from <type scope="com::sun::star::awt">FieldUnit</type></p>

        @since OOo 3.1
     */
    [optional, property] long VerticalRulerMetric;
};

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

}; }; }; };

#endif
