3 * Copyright 2001 the LyX Team
4 * Read the file COPYING
6 * \author John Levon <moz@compsoc.man.ac.uk>
12 #pragma implementation
15 #include <qpushbutton.h>
16 #include <qradiobutton.h>
17 #include <qlineedit.h>
18 #include "lengthcombo.h"
20 #include "QMinipageDialog.h"
21 #include "QMinipage.h"
24 #include "support/lstrings.h"
26 #include "QtLyXView.h"
27 #include "ControlMinipage.h"
29 typedef Qt2CB<ControlMinipage, Qt2DB<QMinipageDialog> > base_class;
31 QMinipage::QMinipage(ControlMinipage & c)
32 : base_class(c, _("Minipage"))
37 void QMinipage::build_dialog()
39 dialog_.reset(new QMinipageDialog(this));
41 bc().setRestore(dialog_->restorePB);
42 bc().setOK(dialog_->okPB);
43 bc().setApply(dialog_->applyPB);
44 bc().setCancel(dialog_->closePB);
46 bc().addReadOnly(dialog_->widthED);
47 bc().addReadOnly(dialog_->unitsLC);
48 bc().addReadOnly(dialog_->topRB);
49 bc().addReadOnly(dialog_->bottomRB);
50 bc().addReadOnly(dialog_->middleRB);
54 void QMinipage::apply()
56 double value = strToDbl(dialog_->widthED->text().latin1());
57 LyXLength::UNIT unit = dialog_->unitsLC->currentLengthItem();
58 if (string(dialog_->widthED->text().latin1()).empty())
59 unit = LyXLength::UNIT_NONE;
61 LyXLength len(value, unit);
63 controller().params().width = len.asString();
65 if (dialog_->topRB->isChecked())
66 controller().params().pos = InsetMinipage::top;
67 else if (dialog_->middleRB->isChecked())
68 controller().params().pos = InsetMinipage::center;
70 controller().params().pos = InsetMinipage::bottom;
75 string const numtostr(double val) {
84 void QMinipage::update_contents()
86 LyXLength len(controller().params().width.c_str());
87 dialog_->widthED->setText(numtostr(len.value()).c_str());
88 dialog_->unitsLC->setCurrentItem(len.unit());
90 QRadioButton * button = dialog_->topRB;
92 switch (controller().params().pos) {
93 case InsetMinipage::center:
94 button = dialog_->middleRB;
96 case InsetMinipage::bottom:
97 button = dialog_->bottomRB;
100 button->setChecked(true);