3 * \file FormMathsPanel.h
4 * Copyright 2001 The LyX Team.
5 * See the file COPYING.
7 * \author Alejandro Aguilar Sierra
8 * \author John Levon, moz@compsoc.man.ac.uk
9 * \author Angus Leeming, a.leeming@ic.ac.uk
12 #ifndef FORM_MATHSPANEL_H
13 #define FORM_MATHSPANEL_H
15 #include <boost/smart_ptr.hpp>
21 #include "FormBaseDeprecated.h"
23 class FormMathsBitmap;
26 class FormMathsMatrix;
29 struct FD_form_maths_panel;
31 /// values used by the xforms callbacks
32 enum MathsCallbackValues {
54 * This class provides an XForms implementation of the maths panel.
56 class FormMathsPanel : public FormBaseBD {
59 FormMathsPanel(LyXView *, Dialogs *);
61 void setActive(FormMathsSub *) const;
62 /// dispatch a symbol insert
63 void insertSymbol(string const & sym) const;
66 /// Pointer to the actual instantiation of the ButtonController.
67 virtual xformsBC & bc();
72 virtual bool input(FL_OBJECT *, long);
74 /// Pointer to the actual instantiation of the xforms form
75 virtual FL_FORM * form() const;
78 FD_form_maths_panel * build_maths_panel();
80 /// send LFUN_MATH_DISPLAY
81 void mathDisplay() const;
83 // Real GUI implementation
84 boost::scoped_ptr<FD_form_maths_panel> dialog_;
87 boost::scoped_ptr<FormMathsDeco> deco_;
88 boost::scoped_ptr<FormMathsDelim> delim_;
89 boost::scoped_ptr<FormMathsMatrix> matrix_;
90 boost::scoped_ptr<FormMathsSpace> space_;
91 boost::scoped_ptr<FormMathsBitmap> arrow_;
92 boost::scoped_ptr<FormMathsBitmap> boperator_;
93 boost::scoped_ptr<FormMathsBitmap> brelats_;
94 boost::scoped_ptr<FormMathsBitmap> greek_;
95 boost::scoped_ptr<FormMathsBitmap> misc_;
96 boost::scoped_ptr<FormMathsBitmap> dots_;
97 boost::scoped_ptr<FormMathsBitmap> varsize_;
99 /// A pointer to the currently active subdialog
100 mutable FormMathsSub * active_;
102 /// The ButtonController
103 ButtonController<OkCancelReadOnlyPolicy, xformsBC> bc_;
107 class FormMathsSub : public FormBaseBD {
108 friend class FormMathsPanel; // has subdialogs to manipulate
112 FormMathsSub(LyXView *, Dialogs *, FormMathsPanel const &,
113 string const &, bool allowResize=true);
116 /// Pointer to the actual instantiation of the ButtonController.
117 virtual xformsBC & bc();
118 /// The parent Maths Panel
119 FormMathsPanel const & parent_;
122 virtual void connect();
124 virtual void disconnect();
125 /// The ButtonController
126 ButtonController<IgnorantPolicy, xformsBC> bc_;
131 xformsBC & FormMathsSub::bc()
137 xformsBC & FormMathsPanel::bc()
141 #endif // FORM_MATHSPANEL_H