/**************************************************************
 *
 * 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__

#include <com/sun/star/beans/XPropertySet.idl>
#include <com/sun/star/view/DocumentZoomType.idl>
#include <com/sun/star/lang/IllegalArgumentException.idl>

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
{
    interface com::sun::star::beans::XPropertySet;

    /** If this property is <TRUE/>, annotations (notes) are visible.
     */
    [property] boolean ShowAnnotations;

    /** If this property is <TRUE/>, paragraph line breaks are visible.
     */
    [property] boolean ShowBreaks;

    /** If this property is <TRUE/>, shapes are visible.
     */
    [property] boolean ShowDrawings;

    /** If this property is <TRUE/>, text fields are shown with their commands; otherwise
        the content is visible.
     */
    [property] boolean ShowFieldCommands;

    /** If this property is <TRUE/>, footnotes symbols are displayed with gray background.
     */
    [property] boolean ShowFootnoteBackground;

    /** If this property is <TRUE/>, graphic objects are visible.
     */
    [property] boolean ShowGraphics;

    /** If this property is <TRUE/>, hidden paragraghs are displayed.
     */
    [property] boolean ShowHiddenParagraphs;

    /** 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;

    /** If this property is <TRUE/>, index marks are displayed with gray background.
     */
    [property] boolean ShowIndexMarkBackground;

    /** If this property is <TRUE/>, paragraph breaks are visible.
     */
    [property] boolean ShowParaBreaks;

    /** If this property is <TRUE/>, protected spaces (hard spaces) are displayed with gray
        background.
     */
    [property] boolean ShowProtectedSpaces;

    /** If this property is <TRUE/>, soft hyphens are displayed with gray background.
     */
    [property] boolean ShowSoftHyphens;

    /** If this property is <TRUE/>, spaces are displayed with dots.
     */
    [property] boolean ShowSpaces;

    /** If this property is <TRUE/>, table boundaries are displayed.
     */
    [property] boolean ShowTableBoundaries;

    /** If this property is <TRUE/>, tables are visible.
     */
    [property] boolean ShowTables;

    /** If this property is <TRUE/>, tab stops are visible.
     */
    [property] boolean ShowTabstops;

    /** If this property is <TRUE/>, text boundaries are displayed.
     */
    [property] boolean ShowTextBoundaries;

    /** If this property is <TRUE/>, text fields are displayed with gray background.
     */
    [property] boolean ShowTextFieldBackground;

    /** If this property is <TRUE/>, the vertical ruler is displayed.
     */
    [property] boolean ShowVertRuler;

    /** If this property is <TRUE/>, the vertical scroll bar is displayed.
     */
    [property] boolean ShowVertScrollBar;

    /** If this property is <TRUE/>, smooth scrolling is active.
     */
    [property] boolean SmoothScrolling;

    /** 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 OpenOffice 2.0
     */
    [optional, property] boolean IsRasterVisible;

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

        @since OpenOffice 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 OpenOffice 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 OpenOffice 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 OpenOffice 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 OpenOffice 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 OpenOffice 3.0
     */
    [optional, property] boolean ShowHiddenCharacters;

    /** If this property 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 OpenOffice 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 OpenOffice 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 OpenOffice 3.1
     */
    [optional, property] long VerticalRulerMetric;

    /** If this property is <TRUE/>, tips for document content are shown,
        typically in a help balloon when the mouse is over the content.

        @since OpenOffice 4.0
     */
    [optional, property] boolean ShowContentTips;

    /** If this property is <TRUE/>, and the scroll bar is shown, a tool tip
        is displayed while scrolling.

        @since OpenOffice 4.0
     */
    [optional, property] boolean ShowScrollBarTips;
};

}; }; }; };

#endif
