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
17 #include "ControlMath.h"
18 #include "FormMathsPanel.h"
19 #include "forms/form_maths_panel.h"
22 #include "lyx_forms.h"
26 #include "equation.xpm"
36 typedef FormCB<ControlMath, FormDB<FD_maths_panel> > base_class;
38 FormMathsPanel::FormMathsPanel()
39 : base_class(_("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().dispatchFunc(LFUN_SUPERSCRIPT);
114 } else if (ob == dialog_->button_sub) {
115 controller().dispatchFunc(LFUN_SUBSCRIPT);
117 // } else if (ob == dialog_->???) {
118 // controller().dispatchFunc(LFUN_SUBSCRIPT);
119 // controller().dispatchFunc(LFUN_LEFT);
120 // controller().dispatchFunc(LFUN_SUPERSCRIPT);
122 } else if (ob == dialog_->button_equation) {
123 controller().dispatchFunc(LFUN_MATH_DISPLAY);
125 } else if (ob == dialog_->button_frac) {
126 controller().insertSymbol("frac");
128 } else if (ob == dialog_->button_sqrt) {
129 controller().insertSymbol("sqrt");
131 } else if (ob == dialog_->browser_funcs) {
132 int const i = fl_get_browser(dialog_->browser_funcs) - 1;
133 controller().insertSymbol(function_names[i]);
136 return ButtonPolicy::SMI_VALID;