]> git.lyx.org Git - lyx.git/blob - src/frontends/xforms/Toolbar_pimpl.h
Compilation fix: give C_read_callback extern "C" linkage.
[lyx.git] / src / frontends / xforms / Toolbar_pimpl.h
1 // -*- C++ -*-
2 /**
3  * \file Toolbar_pimpl.h
4  * Copyright 2002 the LyX Team
5  * Copyright 1996-2001 Lars Gullik Bjønnes
6  * Read the file COPYING
7  *
8  * \author Lars Gullik Bjønnes, larsbj@lyx.org
9  */
10
11 #ifndef TOOLBAR_PIMPL_H
12 #define TOOLBAR_PIMPL_H
13
14 #include <vector>
15 #include "forms_fwd.h"
16
17 #include "frontends/Toolbar.h"
18
19 #include "commandtags.h"
20 #include "combox.h"
21 #include "ToolbarDefaults.h"
22
23 #ifdef __GNUG__
24 #pragma interface
25 #endif
26
27 class XFormsView;
28 class Tooltips;
29 class Dialogs;
30
31 /** The LyX xforms toolbar class
32   */
33 struct Toolbar::Pimpl {
34 public:
35         /// called when user selects a layout from combox
36         static void layoutSelectedCB(int, void *, Combox *);
37         ///
38         Pimpl(LyXView * o, Dialogs &, int x, int y);
39         ///
40         ~Pimpl();
41
42         /// (re)sets the toolbar
43         void set(bool doingmain = false);
44
45         /** this is to be the entry point to the toolbar
46             frame, where you can change the toolbar realtime.
47         */
48         void edit();
49         /// add a new button to the toolbar.
50         void add(int, bool doclean = true);
51         /// invokes the n'th icon in the toolbar
52         void push(int);
53         /// update the state of the icons
54         void update();
55
56         /// select the right layout in the combox
57         void setLayout(string const & layout);
58         /// Populate the layout combox; re-do everything if force is true.
59         void updateLayoutList(bool force);
60         /// Drop down the layout list
61         void openLayoutList();
62         /// Erase the layout list
63         void clearLayoutList();
64         /// the non-static version of layoutSelectedCB
65         void layoutSelected();
66
67         ///
68         struct toolbarItem
69         {
70                 ///
71                 int action;
72                 ///
73                 FL_OBJECT * icon;
74                 ///
75                 toolbarItem();
76                 ///
77                 void clean();
78                 ///
79                 ~toolbarItem();
80                 ///
81                 toolbarItem & operator=(toolbarItem const & ti);
82         };
83
84         /// typedef to simplify things
85         typedef std::vector<toolbarItem> ToolbarList;
86         /// The list containing all the buttons
87         ToolbarList toollist;
88         ///
89         XFormsView * owner;
90         ///
91         Tooltips * tooltip_;
92         ///
93         Combox * combox;
94         /// Starting position
95         int sxpos;
96         ///
97         int sypos;
98         ///
99         int xpos;
100         ///
101         int ypos;
102         ///
103         bool cleaned;
104
105         /// removes all toolbar buttons from the toolbar.
106         void clean();
107
108         /// more...
109         void reset();
110
111         /// more...
112         void lightReset();
113 };
114 #endif