* ======================================================
*
* \file FormMinipage.C
- * \author Juergen Vigna, jug@sad.it
+ * \author Jürgen Vigna, jug@sad.it
*/
#include <config.h>
#include "FormMinipage.h"
#include "form_minipage.h"
#include "support/lstrings.h"
+#include "helper_funcs.h"
+#include "debug.h"
+#include "xforms_helpers.h"
typedef FormCB<ControlMinipage, FormDB<FD_form_minipage> > base_class;
dialog_.reset(build_minipage());
fl_set_input_return(dialog_->input_width, FL_RETURN_CHANGED);
- fl_set_input_return(dialog_->input_widthp, FL_RETURN_CHANGED);
+
+ string const choice = getStringFromVector(getLatexUnits(), "|");
+ fl_addto_choice(dialog_->choice_width_units, subst(choice, "%", "%%").c_str());
// Manage the ok, apply and cancel/close buttons
bc().setOK(dialog_->button_ok);
bc().setApply(dialog_->button_apply);
bc().setCancel(dialog_->button_cancel);
- bc().setUndoAll(dialog_->button_restore);
+ bc().setRestore(dialog_->button_restore);
bc().addReadOnly(dialog_->input_width);
- bc().addReadOnly(dialog_->input_widthp);
+ bc().addReadOnly(dialog_->choice_width_units);
+ bc().addReadOnly(dialog_->group_alignment);
bc().addReadOnly(dialog_->radio_top);
bc().addReadOnly(dialog_->radio_middle);
bc().addReadOnly(dialog_->radio_bottom);
-
- bc().refresh();
}
void FormMinipage::apply()
{
- controller().params().width = fl_get_input(dialog_->input_width);
- controller().params().widthp =
- strToInt(fl_get_input(dialog_->input_widthp));
+ controller().params().pageWidth =
+ LyXLength(getLengthFromWidgets(dialog_->input_width,
+ dialog_->choice_width_units));
if (fl_get_button(dialog_->radio_top))
controller().params().pos = InsetMinipage::top;
void FormMinipage::update()
{
- fl_set_input(dialog_->input_width,
- controller().params().width.c_str());
- fl_set_input(dialog_->input_widthp,
- tostr(controller().params().widthp).c_str());
-
+ LyXLength len(controller().params().pageWidth);
+ fl_set_input(dialog_->input_width, tostr(len.value()).c_str());
+ fl_set_choice(dialog_->choice_width_units, len.unit() + 1);
+
switch (controller().params().pos) {
case InsetMinipage::top:
fl_set_button(dialog_->radio_top, 1);