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"
21 #include "FormBaseDeprecated.h"
22 #include "MathsSymbols.h"
24 #include <boost/scoped_ptr.hpp>
26 class FormMathsBitmap;
29 class FormMathsMatrix;
33 struct FD_form_maths_panel;
36 * This class provides an XForms implementation of the maths panel.
38 class FormMathsPanel : public FormBaseBD {
41 FormMathsPanel(LyXView *, Dialogs *);
43 void setActive(FormMathsSub *) const;
44 /// dispatch a symbol insert
45 void insertSymbol(string const & sym, bool bs = true) const;
47 void dispatchFunc(kb_action action) const;
49 /// Pointer to the actual instantiation of the ButtonController.
50 virtual xformsBC & bc();
55 virtual bool input(FL_OBJECT *, long);
57 /// Pointer to the actual instantiation of the xforms form
58 virtual FL_FORM * form() const;
61 FD_form_maths_panel * build_maths_panel();
63 /// send LFUN_MATH_DISPLAY
64 void mathDisplay() const;
66 // Real GUI implementation
67 boost::scoped_ptr<FD_form_maths_panel> dialog_;
70 boost::scoped_ptr<FormMathsDeco> deco_;
71 boost::scoped_ptr<FormMathsDelim> delim_;
72 boost::scoped_ptr<FormMathsMatrix> matrix_;
73 boost::scoped_ptr<FormMathsSpace> space_;
74 boost::scoped_ptr<FormMathsStyle> style_;
75 boost::scoped_ptr<FormMathsBitmap> arrow_;
76 boost::scoped_ptr<FormMathsBitmap> boperator_;
77 boost::scoped_ptr<FormMathsBitmap> brelats_;
78 boost::scoped_ptr<FormMathsBitmap> greek_;
79 boost::scoped_ptr<FormMathsBitmap> misc_;
80 boost::scoped_ptr<FormMathsBitmap> dots_;
81 boost::scoped_ptr<FormMathsBitmap> varsize_;
82 boost::scoped_ptr<FormMathsBitmap> ams_misc_;
83 boost::scoped_ptr<FormMathsBitmap> ams_arrows_;
84 boost::scoped_ptr<FormMathsBitmap> ams_rel_;
85 boost::scoped_ptr<FormMathsBitmap> ams_nrel_;
86 boost::scoped_ptr<FormMathsBitmap> ams_ops_;
88 /// A pointer to the currently active subdialog
89 mutable FormMathsSub * active_;
91 /// The ButtonController
92 ButtonController<OkCancelReadOnlyPolicy, xformsBC> bc_;
96 class FormMathsSub : public FormBaseBD {
97 friend class FormMathsPanel; // has subdialogs to manipulate
101 FormMathsSub(LyXView *, Dialogs *, FormMathsPanel const &,
102 string const &, bool allowResize=true);
105 /// Pointer to the actual instantiation of the ButtonController.
106 virtual xformsBC & bc();
107 /// The parent Maths Panel
108 FormMathsPanel const & parent_;
111 virtual void connect();
113 virtual void disconnect();
114 /// The ButtonController
115 ButtonController<IgnorantPolicy, xformsBC> bc_;
120 xformsBC & FormMathsSub::bc()
126 xformsBC & FormMathsPanel::bc()
130 #endif // FORM_MATHSPANEL_H