1 /* This file is part of
2 * ======================================================
4 * LyX, The Document Processor
6 * Copyright 2001 The LyX Team.
8 * ======================================================
10 * \file FormMinipage.C
11 * \author Jürgen Vigna, jug@sad.it
17 #pragma implementation
21 #include "ControlMinipage.h"
22 #include "FormMinipage.h"
23 #include "form_minipage.h"
24 #include "support/lstrings.h"
26 typedef FormCB<ControlMinipage, FormDB<FD_form_minipage> > base_class;
28 FormMinipage::FormMinipage(ControlMinipage & c)
29 : base_class(c, _("Minipage Options"))
33 void FormMinipage::build()
35 dialog_.reset(build_minipage());
37 fl_set_input_return(dialog_->input_width, FL_RETURN_CHANGED);
38 fl_set_input_return(dialog_->input_widthp, FL_RETURN_CHANGED);
40 // Manage the ok, apply and cancel/close buttons
41 bc().setOK(dialog_->button_ok);
42 bc().setApply(dialog_->button_apply);
43 bc().setCancel(dialog_->button_cancel);
44 bc().setUndoAll(dialog_->button_restore);
46 bc().addReadOnly(dialog_->input_width);
47 bc().addReadOnly(dialog_->input_widthp);
48 bc().addReadOnly(dialog_->radio_top);
49 bc().addReadOnly(dialog_->radio_middle);
50 bc().addReadOnly(dialog_->radio_bottom);
56 void FormMinipage::apply()
58 controller().params().width = fl_get_input(dialog_->input_width);
59 controller().params().widthp =
60 strToInt(fl_get_input(dialog_->input_widthp));
62 if (fl_get_button(dialog_->radio_top))
63 controller().params().pos = InsetMinipage::top;
64 else if (fl_get_button(dialog_->radio_middle))
65 controller().params().pos = InsetMinipage::center;
67 controller().params().pos = InsetMinipage::bottom;
71 void FormMinipage::update()
73 fl_set_input(dialog_->input_width,
74 controller().params().width.c_str());
75 fl_set_input(dialog_->input_widthp,
76 tostr(controller().params().widthp).c_str());
78 switch (controller().params().pos) {
79 case InsetMinipage::top:
80 fl_set_button(dialog_->radio_top, 1);
82 case InsetMinipage::center:
83 fl_set_button(dialog_->radio_middle, 1);
85 case InsetMinipage::bottom:
86 fl_set_button(dialog_->radio_bottom, 1);