/* -*- 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_drawing_DrawingDocumentDrawView_idl__
#define __com_sun_star_drawing_DrawingDocumentDrawView_idl__

#include <com/sun/star/drawing/XDrawView.idl>

#include <com/sun/star/beans/XPropertySet.idl>

#include <com/sun/star/frame/Controller.idl>

#include <com/sun/star/view/XSelectionSupplier.idl>

#include <com/sun/star/drawing/XDrawPage.idl>
#include <com/sun/star/awt/XWindow.idl>
#include <com/sun/star/awt/Point.idl>

module com {  module sun {  module star {  module view {
    published interface XFormLayerAccess;
}; }; }; };


 module com {  module sun {  module star {  module drawing {


/** This component integrates a view to a DrawPages or
    MasterPage from a DrawingDocument.
 */
published service DrawingDocumentDrawView
{

    /** this services offers the  integration of this component into the
        desktop.
    */
    service com::sun::star::frame::Controller;


    /** lets you access the window for this view

        @since OOo 1.1.2
    */
    [optional] interface com::sun::star::awt::XWindow;

    /** let's you access the view part of the form layer contained in the document's view
    */
    [optional] interface com::sun::star::view::XFormLayerAccess;


    /** lets you set/get the current page displayed by this
        view.
     */
    interface com::sun::star::drawing::XDrawView;



    /** lets you access the properties of this service.
     */
    interface com::sun::star::beans::XPropertySet;



    /** gives you access to the selected entities of this
                view.
     */
    interface com::sun::star::view::XSelectionSupplier;


    /** If the view is in master page mode, the view shows the master pages
        of this model.
     */
    [property] boolean IsMasterPageMode;


    /** If the view is in layer mode, the user can modify the layer of the
        model of this view in the user interface.
     */
    [property] boolean IsLayerMode;



    /** This is the drawing page that is currently visible.
     */
    [property] XDrawPage CurrentPage;


    /** This is the area that is currently visible.
     */
    [readonly, property] com::sun::star::awt::Rectangle VisibleArea;


    /** This property defines the zoom type for the document.
        @see com::sun::star::view::DocumentZoomType

        Note: After setting other types then
        com::sun::star::view::DocumentZoomType::BY_VALUE,
        implementations may calculate the required zoom value and set the type
        to com::sun::star::view::DocumentZoomType::BY_VALUE
        afterwards.

        @since OOo 1.1.2
    */
       [optional, property] short ZoomType;


       /** Defines the zoom value to use.
        Valid only if the ZoomType is set to
        com::sun::star::view::DocumentZoomType::BY_VALUE.

        @since OOo 1.1.2
    */
       [optional, property] short ZoomValue;


    /** defines the offset from the top left position of the displayed page
        to the top left position of the view area in 100th/mm.

        @since OOo 1.1.2
    */
    [optional, property] com::sun::star::awt::Point ViewOffset;

    /** The sub controller takes over view specific handling of properties,
        the selection, and the current page/slide.

        The following line is commented because XDrawSubController is not
        (yet) published and the IDL compiler does not allow that.

        [optional, property] ::com::sun::star::drawing::XDrawSubController SubController;
    */
};


}; }; }; };

#endif

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