]> git.lyx.org Git - lyx.git/blob - src/frontends/WorkAreaManager.h
Oops: currentData() is Qt 5 only.
[lyx.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         ///
32         WorkAreaManager() {}
33         ///
34         void add(WorkArea * wa);
35         ///
36         void remove(WorkArea * wa);
37         ///
38         void redrawAll(bool update_metrics);
39         ///
40         void closeAll();
41         /// Update window titles of all users and the external modifications
42         /// warning.
43         void updateTitles();
44
45 private:
46         typedef std::list<WorkArea *>::iterator iterator;
47         ///
48         std::list<WorkArea *> work_areas_;
49 };
50
51 } // namespace frontend
52 } // namespace lyx
53
54 #endif // BASE_WORKAREA_H