]> git.lyx.org Git - lyx.git/blob - src/frontends/xforms/FormMathsPanel.C
Introduce LFUN_PRINT.
[lyx.git] / src / frontends / xforms / FormMathsPanel.C
1 /**
2  * \file FormMathsPanel.C
3  * This file is part of LyX, the document processor.
4  * Licence details can be found in the file COPYING.
5  *
6  * \author Alejandro Aguilar Sierra
7  * \author Pablo De Napoli
8  * \author John Levon
9  * \author Angus Leeming
10  *
11  * Full author contact details are available in file CREDITS.
12  */
13
14 #include <config.h>
15
16 #include "FormMathsPanel.h"
17 #include "ControlMath.h"
18 #include "forms/form_maths_panel.h"
19
20 #include "xformsBC.h"
21
22 #include "lyx_forms.h"
23
24 #include "deco.xpm"
25 #include "delim.xpm"
26 #include "equation.xpm"
27 #include "frac.xpm"
28 #include "matrix.xpm"
29 #include "space.xpm"
30 #include "style.xpm"
31 #include "sqrt.xpm"
32 #include "sub.xpm"
33 #include "super.xpm"
34
35
36 typedef FormController<ControlMath, FormView<FD_maths_panel> > base_class;
37
38 FormMathsPanel::FormMathsPanel(Dialog & parent)
39         : base_class(parent, _("Math Panel"))
40 {}
41
42
43 void FormMathsPanel::build()
44 {
45         dialog_.reset(build_maths_panel(this));
46
47         for (int i = 0; i < nr_function_names; ++i)
48                 fl_add_browser_line(dialog_->browser_funcs,
49                                     function_names[i]);
50
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));
71 }
72
73
74 ButtonPolicy::SMInput FormMathsPanel::input(FL_OBJECT * ob, long)
75 {
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");
110
111         } else if (ob == dialog_->button_super) {
112                 controller().dispatchSuperscript();
113
114         } else if (ob == dialog_->button_sub) {
115                 controller().dispatchSubscript();
116
117         } else if (ob == dialog_->button_equation) {
118                 controller().dispatchToggleDisplay();
119
120         } else if (ob == dialog_->button_frac) {
121                 controller().dispatchInsert("frac");
122
123         } else if (ob == dialog_->button_sqrt) {
124                 controller().dispatchInsert("sqrt");
125
126         } else if (ob == dialog_->browser_funcs) {
127                 int const i = fl_get_browser(dialog_->browser_funcs) - 1;
128                 controller().dispatchInsert(function_names[i]);
129         }
130
131         return ButtonPolicy::SMI_VALID;
132 }