LibreOffice Module slideshow (master) 1
screenupdater.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
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/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
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 .
18 */
19
20#ifndef INCLUDED_SLIDESHOW_SOURCE_INC_SCREENUPDATER_HXX
21#define INCLUDED_SLIDESHOW_SOURCE_INC_SCREENUPDATER_HXX
22
23#include "viewupdate.hxx"
24#include "unoviewcontainer.hxx"
25#include <memory>
26
27/* Definition of ScreenUpdater class */
28
29namespace slideshow::internal
30 {
43 {
44 public:
45 explicit ScreenUpdater( UnoViewContainer const& rViewContainer );
47 ScreenUpdater(const ScreenUpdater&) = delete;
49
55 void notifyUpdate();
56
72 void notifyUpdate( const UnoViewSharedPtr& rView, bool bViewClobbered );
73
76 void commitUpdates();
77
84 void addViewUpdate( ViewUpdateSharedPtr const& rViewUpdate );
85
93
101
103 public:
104 virtual void Activate() = 0;
105
106 protected:
108 };
109
113 ::std::shared_ptr<UpdateLock> createLock();
114
117 void lockUpdates();
118
122 void unlockUpdates();
123
124 private:
125 struct ImplScreenUpdater;
126 std::unique_ptr<ImplScreenUpdater> mpImpl;
127
128 };
129
130}
131
132#endif // INCLUDED_SLIDESHOW_SOURCE_INC_SCREENUPDATER_HXX
133
134/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
ScreenUpdater & operator=(const ScreenUpdater &)=delete
void removeViewUpdate(ViewUpdateSharedPtr const &)
Unregister ViewUpdate.
void addViewUpdate(ViewUpdateSharedPtr const &rViewUpdate)
Register ViewUpdate.
ScreenUpdater(const ScreenUpdater &)=delete
ScreenUpdater(UnoViewContainer const &rViewContainer)
::std::shared_ptr< UpdateLock > createLock()
Call this method to create a lock instead of calling lockUpdates() and unlockUpdates() directly.
void notifyUpdate()
Notify screen update.
void unlockUpdates()
When called as often as lockUpdates() then commitUpdates() is called.
void lockUpdates()
Lock updates to prevent intermediate repaints.
std::unique_ptr< ImplScreenUpdater > mpImpl
void commitUpdates()
Commits collected update actions.
::std::shared_ptr< ViewUpdate > ViewUpdateSharedPtr
Definition: viewupdate.hxx:54
std::shared_ptr< UnoView > UnoViewSharedPtr