lyx_mirror/src/frontends/xforms/FormPreamble.C
Angus Leeming d51710eb3e Add a pre-handler that triggers an input event when text is pasted into
an xforms text input widget.
Use this in the Preamble dialog.

If anybody wants to help add this functionality to the rest of the dialogs
then feel free. Apart from FormPreferences (which has it's own prehandler
already that would need to be modified) there are about 60 text input
widgets that all need the extra code:
	extern "C" int C_CutandPastePH(FL_OBJECT *, int, FL_Coord, FL_Coord,
				       int, void *);

	fl_set_object_prehandler(widget, C_CutandPastePH);

Not too hard, is it?

Angus


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@2613 a592a061-630c-0410-9148-cb99ea01b6c8
2001-08-29 11:01:05 +00:00

57 lines
1.2 KiB
C

/**
* \file FormPreamble.C
* Copyright 2001 The LyX Team.
* See the file COPYING.
*
* \author Edwin Leuven, leuven@fee.uva.nl
*/
#include <config.h>
#ifdef __GNUG__
#pragma implementation
#endif
#include "xformsBC.h"
#include "ControlPreamble.h"
#include "FormPreamble.h"
#include "form_preamble.h"
#include "xforms_helpers.h"
// 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 *);
typedef FormCB<ControlPreamble, FormDB<FD_form_preamble> > base_class;
FormPreamble::FormPreamble(ControlPreamble & c)
: base_class(c, _("LaTeX preamble"))
{}
void FormPreamble::build()
{
dialog_.reset(build_preamble());
fl_set_input_return(dialog_->input_preamble, FL_RETURN_CHANGED);
fl_set_object_prehandler(dialog_->input_preamble, C_CutandPastePH);
// 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::apply()
{
controller().params() = fl_get_input(dialog_->input_preamble);
}
void FormPreamble::update()
{
fl_set_input(dialog_->input_preamble, controller().params().c_str());
}