]> git.lyx.org Git - lyx.git/blob - src/frontends/qt4/QMathDialog.h
* src/frontends/qt4/GuiSelection.C
[lyx.git] / src / frontends / qt4 / QMathDialog.h
1 // -*- C++ -*-
2 /**
3  * \file QMathDialog.h
4  * This file is part of LyX, the document processor.
5  * Licence details can be found in the file COPYING.
6  *
7  * \author John Levon
8  *
9  * Full author contact details are available in file CREDITS.
10  */
11
12 #ifndef QMATHDIALOG_H
13 #define QMATHDIALOG_H
14
15 #include "ui/QMathUi.h"
16 #include <string>
17
18 #include <QDialog>
19
20 class QListWidgetItem;
21
22 namespace lyx {
23 namespace frontend {
24
25 class IconPalette;
26
27 class QMAction : public QAction {
28         Q_OBJECT
29 public:
30         QMAction( const QString & text, const std::string & action, QObject * parent)
31         : QAction(text,parent), action_(action) {
32                 connect(this, SIGNAL(triggered()), this, SLOT(action()));
33         }
34 Q_SIGNALS:
35         void action(const std::string &);
36 protected Q_SLOTS:
37         void action() {
38                 // emit signal
39                 action(action_);
40         }
41 private:
42         std::string action_;
43 };
44
45
46 class QMath;
47
48 class QMathDialog : public QDialog, public Ui::QMathUi
49 {
50         Q_OBJECT
51 public:
52         QMathDialog(QMath * form);
53 public Q_SLOTS:
54         virtual void delimiterClicked();
55         virtual void expandClicked();
56         virtual void fracClicked();
57         virtual void functionSelected(QListWidgetItem *);
58         virtual void matrixClicked();
59         virtual void subscriptClicked();
60         virtual void superscriptClicked();
61         virtual void equationClicked();
62         void symbol_clicked(const std::string &);
63         void insertCubeRoot();
64
65         /// about to show a symbol panel
66         void showingPanel(int);
67 protected:
68         //needed ? virtual void closeEvent(QCloseEvent * e);
69 private:
70         /// add item to popup menu
71         void addMenuItem(QMenu * menu, const QString & label, const std::string &);
72         /// make a symbol panel
73         IconPalette * makePanel(QWidget * parent, char const ** entries);
74         /// add a symbol panel
75         void addPanel(int num);
76
77         /// owning form
78         QMath * form_;
79 };
80
81 } // namespace frontend
82 } // namespace lyx
83
84 #endif // QMATHDIALOG_H