]> git.lyx.org Git - features.git/blob - src/frontends/WorkAreaManager.h
Transfer readOnly() and updateWindowTitle() from Delegates to WorkArea/WorkAreaManage...
[features.git] / src / frontends / WorkAreaManager.h
1 // -*- C++ -*-
2 /**
3  * \file WorkAreaManager.h
4  * This file is part of LyX, the document processor.
5  * Licence details can be found in the file COPYING.
6  *
7  * \author Abdelrazak Younes
8  *
9  * Full author contact details are available in file CREDITS.
10  */
11
12 #ifndef WORKAREA_MANAGER_H
13 #define WORKAREA_MANAGER_H
14
15 #include <list>
16
17 namespace lyx {
18 namespace frontend {
19
20 class WorkArea;
21
22 /// \c WorkArea Manager.
23 /**
24   * This is a helper class designed to avoid signal/slot connections
25   * between a \c Buffer and the potentially multiple \c WorkArea(s)
26   * used to visualize this Buffer contents.
27   */
28 class WorkAreaManager
29 {
30 public:
31         WorkAreaManager() {}
32
33         ///
34         void add(WorkArea * wa);
35
36         ///
37         void remove(WorkArea * wa);
38
39         ///
40         void redrawAll();
41
42         ///
43         void closeAll();
44
45         /// This function is called when the buffer readonly status change.
46         virtual void setReadOnly(bool);
47
48         /// Update window titles of all users.
49         virtual void updateTitles();
50
51 private:
52         std::list<WorkArea *> work_areas_;
53 };
54
55 } // namespace frontend
56 } // namespace lyx
57
58 #endif // BASE_WORKAREA_H