- if (!general_.get())
- return;
-
- Buffer * buf = lv_->view()->buffer();
- LyXText * text = 0;
-
- if (lv_->view()->theLockingInset())
- text = lv_->view()->theLockingInset()->getLyXText(lv_->view());
- if (!text)
- text = lv_->view()->text;
-
- fl_set_input(general_->input_labelwidth,
- text->cursor.par()->GetLabelWidthString().c_str());
- fl_set_button(general_->radio_align_right, 0);
- fl_set_button(general_->radio_align_left, 0);
- fl_set_button(general_->radio_align_center, 0);
- fl_set_button(general_->radio_align_block, 0);
-
- int align = text->cursor.par()->GetAlign();
- if (align == LYX_ALIGN_LAYOUT)
- align = textclasslist.Style(buf->params.textclass,
- text->cursor.par()->GetLayout()).align;
-
- switch (align) {
- case LYX_ALIGN_RIGHT:
- fl_set_button(general_->radio_align_right, 1);
- break;
- case LYX_ALIGN_LEFT:
- fl_set_button(general_->radio_align_left, 1);
- break;
- case LYX_ALIGN_CENTER:
- fl_set_button(general_->radio_align_center, 1);
- break;
- default:
- fl_set_button(general_->radio_align_block, 1);
- break;
- }
-
- fl_set_button(general_->check_lines_top,
- text->cursor.par()->params.lineTop());
- fl_set_button(general_->check_lines_bottom,
- text->cursor.par()->params.lineBottom());
- fl_set_button(general_->check_pagebreaks_top,
- text->cursor.par()->params.pagebreakTop());
- fl_set_button(general_->check_pagebreaks_bottom,
- text->cursor.par()->params.pagebreakBottom());
- fl_set_button(general_->check_noindent,
- text->cursor.par()->params.noindent());
-
- fl_set_input (general_->input_space_above, "");
-
- switch (text->cursor.par()->params.spaceTop().kind()) {
- case VSpace::NONE:
- fl_set_choice (general_->choice_space_above, 1);
- break;
- case VSpace::DEFSKIP:
- fl_set_choice (general_->choice_space_above, 2);
- break;
- case VSpace::SMALLSKIP:
- fl_set_choice (general_->choice_space_above, 3);
- break;
- case VSpace::MEDSKIP:
- fl_set_choice (general_->choice_space_above, 4);
- break;
- case VSpace::BIGSKIP:
- fl_set_choice (general_->choice_space_above, 5);
- break;
- case VSpace::VFILL:
- fl_set_choice (general_->choice_space_above, 6);
- break;
- case VSpace::LENGTH:
- fl_set_choice (general_->choice_space_above, 7);
- fl_set_input(general_->input_space_above, text->cursor.par()->
- params.spaceTop().length().asString().c_str());
- break;
- }
-
- fl_set_button (general_->check_space_above,
- text->cursor.par()->params.spaceTop().keep());
- fl_set_input (general_->input_space_below, "");
-
- switch (text->cursor.par()->params.spaceBottom().kind()) {
- case VSpace::NONE:
- fl_set_choice (general_->choice_space_below, 1);
- break;
- case VSpace::DEFSKIP:
- fl_set_choice (general_->choice_space_below, 2);
- break;
- case VSpace::SMALLSKIP:
- fl_set_choice (general_->choice_space_below, 3);
- break;
- case VSpace::MEDSKIP:
- fl_set_choice (general_->choice_space_below, 4);
- break;
- case VSpace::BIGSKIP:
- fl_set_choice (general_->choice_space_below, 5);
- break;
- case VSpace::VFILL:
- fl_set_choice (general_->choice_space_below, 6);
- break;
- case VSpace::LENGTH:
- fl_set_choice (general_->choice_space_below, 7);
- fl_set_input(general_->input_space_below, text->cursor.par()->
- params.spaceBottom().length().asString().c_str());
- break;
- }
- fl_set_button(general_->check_space_below,
- text->cursor.par()->params.spaceBottom().keep());
- fl_set_button(general_->check_noindent,
- text->cursor.par()->params.noindent());
+ if (!dialog_.get())
+ return;
+
+ // label width
+ string const labelwidth = controller().params().labelWidthString();
+ fl_set_input(dialog_->input_labelwidth, labelwidth.c_str());
+ setEnabled(dialog_->input_labelwidth,
+ labelwidth != _("Senseless with this layout!"));
+
+ // alignment
+ alignment_.set(controller().params().align());
+
+ // mark default alignment
+ LyXAlignment const default_alignment = controller().alignDefault();
+
+ string label = _("Block");
+ if (default_alignment == LYX_ALIGN_BLOCK) {
+ label += _(" (default)");
+ }
+ fl_set_object_label(dialog_->radio_align_block, label.c_str());
+ fl_set_button_shortcut(dialog_->radio_align_block, "#B", 1);
+
+ label = _("Center");
+ if (default_alignment == LYX_ALIGN_CENTER) {
+ label += _(" (default)");
+ }
+ fl_set_object_label(dialog_->radio_align_center, label.c_str());
+ fl_set_button_shortcut(dialog_->radio_align_center, "#C", 1);
+
+ label = _("Left");
+ if (default_alignment == LYX_ALIGN_LEFT) {
+ label += _(" (default)");
+ }
+ fl_set_object_label(dialog_->radio_align_left, label.c_str());
+ fl_set_button_shortcut(dialog_->radio_align_left, "#L", 1);
+
+ label = _("Right");
+ if (default_alignment == LYX_ALIGN_RIGHT) {
+ label = _(" (default)");
+ }
+ fl_set_object_label(dialog_->radio_align_right, label.c_str());
+ fl_set_button_shortcut(dialog_->radio_align_right, "#R", 1);
+
+ // Ensure that there's no crud left on the screen from this change
+ // of labels.
+ fl_redraw_form(form());
+
+ LyXAlignment alignpos = controller().alignPossible();
+ setEnabled(dialog_->radio_align_block,
+ bool(alignpos & LYX_ALIGN_BLOCK));
+ setEnabled(dialog_->radio_align_center,
+ bool(alignpos & LYX_ALIGN_CENTER));
+ setEnabled(dialog_->radio_align_left,
+ bool(alignpos & LYX_ALIGN_LEFT));
+ setEnabled(dialog_->radio_align_right,
+ bool(alignpos & LYX_ALIGN_RIGHT));
+
+ // lines, pagebreaks and indent
+ fl_set_button(dialog_->check_noindent,
+ controller().params().noindent());
+
+ // linespacing
+ Spacing const space = controller().params().spacing();
+
+ int pos;
+ switch (space.getSpace()) {
+ case Spacing::Other:
+ pos = 5;
+ break;
+ case Spacing::Double:
+ pos = 4;
+ break;
+ case Spacing::Onehalf:
+ pos = 3;
+ break;
+ case Spacing::Single:
+ pos = 2;
+ break;
+ case Spacing::Default:
+ default:
+ pos = 1;
+ break;
+ }
+ fl_set_choice(dialog_->choice_linespacing, pos);
+
+ bool const spacing_other = space.getSpace() == Spacing::Other;
+ setEnabled(dialog_->input_linespacing, spacing_other);
+ if (spacing_other) {
+ fl_set_input(dialog_->input_linespacing,
+ space.getValueAsString().c_str());
+ } else {
+ fl_set_input(dialog_->input_linespacing, "");
+ }
+
+ // no indent
+ fl_set_button(dialog_->check_noindent,
+ controller().params().noindent());