]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/xforms/FormMathsStyle.C
Introduce LFUN_PRINT.
[lyx.git] / src / frontends / xforms / FormMathsStyle.C
index 37c73ece85a4fc9c26358fa6ceacba43066d9a9f..b9de12dc42edf7c97c1f87ab77f78cd3b5b15c60 100644 (file)
@@ -1,81 +1,97 @@
 /**
  * \file FormMathsStyle.C
- * Copyright 2001 The LyX Team.
- * See the file COPYING.
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
  *
  * \author Alejandro Aguilar Sierra
- * \author Pablo De Napoli, pdenapo@dm.uba.ar
- * \author John Levon, moz@compsoc.man.ac.uk
- * \author Angus Leeming, a.leeming@ic.ac.uk
+ * \author Pablo De Napoli
+ * \author John Levon
+ * \author Angus Leeming
+ *
+ * Full author contact details are available in file CREDITS.
  * Adapted from FormMathsSpace martin.vermeer@hut.fi
  */
 
 #include <config.h>
 
-#ifdef __GNUG_
-#pragma implementation
-#endif
-
 #include "FormMathsStyle.h"
-#include "form_maths_style.h"
+#include "forms/form_maths_style.h"
+#include "ControlMath.h"
+#include "xformsBC.h"
+
+#include "lyx_forms.h"
+#include "bmtable.h"
+
+#include "style.xbm"
+#include "font.xbm"
+
 
-extern char * latex_mathstyle[];
+char const * latex_mathstyle[] = {
+       "displaystyle", "textstyle", "scriptstyle", "scriptscriptstyle"
+};
 
-FormMathsStyle::FormMathsStyle(LyXView * lv, Dialogs * d,
-                              FormMathsPanel const & p)
-       : FormMathsSub(lv, d, p, _("Maths Styles & Fonts"), false),
+kb_action latex_mathfontcmds[] = {
+       LFUN_BOLD, LFUN_SANS, LFUN_ROMAN, LFUN_ITAL, LFUN_CODE,
+       LFUN_NOUN, LFUN_FRAK, LFUN_EMPH, LFUN_FREEFONT_APPLY, LFUN_DEFAULT
+};
+
+
+typedef FormController<ControlMath, FormView<FD_maths_style> > base_class;
+
+FormMathsStyle::FormMathsStyle(Dialog & parent)
+       : base_class(parent, _("Math Styles & Fonts"), false),
          style_(-1)
 {}
 
 
-FL_FORM * FormMathsStyle::form() const
+void FormMathsStyle::build()
 {
-       if (dialog_.get())
-               return dialog_->form;
-       return 0;
-}
+       dialog_.reset(build_maths_style(this));
 
+       fl_set_bmtable_data(dialog_->bmtable_style1, 1, 1,
+                           style1_width, style1_height, style1_bits);
+       fl_set_bmtable_maxitems(dialog_->bmtable_style1, 1);
+       bcview().addReadOnly(dialog_->bmtable_style1);
 
-void FormMathsStyle::build()
-{
-       dialog_.reset(build_maths_style());
-
-       fl_set_button(dialog_->radio_text, 1);
-       style_ = 1;
-
-       bc().setOK(dialog_->button_ok);
-       bc().setApply(dialog_->button_apply);
-       bc().setCancel(dialog_->button_cancel);
-
-       bc().addReadOnly(dialog_->radio_display);
-       bc().addReadOnly(dialog_->radio_text);
-       bc().addReadOnly(dialog_->radio_script);
-       bc().addReadOnly(dialog_->radio_scriptscript);
-       bc().addReadOnly(dialog_->radio_bold);
-       bc().addReadOnly(dialog_->radio_calligraphic);
-       bc().addReadOnly(dialog_->radio_roman);
-       bc().addReadOnly(dialog_->radio_typewriter);
-       bc().addReadOnly(dialog_->radio_sans);
-       bc().addReadOnly(dialog_->radio_italic);
-       bc().addReadOnly(dialog_->radio_bbbold);
-       bc().addReadOnly(dialog_->radio_fraktur);
-       bc().addReadOnly(dialog_->radio_textrm);
-       bc().addReadOnly(dialog_->radio_normal);
+       fl_set_bmtable_data(dialog_->bmtable_style2, 1, 3,
+                           style2_width, style2_height, style2_bits);
+       fl_set_bmtable_maxitems(dialog_->bmtable_style2, 3);
+       bcview().addReadOnly(dialog_->bmtable_style2);
+
+       fl_set_bmtable_data(dialog_->bmtable_font1, 1, 5,
+                           font1_width, font1_height, font1_bits);
+       fl_set_bmtable_maxitems(dialog_->bmtable_font1, 5);
+       bcview().addReadOnly(dialog_->bmtable_font1);
+
+       fl_set_bmtable_data(dialog_->bmtable_font2, 1, 3,
+                           font2_width, font2_height, font2_bits);
+       fl_set_bmtable_maxitems(dialog_->bmtable_font2, 3);
+       bcview().addReadOnly(dialog_->bmtable_font2);
+
+       bcview().setCancel(dialog_->button_close);
 }
 
 
 void FormMathsStyle::apply()
 {
-       if (style_ >= 0)
-               parent_.insertSymbol(latex_mathstyle[style_]);
+       if ((style_ >= 0) && (style_ < 4))
+               controller().dispatchInsert(latex_mathstyle[style_]);
+       else if ((style_ >= 4) && (style_ < 14))
+               controller().dispatchFunc(latex_mathfontcmds[style_-4]);
 }
 
-bool FormMathsStyle::input(FL_OBJECT *, long data)
+
+ButtonPolicy::SMInput FormMathsStyle::input(FL_OBJECT * ob, long data)
 {
-       style_ = -1;
-       if (data >= 0 && data < 14) {
-               style_ = short(data);
-       }
-       return true;
+       style_ = fl_get_bmtable(ob);
+       if (style_ < 0) return ButtonPolicy::SMI_INVALID;
+
+       //if (ob == dialog_->bmtable_style1) style_ += 0;
+       if (ob == dialog_->bmtable_style2) style_ += 1;
+       if (ob == dialog_->bmtable_font1)  style_ += 4;
+       if (ob == dialog_->bmtable_font2)  style_ += 9;
+       if (data >= 12) style_ = short(data);
+       apply();
+
+       return ButtonPolicy::SMI_VALID;
 }