+ placement_.set(dialog_->radio_default);
+ }
+ fl_set_button(dialog_->check_force, force);
+ fl_set_button(dialog_->check_top, top);
+ fl_set_button(dialog_->check_bottom, bottom);
+ fl_set_button(dialog_->check_page, page);
+ fl_set_button(dialog_->check_here, here);
+ fl_set_button(dialog_->check_wide, wide);
+ fl_set_button(dialog_->check_sideways, sideways);
+
+ setEnabled(dialog_->radio_here_definitely, !wide && !sideways);
+ setEnabled(dialog_->check_force, alternatives && !sideways);
+ setEnabled(dialog_->check_top, alternatives && !sideways);
+ setEnabled(dialog_->check_bottom, alternatives && !sideways);
+ setEnabled(dialog_->check_page, alternatives && !sideways);
+ setEnabled(dialog_->check_here, alternatives && !wide && !sideways);
+ setEnabled(dialog_->check_wide, !sideways);
+ setEnabled(dialog_->radio_default, !sideways);
+ setEnabled(dialog_->radio_alternatives, !sideways);
+ setEnabled(dialog_->check_sideways, sideways_possible);
+}
+
+
+ButtonPolicy::SMInput FormFloat::input(FL_OBJECT * ob, long)
+{
+ bool const alternatives = placement_.get() == ALTERNATIVES;
+ bool const wide = fl_get_button(dialog_->check_wide);
+ bool const sideways = fl_get_button(dialog_->check_sideways);
+
+ if (ob == dialog_->radio_default ||
+ ob == dialog_->radio_here_definitely ||
+ ob == dialog_->radio_alternatives) {
+ // enable check buttons only for Alternatives
+ setEnabled(dialog_->check_top, alternatives);
+ setEnabled(dialog_->check_page, alternatives);
+ // wide float doesn't allow 'here' or 'bottom' placement
+ setEnabled(dialog_->check_here, alternatives && !wide);
+ setEnabled(dialog_->check_bottom, alternatives && !wide);
+
+ } else if (ob == dialog_->check_wide) {
+ if (wide && placement_.get() == HERE_DEFINITELY) {
+ // wide float doesn't allow 'Here, definitely!'
+ // placement
+ placement_.set(dialog_->radio_default);