diff options
Diffstat (limited to 'offapi/com/sun/star/drawing/XSlidePreviewCache.idl')
-rw-r--r-- | offapi/com/sun/star/drawing/XSlidePreviewCache.idl | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/offapi/com/sun/star/drawing/XSlidePreviewCache.idl b/offapi/com/sun/star/drawing/XSlidePreviewCache.idl new file mode 100644 index 000000000..f2692a987 --- /dev/null +++ b/offapi/com/sun/star/drawing/XSlidePreviewCache.idl @@ -0,0 +1,108 @@ +/* -*- 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_XSlidePreviewCache_idl__ +#define __com_sun_star_drawing_XSlidePreviewCache_idl__ + +#include <com/sun/star/container/XIndexAccess.idl> +#include <com/sun/star/geometry/IntegerSize2D.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> +#include <com/sun/star/rendering/XBitmap.idl> +#include <com/sun/star/rendering/XCanvas.idl> +#include <com/sun/star/drawing/XSlidePreviewCacheListener.idl> + +module com { module sun { module star { module drawing { + +/** A cache of preview bitmaps for the slides of one Impress or Draw + document in one size. There may be more than one cache for one + document. These are internally connected and for missing previews one + cache may take it from another cache and scale it to the desired size. + When a preview is not present then it is created asynchronously. On + creation all registered listeners are notified. + + Slides are referenced via their index in an XIndexAccess container in + order to allow multiple references to a single slide (custom + presentations). +*/ +interface XSlidePreviewCache +{ + /** Set the set of slides for which the cache will provide the + previews. All slides in the given XIndexAccess are required to come + from the given model. + @param xSlides + The set of slides for which the called cache will provide the + previews. This container defines the indices that are used to + look up slides. + @param xDocument + The model that contains the slides reference by the xSlides argument. + */ + void setDocumentSlides ( + [in] ::com::sun::star::container::XIndexAccess xSlides, + [in] ::com::sun::star::uno::XInterface xDocument); + + /** Define which slides are currently visible on the screen and which + are not. This information is used for give preview creation for + visible slides a higher priority than for those slides that are not + visible. + */ + void setVisibleRange ([in] long nFirstVisibleSlideIndex, [in] long nLastVisibleSlideIndex); + + /** Define the size of the previews that are managed by the called + cache. + */ + void setPreviewSize ([in] ::com::sun::star::geometry::IntegerSize2D aSize); + + /** Return a preview for the given slide index. + The returned bitmap may be the requested preview, a preview of the + preview, i.e. a scaled up or down version, or an empty reference + when the preview is not yet present. + + This call may lead to the asynchronous creation of the requested + preview. In that case all registered listeners are notified when + the preview has been created. + */ + ::com::sun::star::rendering::XBitmap getSlidePreview ( + [in] long nSlideIndex, + [in] ::com::sun::star::rendering::XCanvas xCanvas) + raises(::com::sun::star::lang::IllegalArgumentException); + + /** Register a listener that is called when a preview has been created + asynchronously. + */ + void addPreviewCreationNotifyListener ([in] XSlidePreviewCacheListener xListener); + + /** Remove a previously registered listener for preview creations. + */ + void removePreviewCreationNotifyListener ([in] XSlidePreviewCacheListener xListener); + + /** Stop the asynchronous creation of previews temporarily. + Call resume() to restart it. + */ + void pause (); + + /** Resume the asynchronous creation of slide previews. + */ + void resume (); +}; + +}; }; }; }; // ::com::sun::star::drawing + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |