lyx_mirror/src/frontends/WorkAreaManager.h

61 lines
1.2 KiB
C
Raw Normal View History

// -*- C++ -*-
/**
* \file WorkAreaManager.h
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
* \author Abdelrazak Younes
*
* Full author contact details are available in file CREDITS.
*/
#ifndef WORKAREA_MANAGER_H
#define WORKAREA_MANAGER_H
#include <list>
namespace lyx {
class Buffer;
namespace frontend {
class WorkArea;
/// \c WorkArea Manager.
/**
* This is a helper class designed to avoid signal/slot connections
* between a \c Buffer and the potentially multiple \c WorkArea(s)
* used to visualize this Buffer contents.
*/
class WorkAreaManager
{
public:
///
WorkAreaManager() {}
///
void add(WorkArea * wa);
///
void remove(WorkArea * wa);
///
void redrawAll(bool update_metrics);
///
void closeAll();
2017-02-28 21:58:44 +00:00
/// Update window titles of all users and the external modifications
/// warning.
void updateTitles();
/// If there is no work area, create a new one in the current view using the
/// buffer buf. Returns false if not possible.
2020-10-21 08:35:40 +00:00
bool unhide(Buffer * buf) const;
private:
typedef std::list<WorkArea *>::iterator iterator;
///
std::list<WorkArea *> work_areas_;
};
} // namespace frontend
} // namespace lyx
#endif // BASE_WORKAREA_H