/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
 * This file is part of the LibreOffice project.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This file incorporates work covered by the following license notice:
 *
 *   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 .
 */
#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 {

/** 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 paragraphs 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`, 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
        com::sun::star::view::DocumentZoomType::BY_VALUE.
     */
    [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 property is `TRUE`, the settings of non-printing 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 com::sun::star::awt::FieldUnit</p>

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

    /** metric unit of the vertical ruler

        <p>Uses values from com::sun::star::awt::FieldUnit</p>

        @since OOo 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 LibreOffice 4.1
     */
    [optional, property] boolean ShowContentTips;

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

        @since LibreOffice 4.2
     */
    [optional, property] boolean ShowScrollBarTips;

    /** If this property is `TRUE`, whitespaces around pages are hidden.

        @since LibreOffice 5.1
    */
    [optional, property] boolean HideWhitespace;

    /** If this property is `TRUE`, tooltips for tracked changes are shown.

        @since LibreOffice 6.1
    */
    [optional, property] boolean ShowInlineTooltips;

    /** If this property is `TRUE`, the advanced menu for header/footer is shown

        @since LibreOffice 6.2
    */
    [optional, property] boolean UseHeaderFooterMenu;

};

}; }; }; };

#endif

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
