tdf#158624 - Improve warning dialogue for non-recommended formats during save
[LibreOffice.git] / sd / source / console / PresenterSprite.hxx
blobb550ec0a815ff61125519282a33c0cfbf2ea8bae
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #ifndef INCLUDED_SDEXT_SOURCE_PRESENTER_PRESENTERSPRITE_HXX
21 #define INCLUDED_SDEXT_SOURCE_PRESENTER_PRESENTERSPRITE_HXX
23 #include <com/sun/star/rendering/XCustomSprite.hpp>
24 #include <com/sun/star/rendering/XSpriteCanvas.hpp>
26 namespace sdext::presenter
28 /** A wrapper around a css::rendering::XCustomSprite that allows
29 not only setting values like size, location, and transformation but also
30 provides read access to them.
31 It also handles the showing and hiding of a sprite. This includes not
32 to show the sprite when its size is not yet defined (results in a crash)
33 and hiding a sprite before disposing it (results in zombie sprites.)
35 class PresenterSprite final
37 public:
38 PresenterSprite();
39 ~PresenterSprite();
40 PresenterSprite(const PresenterSprite&) = delete;
41 PresenterSprite& operator=(const PresenterSprite&) = delete;
43 /** The given sprite canvas is used as factory to create the sprite that
44 is wrapped by objects of this class.
45 It is also used to call updateScreen() at (wrapped by the Update() method).
47 void SetFactory(const css::uno::Reference<css::rendering::XSpriteCanvas>& rxSpriteFactory);
49 css::uno::Reference<css::rendering::XCanvas> GetCanvas();
51 void Show();
52 void Hide();
54 void Resize(const css::geometry::RealSize2D& rSize);
55 void MoveTo(const css::geometry::RealPoint2D& rLocation);
57 void Update();
59 private:
60 css::uno::Reference<css::rendering::XSpriteCanvas> mxSpriteFactory;
61 css::uno::Reference<css::rendering::XCustomSprite> mxSprite;
62 css::geometry::RealSize2D maSize;
63 css::geometry::RealPoint2D maLocation;
64 bool mbIsVisible;
66 void ProvideSprite();
67 void DisposeSprite();
71 #endif
73 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */