]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/xforms/FormPreamble.C
Bugfixes: checkboxes to radiobuttons (from J�rgen S) and remove a little
[lyx.git] / src / frontends / xforms / FormPreamble.C
index 79897e4769f16f420572909e41dc7257dee12531..537ec7012e48fa2355407ec84f83d023ecdefba5 100644 (file)
@@ -8,88 +8,49 @@
 
 #include <config.h>
 
-#include FORMS_H_LOCATION
+#ifdef __GNUG__
+#pragma implementation
+#endif
 
-#include "form_preamble.h"
+#include "xformsBC.h"
+#include "ControlPreamble.h"
 #include "FormPreamble.h"
-#include "Dialogs.h"
-#include "Liason.h"
-#include "LyXView.h"
-#include "buffer.h"
-#include "gettext.h"
+#include "form_preamble.h"
 #include "xforms_helpers.h"
 
-#ifdef CXX_WORKING_NAMESPACES
-using Liason::setMinibuffer;
-#endif
+// To trigger an input event when pasting in an xforms input object
+// using the middle mouse button.
+extern "C" int C_CutandPastePH(FL_OBJECT *, int, FL_Coord, FL_Coord,
+                              int, void *);
 
-FormPreamble::FormPreamble(LyXView * lv, Dialogs * d)
-       : FormBaseBD(lv, d, _("LaTeX preamble"), new NoRepeatedApplyReadOnlyPolicy),
-       dialog_(0)
-{
-    // let the popup be shown
-    // This is a permanent connection so we won't bother
-    // storing a copy because we won't be disconnecting.
-    d->showPreamble.connect(slot(this, &FormPreamble::show));
-}
+typedef FormCB<ControlPreamble, FormDB<FD_form_preamble> > base_class;
+
+FormPreamble::FormPreamble(ControlPreamble & c)
+       : base_class(c, _("LaTeX preamble"))
+{}
 
 
-FormPreamble::~FormPreamble()
+void FormPreamble::build()
 {
-   delete dialog_;
-}
+       dialog_.reset(build_preamble());
 
+       fl_set_input_return(dialog_->input_preamble, FL_RETURN_CHANGED);
+       fl_set_object_prehandler(dialog_->input_preamble, C_CutandPastePH);
 
-FL_FORM * FormPreamble::form() const
-{
-    if (dialog_) return dialog_->form;
-    return 0;
+       // Manage the ok, apply and cancel/close buttons
+       bc().setOK(dialog_->button_ok);
+       bc().setApply(dialog_->button_apply);
+       bc().setCancel(dialog_->button_cancel);
 }
 
-void FormPreamble::build()
-{
-   dialog_ = build_preamble();
-   // Workaround dumb xforms sizing bug
-   minw_ = form()->w;
-   minh_ = form()->h;
-   
-   fl_set_input_return(dialog_->input_preamble, FL_RETURN_CHANGED);
-   // Manage the ok, apply and cancel/close buttons
-   bc_.setOK(dialog_->button_ok);
-   bc_.setApply(dialog_->button_apply);
-   bc_.setCancel(dialog_->button_cancel);
-   bc_.addReadOnly(dialog_->input_preamble);
-   bc_.refresh();
-}
 
 void FormPreamble::apply()
 {
-   if (!lv_->view()->available() || !dialog_)
-     return;
-   
-   // is this needed?:
-   // lv_->view()->update(BufferView::SELECT | BufferView::FITCUR | BufferView::CHANGE);
-   
-   lv_->buffer()->params.preamble = fl_get_input(dialog_->input_preamble);
-   lv_->buffer()->markDirty();
-   setMinibuffer(lv_, _("LaTeX preamble set"));
+       controller().params() = fl_get_input(dialog_->input_preamble);
 }
 
 
 void FormPreamble::update()
 {
-   if (!dialog_)
-     return;
-
-   fl_set_input(dialog_->input_preamble,lv_->buffer()->params.preamble.c_str());
-
-   bool const enable = (! lv_->buffer()->isReadonly());
-   setEnabled(dialog_->input_preamble, enable);
-   setEnabled(dialog_->button_ok,      enable);
-   setEnabled(dialog_->button_apply,   enable);
-   
-   // need this?
-   // bc_.readOnly(lv_->buffer()->isReadonly());
+       fl_set_input(dialog_->input_preamble, controller().params().c_str());
 }
-
-