3 * Copyright 2001 the LyX Team
4 * Read the file COPYING
6 * \author John Levon <moz@compsoc.man.ac.uk>
11 #include "support/filetools.h"
14 #include "QMathDialog.h"
17 #include "ControlMath.h"
18 #include "iconpalette.h"
20 #include <qwidgetstack.h>
21 #include <qcombobox.h>
24 #include <qscrollview.h>
27 QMathDialog::QMathDialog(QMath * form)
28 : QMathDialogBase(0, 0, false, 0),
31 connect(symbolsCO, SIGNAL(activated(int)), symbolsWS, SLOT(raiseWidget(int)));
33 for (int i = 0; *function_names[i]; ++i) {
34 functionsLB->insertItem(function_names[i]);
37 addPanel("operators", latex_bop);
38 addPanel("bigoperators", latex_varsz);
39 addPanel("relations", latex_brel);
40 addPanel("greek", latex_greek);
41 addPanel("arrows", latex_arrow);
42 addPanel("dots", latex_dots);
43 addPanel("misc", latex_misc);
44 addPanel("amsoperators", latex_ams_ops);
45 addPanel("amsrelations", latex_ams_rel);
46 addPanel("amsnegrelations", latex_ams_nrel);
47 addPanel("amsarrows", latex_ams_arrows);
48 addPanel("amsmisc", latex_ams_misc);
49 symbolsWS->raiseWidget(0);
53 void QMathDialog::addPanel(string const & name, char const ** entries)
57 QScrollView * view = new QScrollView(symbolsWS);
58 view->setHScrollBarMode(QScrollView::AlwaysOff);
59 view->setVScrollBarMode(QScrollView::AlwaysOn);
61 IconPalette * p = new IconPalette(view->viewport(), name.c_str());
63 for (int i = 0; *entries[i]; ++i) {
64 string xpm_name = LibFileSearch("images/math/", entries[i], "xpm");
65 p->add(QPixmap(xpm_name.c_str()), entries[i], string("\\") + entries[i]);
67 connect(p, SIGNAL(button_clicked(string)), this, SLOT(symbol_clicked(string)));
69 symbolsWS->addWidget(view, id++);
73 void QMathDialog::symbol_clicked(string str)
75 form_->insert_symbol(str);
79 void QMathDialog::fracClicked()
81 form_->insert_symbol("frac");
85 void QMathDialog::sqrtClicked()
87 form_->insert_symbol("sqrt");
91 void QMathDialog::decoClicked()
96 void QMathDialog::delimiterClicked()
101 void QMathDialog::expandClicked()
107 void QMathDialog::functionSelected(const QString & str)
109 form_->insert_symbol(str.latin1());
113 void QMathDialog::matrixClicked()
118 void QMathDialog::equationClicked()
123 void QMathDialog::spaceClicked()
128 void QMathDialog::styleClicked()
133 void QMathDialog::subscriptClicked()
139 void QMathDialog::superscriptClicked()
141 form_->superscript();