lyx_mirror/src/frontends/controllers/GUI.h

168 lines
3.6 KiB
C
Raw Normal View History

/**
* \file GUI.h
* Copyright 2001 The LyX Team.
* See the file COPYING.
*
* \author Angus Leeming <a.leeming@ic.ac.uk>
*/
#ifndef GUI_H
#define GUI_H
/** This class instantiates and makes available the GUI-specific
ButtonController and View.
*/
template <class Controller, class GUIview, class Policy, class GUIbc>
class GUI : public Controller {
public:
///
GUI(LyXView & lv, Dialogs & d) : Controller(lv, d), view_(*this) {}
///
virtual ButtonControllerBase & bc() { return bc_; }
///
virtual ViewBase & view() { return view_; }
private:
///
ButtonController<Policy, GUIbc> bc_;
///
GUIview view_;
};
/// Forward declaration of ButtonPolicies
class OkCancelPolicy;
class OkCancelReadOnlyPolicy;
class NoRepeatedApplyReadOnlyPolicy;
/** Specialization for Bibitem dialog
*/
class ControlBibitem;
template <class GUIview, class GUIbc>
class GUIBibitem :
public GUI<ControlBibitem, GUIview, OkCancelReadOnlyPolicy, GUIbc> {
public:
///
GUIBibitem(LyXView & lv, Dialogs & d)
: GUI<ControlBibitem, GUIview, OkCancelReadOnlyPolicy, GUIbc>(lv, d) {}
};
/** Specialization for Bibtex dialog
*/
class ControlBibtex;
template <class GUIview, class GUIbc>
class GUIBibtex :
public GUI<ControlBibtex, GUIview, OkCancelReadOnlyPolicy, GUIbc> {
public:
///
GUIBibtex(LyXView & lv, Dialogs & d)
: GUI<ControlBibtex, GUIview, OkCancelReadOnlyPolicy, GUIbc>(lv, d) {}
};
/** Specialization for Character dialog
*/
class ControlCharacter;
template <class GUIview, class GUIbc>
class GUICharacter : public GUI<ControlCharacter, GUIview,
NoRepeatedApplyReadOnlyPolicy, GUIbc>
{
public:
///
GUICharacter(LyXView & lv, Dialogs & d)
: GUI<ControlCharacter, GUIview,
NoRepeatedApplyReadOnlyPolicy, GUIbc>(lv, d) {}
};
/** Specialization for Citation dialog
*/
class ControlCitation;
template <class GUIview, class GUIbc>
class GUICitation : public GUI<ControlCitation, GUIview,
NoRepeatedApplyReadOnlyPolicy, GUIbc>
{
public:
///
GUICitation(LyXView & lv, Dialogs & d)
: GUI<ControlCitation, GUIview,
NoRepeatedApplyReadOnlyPolicy, GUIbc>(lv, d) {}
};
/** Specialization for Credits dialog
*/
class ControlCredits;
template <class GUIview, class GUIbc>
class GUICredits :
public GUI<ControlCredits, GUIview, OkCancelPolicy, GUIbc> {
public:
///
GUICredits(LyXView & lv, Dialogs & d)
: GUI<ControlCredits, GUIview, OkCancelPolicy, GUIbc>(lv, d) {}
};
/** Specialization for Error dialog
*/
class ControlError;
template <class GUIview, class GUIbc>
class GUIError :
public GUI<ControlError, GUIview, OkCancelPolicy, GUIbc> {
public:
///
GUIError(LyXView & lv, Dialogs & d)
: GUI<ControlError, GUIview, OkCancelPolicy, GUIbc>(lv, d) {}
};
/** Specialization for Include dialog
*/
class ControlInclude;
template <class GUIview, class GUIbc>
class GUIInclude :
public GUI<ControlInclude, GUIview, OkCancelReadOnlyPolicy, GUIbc> {
public:
///
GUIInclude(LyXView & lv, Dialogs & d)
: GUI<ControlInclude, GUIview, OkCancelReadOnlyPolicy, GUIbc>(lv, d) {}
};
/** Specialization for Log dialog
*/
class ControlLog;
template <class GUIview, class GUIbc>
class GUILog :
public GUI<ControlLog, GUIview, OkCancelPolicy, GUIbc> {
public:
///
GUILog(LyXView & lv, Dialogs & d)
: GUI<ControlLog, GUIview, OkCancelPolicy, GUIbc>(lv, d) {}
};
/** Specialization for VCLog dialog
*/
class ControlVCLog;
template <class GUIview, class GUIbc>
class GUIVCLog :
public GUI<ControlVCLog, GUIview, OkCancelPolicy, GUIbc> {
public:
///
GUIVCLog(LyXView & lv, Dialogs & d)
: GUI<ControlVCLog, GUIview, OkCancelPolicy, GUIbc>(lv, d) {}
};
#endif // GUI_H