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 "commandtags.h"
16 #include <boost/smart_ptr.hpp>
22 #include "FormBaseDeprecated.h"
23 #include "MathsSymbols.h"
25 class FormMathsBitmap;
28 class FormMathsMatrix;
32 struct FD_form_maths_panel;
35 * This class provides an XForms implementation of the maths panel.
37 class FormMathsPanel : public FormBaseBD {
40 FormMathsPanel(LyXView *, Dialogs *);
42 void setActive(FormMathsSub *) const;
43 /// dispatch a symbol insert
44 void insertSymbol(string const & sym, bool bs = true) const;
46 void dispatchFunc(kb_action action) const;
48 /// Pointer to the actual instantiation of the ButtonController.
49 virtual xformsBC & bc();
54 virtual bool input(FL_OBJECT *, long);
56 /// Pointer to the actual instantiation of the xforms form
57 virtual FL_FORM * form() const;
60 FD_form_maths_panel * build_maths_panel();
62 /// send LFUN_MATH_DISPLAY
63 void mathDisplay() const;
65 // Real GUI implementation
66 boost::scoped_ptr<FD_form_maths_panel> dialog_;
69 boost::scoped_ptr<FormMathsDeco> deco_;
70 boost::scoped_ptr<FormMathsDelim> delim_;
71 boost::scoped_ptr<FormMathsMatrix> matrix_;
72 boost::scoped_ptr<FormMathsSpace> space_;
73 boost::scoped_ptr<FormMathsStyle> style_;
74 boost::scoped_ptr<FormMathsBitmap> arrow_;
75 boost::scoped_ptr<FormMathsBitmap> boperator_;
76 boost::scoped_ptr<FormMathsBitmap> brelats_;
77 boost::scoped_ptr<FormMathsBitmap> greek_;
78 boost::scoped_ptr<FormMathsBitmap> misc_;
79 boost::scoped_ptr<FormMathsBitmap> dots_;
80 boost::scoped_ptr<FormMathsBitmap> varsize_;
81 boost::scoped_ptr<FormMathsBitmap> ams_misc_;
82 boost::scoped_ptr<FormMathsBitmap> ams_arrows_;
83 boost::scoped_ptr<FormMathsBitmap> ams_rel_;
84 boost::scoped_ptr<FormMathsBitmap> ams_nrel_;
85 boost::scoped_ptr<FormMathsBitmap> ams_ops_;
87 /// A pointer to the currently active subdialog
88 mutable FormMathsSub * active_;
90 /// The ButtonController
91 ButtonController<OkCancelReadOnlyPolicy, xformsBC> bc_;
95 class FormMathsSub : public FormBaseBD {
96 friend class FormMathsPanel; // has subdialogs to manipulate
100 FormMathsSub(LyXView *, Dialogs *, FormMathsPanel const &,
101 string const &, bool allowResize=true);
104 /// Pointer to the actual instantiation of the ButtonController.
105 virtual xformsBC & bc();
106 /// The parent Maths Panel
107 FormMathsPanel const & parent_;
110 virtual void connect();
112 virtual void disconnect();
113 /// The ButtonController
114 ButtonController<IgnorantPolicy, xformsBC> bc_;
119 xformsBC & FormMathsSub::bc()
125 xformsBC & FormMathsPanel::bc()
129 #endif // FORM_MATHSPANEL_H