683758efb2
Change-Id: I9506586cf110f864a2125775a8906d5c07d9210d
108 lines
4.4 KiB
Text
108 lines
4.4 KiB
Text
/* -*- 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 <method>resume()</method> 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: */
|