]> git.lyx.org Git - lyx.git/blob - src/mathed/math_panel.h
merge in the class Path changes
[lyx.git] / src / mathed / math_panel.h
1 // -*- C++ -*-
2 /*
3  *  File:        math_panel.h
4  *  Purpose:     Mathed GUI for lyx
5  *  Author:      Alejandro Aguilar Sierra <asierra@servidor.unam.mx>
6  *  Created:     March 28, 1996
7  * 
8  *  Dependencies: Xlib, Xpm, XForms, Lyx
9  *
10  *  Copyright: (c) 1996, Alejandro Aguilar Sierra 
11  *
12  *   You are free to use and modify it under the terms of
13  *   the GNU General Public Licence version 2 or later.
14  */
15
16 #ifndef FD_math_panel_h_
17 #define FD_math_panel_h_
18
19 #ifdef __GNUG__
20 #pragma interface
21 #endif
22
23 #include "bmtable.h"                 
24
25 ///
26 enum  {
27    MM_GREEK, MM_ARROW, MM_BOP, MM_BRELATS, MM_VARSIZE, MM_MISC,
28    MM_FRAC, MM_SQRT, MM_DELIM, MM_MATRIX, MM_EQU,
29    MM_DECO, MM_SPACE, MM_DOTS, MM_FUNC,
30    MM_MAX,
31    MM_CLOSE = 1024,
32    MM_APPLY, MM_OK
33 };
34
35 ///
36 typedef FL_OBJECT* FL_OBJECTP;
37
38 extern "C" {
39    int peek_event(FL_FORM *, void *);
40 }
41
42 /// Class to manage bitmap menu bars
43 class BitmapMenu {
44   ///
45    static BitmapMenu *active;
46    ///
47    friend int peek_event(FL_FORM *, void *);
48  protected:
49    ///
50    BitmapMenu *next, *prev;
51    ///
52    int nb;             // Number of bitmaps
53                             ///
54    int i;              // Current bitmap
55                             ///
56    int ww;             // Border width
57                             ///
58    int x, y, w, h;
59    ///
60    FL_FORM *form;
61    ///
62    FL_OBJECTP *bitmap;
63    ///
64    FL_OBJECT *button;
65  public:
66    ///
67    BitmapMenu(int n, FL_OBJECT* bt, BitmapMenu* prevx=0);
68    ///
69    ~BitmapMenu();
70    ///
71    FL_OBJECT* AddBitmap(int id,
72                         int nx, int ny, int bw, int bh,
73                         char* data, Bool vert=True); // Why Bool?
74    ///
75    void Create();
76    ///
77    void Hide();
78    ///
79    void Show();
80    ///
81    void Prev();
82    ///
83    void Next();
84    ///
85    int  GetIndex(FL_OBJECT* ob);
86 };
87
88
89 inline
90 void BitmapMenu::Prev()  {
91    Hide();
92    if (prev)
93      prev->Show();
94 }
95
96 inline
97 void BitmapMenu::Next()  {
98    Hide();
99    if (next)
100      next->Show();
101 }
102
103 #include "math_forms.h"
104
105 extern FD_panel * create_math_panel(void);
106
107 #endif /* FD_math_panel_h_ */