using std::string;
-namespace lyx {
-namespace frontend {
+static char const * latex_delimiters[] = {
+ "(", ")", "{", "}", "[", "]",
+ "lceil", "rceil", "lfloor", "rfloor", "langle", "rangle",
+ "uparrow", "updownarrow", "Uparrow", "Updownarrow", "downarrow", "Downarrow",
+ "|", "Vert", "/", "backslash", ""
+};
+
+
+static int const nr_latex_delimiters =
+ sizeof(latex_delimiters) / sizeof(char const *);
static QString const bigleft[] = {"", "bigl", "Bigl", "biggl", "Biggl"};
}
-GuiDelimiterDialog::GuiDelimiterDialog(LyXView & lv)
- : GuiDialog(lv, "mathdelimiter")
+namespace lyx {
+namespace frontend {
+
+
+GuiDelimiter::GuiDelimiter(LyXView & lv)
+ : GuiMath(lv, "mathdelimiter")
{
setupUi(this);
setViewTitle(_("Math Delimiter"));
- setController(new ControlMath(*this));
+ setController(this, false);
connect(closePB, SIGNAL(clicked()), this, SLOT(accept()));
int const end = nr_latex_delimiters - 1;
for (int i = 0; i < end; ++i) {
string const delim = latex_delimiters[i];
- MathSymbol const & ms = controller().mathSymbol(delim);
+ MathSymbol const & ms = mathSymbol(delim);
QString symbol(ms.fontcode?
QChar(ms.fontcode) : toqstr(docstring(1, ms.unicode)));
QListWidgetItem * lwi = new QListWidgetItem(symbol);
}
for (int i = 0; i != leftLW->count(); ++i) {
- MathSymbol const & ms = controller().mathSymbol(
+ MathSymbol const & ms = mathSymbol(
fromqstr(leftLW->item(i)->toolTip()));
rightLW->addItem(list_items[doMatch(ms.unicode)]->clone());
}
}
-ControlMath & GuiDelimiterDialog::controller() const
+char_type GuiDelimiter::doMatch(char_type const symbol)
{
- return static_cast<ControlMath &>(GuiDialog::controller());
-}
-
-
-char_type GuiDelimiterDialog::doMatch(char_type const symbol) const
-{
- string const & str = controller().texName(symbol);
+ string const & str = texName(symbol);
string match;
if (str == "(") match = ")";
else if (str == ")") match = "(";
else if (str == "/") match = "backslash";
else return symbol;
- return controller().mathSymbol(match).unicode;
+ return mathSymbol(match).unicode;
}
-void GuiDelimiterDialog::updateTeXCode(int size)
+void GuiDelimiter::updateTeXCode(int size)
{
bool const bigsize = size != 0;
}
-void GuiDelimiterDialog::on_insertPB_clicked()
+void GuiDelimiter::on_insertPB_clicked()
{
if (sizeCO->currentIndex() == 0)
- controller().dispatchDelim(fromqstr(tex_code_));
+ dispatchDelim(fromqstr(tex_code_));
else {
QString command = '"' + tex_code_ + '"';
command.replace(' ', "\" \"");
- controller().dispatchBigDelim(fromqstr(command));
+ dispatchBigDelim(fromqstr(command));
}
}
-void GuiDelimiterDialog::on_sizeCO_activated(int index)
+void GuiDelimiter::on_sizeCO_activated(int index)
{
updateTeXCode(index);
}
-void GuiDelimiterDialog::on_leftLW_itemActivated(QListWidgetItem *)
+void GuiDelimiter::on_leftLW_itemActivated(QListWidgetItem *)
{
on_insertPB_clicked();
accept();
}
-void GuiDelimiterDialog::on_rightLW_itemActivated(QListWidgetItem *)
+void GuiDelimiter::on_rightLW_itemActivated(QListWidgetItem *)
{
on_insertPB_clicked();
accept();
}
-void GuiDelimiterDialog::on_leftLW_currentRowChanged(int item)
+void GuiDelimiter::on_leftLW_currentRowChanged(int item)
{
if (matchCB->isChecked())
rightLW->setCurrentRow(item);
}
-void GuiDelimiterDialog::on_rightLW_currentRowChanged(int item)
+void GuiDelimiter::on_rightLW_currentRowChanged(int item)
{
if (matchCB->isChecked())
leftLW->setCurrentRow(item);
}
-void GuiDelimiterDialog::on_matchCB_stateChanged(int state)
+void GuiDelimiter::on_matchCB_stateChanged(int state)
{
if (state == Qt::Checked)
on_leftLW_currentRowChanged(leftLW->currentRow());
}
+Dialog * createGuiDelimiter(LyXView & lv) { return new GuiDelimiter(lv); }
+
+
} // namespace frontend
} // namespace lyx