2 * \file FormMathsPanel.C
3 * This file is part of LyX, the document processor.
4 * Licence details can be found in the file COPYING.
6 * \author Alejandro Aguilar Sierra
7 * \author Pablo De Napoli
9 * \author Angus Leeming
11 * Full author contact details are available in file CREDITS.
16 #include "FormMathsPanel.h"
17 #include "ControlMath.h"
18 #include "forms/form_maths_panel.h"
22 #include "lyx_forms.h"
26 #include "equation.xpm"
36 typedef FormController<ControlMath, FormView<FD_maths_panel> > base_class;
38 FormMathsPanel::FormMathsPanel(Dialog & parent)
39 : base_class(parent, _("Math Panel"))
43 void FormMathsPanel::build()
45 dialog_.reset(build_maths_panel(this));
47 for (int i = 0; i < nr_function_names; ++i)
48 fl_add_browser_line(dialog_->browser_funcs,
51 fl_set_pixmap_data(dialog_->button_sqrt,
52 const_cast<char**>(sqrt_xpm));
53 fl_set_pixmap_data(dialog_->button_frac,
54 const_cast<char**>(frac));
55 fl_set_pixmap_data(dialog_->button_super,
56 const_cast<char**>(super_xpm));
57 fl_set_pixmap_data(dialog_->button_sub,
58 const_cast<char**>(sub_xpm));
59 fl_set_pixmap_data(dialog_->button_delim,
60 const_cast<char**>(delim));
61 fl_set_pixmap_data(dialog_->button_deco,
62 const_cast<char**>(deco));
63 fl_set_pixmap_data(dialog_->button_space,
64 const_cast<char**>(space_xpm));
65 fl_set_pixmap_data(dialog_->button_style,
66 const_cast<char**>(style_xpm));
67 fl_set_pixmap_data(dialog_->button_matrix,
68 const_cast<char**>(matrix));
69 fl_set_pixmap_data(dialog_->button_equation,
70 const_cast<char**>(equation));
74 ButtonPolicy::SMInput FormMathsPanel::input(FL_OBJECT * ob, long)
76 if (ob == dialog_->button_arrow) {
77 controller().showDialog("matharrows");
78 } else if (ob == dialog_->button_deco) {
79 controller().showDialog("mathaccents");
80 } else if (ob == dialog_->button_boperator) {
81 controller().showDialog("mathoperators");
82 } else if (ob == dialog_->button_brelats) {
83 controller().showDialog("mathrelations");
84 } else if (ob == dialog_->button_greek) {
85 controller().showDialog("mathgreek");
86 } else if (ob == dialog_->button_misc) {
87 controller().showDialog("mathmisc");
88 } else if (ob == dialog_->button_dots) {
89 controller().showDialog("mathdots");
90 } else if (ob == dialog_->button_varsize) {
91 controller().showDialog("mathbigoperators");
92 } else if (ob == dialog_->button_ams_misc) {
93 controller().showDialog("mathamsmisc");
94 } else if (ob == dialog_->button_ams_arrows) {
95 controller().showDialog("mathamsarrows");
96 } else if (ob == dialog_->button_ams_brel) {
97 controller().showDialog("mathamsrelations");
98 } else if (ob == dialog_->button_ams_nrel) {
99 controller().showDialog("mathamsnegatedrelations");
100 } else if (ob == dialog_->button_ams_ops) {
101 controller().showDialog("mathamsoperators");
102 } else if (ob == dialog_->button_delim) {
103 controller().showDialog("mathdelimiter");
104 } else if (ob == dialog_->button_matrix) {
105 controller().showDialog("mathmatrix");
106 } else if (ob == dialog_->button_space) {
107 controller().showDialog("mathspace");
108 } else if (ob == dialog_->button_style) {
109 controller().showDialog("mathstyle");
111 } else if (ob == dialog_->button_super) {
112 controller().dispatchSuperscript();
114 } else if (ob == dialog_->button_sub) {
115 controller().dispatchSubscript();
117 } else if (ob == dialog_->button_equation) {
118 controller().dispatchToggleDisplay();
120 } else if (ob == dialog_->button_frac) {
121 controller().dispatchInsert("frac");
123 } else if (ob == dialog_->button_sqrt) {
124 controller().dispatchInsert("sqrt");
126 } else if (ob == dialog_->browser_funcs) {
127 int const i = fl_get_browser(dialog_->browser_funcs) - 1;
128 controller().dispatchInsert(function_names[i]);
131 return ButtonPolicy::SMI_VALID;