lyx_mirror/src/frontends/xforms/FormPreamble.C
Angus Leeming 5997291fc3 Rewrote the maths panel so that ALL the popups now derive from FormBaseBD,
cleaning up the logic in the process. Should now be easy to move to a
controller-view split.
Moved the minw_, minh_ bug-fix into the base class. Can now forget about it!


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@1793 a592a061-630c-0410-9148-cb99ea01b6c8
2001-03-19 15:38:22 +00:00

91 lines
2.0 KiB
C

/**
* \file FormPreamble.C
* Copyright 2001 The LyX Team.
* See the file COPYING.
*
* \author Edwin Leuven, leuven@fee.uva.nl
*/
#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 "xforms_helpers.h"
using Liason::setMinibuffer;
using SigC::slot;
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));
}
FL_FORM * FormPreamble::form() const
{
if (dialog_.get()) return dialog_->form;
return 0;
}
void FormPreamble::build()
{
dialog_.reset(build_preamble());
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_.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"));
}
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());
}