/**
* \file FormPreamble.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 Edwin Leuven, leuven@fee.uva.nl
+ * \author Edwin Leuven
+ *
+ * Full author contact details are available in file CREDITS.
*/
#include <config.h>
-#include FORMS_H_LOCATION
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
-#include "form_preamble.h"
#include "FormPreamble.h"
-#include "Dialogs.h"
-#include "Liason.h"
-#include "LyXView.h"
-#include "buffer.h"
-#include "gettext.h"
+#include "ControlPreamble.h"
+#include "forms/form_preamble.h"
+
#include "xforms_helpers.h"
+#include "xformsBC.h"
-#ifdef CXX_WORKING_NAMESPACES
-using Liason::setMinibuffer;
-#endif
+#include "lyx_forms.h"
-FormPreamble::FormPreamble(LyXView * lv, Dialogs * d)
- : FormBaseBD(lv, d, _("LaTeX preamble"))
-{
- // 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_preamble> > base_class;
-FL_FORM * FormPreamble::form() const
-{
- if (dialog_.get()) return dialog_->form;
- return 0;
-}
+FormPreamble::FormPreamble()
+ : base_class(_("LaTeX Preamble"))
+{}
void FormPreamble::build()
{
- dialog_.reset(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();
+ dialog_.reset(build_preamble(this));
+
+ // Manage the ok, apply and cancel/close buttons
+ bcview().setOK(dialog_->button_ok);
+ bcview().setApply(dialog_->button_apply);
+ bcview().setCancel(dialog_->button_close);
+
+ // trigger an input event for cut&paste with middle mouse button.
+ setPrehandler(dialog_->input_preamble);
+
+ // for activate ok/apply immediately upon input
+ fl_set_input_return(dialog_->input_preamble, FL_RETURN_CHANGED);
}
void FormPreamble::apply()
{
- if (!lv_->view()->available() || !dialog_.get())
- 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(getString(dialog_->input_preamble));
}
void FormPreamble::update()
{
- if (!dialog_.get())
- 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());
}
-
-