"| Very small Margins "
"| Very wide Margins "));
- fl_set_input_return(paper_->input_custom_width, FL_RETURN_CHANGED);
+ fl_set_input_return(paper_->input_custom_width, FL_RETURN_CHANGED);
fl_set_input_return(paper_->input_custom_height, FL_RETURN_CHANGED);
- fl_set_input_return(paper_->input_top_margin, FL_RETURN_CHANGED);
+ fl_set_input_return(paper_->input_top_margin, FL_RETURN_CHANGED);
fl_set_input_return(paper_->input_bottom_margin, FL_RETURN_CHANGED);
- fl_set_input_return(paper_->input_left_margin, FL_RETURN_CHANGED);
- fl_set_input_return(paper_->input_right_margin, FL_RETURN_CHANGED);
- fl_set_input_return(paper_->input_head_height, FL_RETURN_CHANGED);
- fl_set_input_return(paper_->input_head_sep, FL_RETURN_CHANGED);
- fl_set_input_return(paper_->input_foot_skip, FL_RETURN_CHANGED);
+ fl_set_input_return(paper_->input_inner_margin, FL_RETURN_CHANGED);
+ fl_set_input_return(paper_->input_outer_margin, FL_RETURN_CHANGED);
+ fl_set_input_return(paper_->input_head_height, FL_RETURN_CHANGED);
+ fl_set_input_return(paper_->input_head_sep, FL_RETURN_CHANGED);
+ fl_set_input_return(paper_->input_foot_skip, FL_RETURN_CHANGED);
- // Set input filters on width and height to make them accept only
- // unsigned numbers.
- fl_set_input_filter(paper_->input_custom_width,
- fl_unsigned_float_filter);
- fl_set_input_filter(paper_->input_custom_height,
- fl_unsigned_float_filter);
- fl_set_input_filter(paper_->input_top_margin,
- fl_unsigned_float_filter);
- fl_set_input_filter(paper_->input_bottom_margin,
- fl_unsigned_float_filter);
- fl_set_input_filter(paper_->input_left_margin,
- fl_unsigned_float_filter);
- fl_set_input_filter(paper_->input_right_margin,
- fl_unsigned_float_filter);
- fl_set_input_filter(paper_->input_head_height,
- fl_unsigned_float_filter);
- fl_set_input_filter(paper_->input_head_sep,
- fl_unsigned_float_filter);
- fl_set_input_filter(paper_->input_foot_skip,
- fl_unsigned_float_filter);
// Create the contents of the unit choices
// Don't include the "%" terms...
fl_addto_choice(paper_->choice_custom_height_units, units.c_str());
fl_addto_choice(paper_->choice_top_margin_units, units.c_str());
fl_addto_choice(paper_->choice_bottom_margin_units, units.c_str());
- fl_addto_choice(paper_->choice_left_margin_units, units.c_str());
- fl_addto_choice(paper_->choice_right_margin_units, units.c_str());
+ fl_addto_choice(paper_->choice_inner_margin_units, units.c_str());
+ fl_addto_choice(paper_->choice_outer_margin_units, units.c_str());
fl_addto_choice(paper_->choice_head_height_units, units.c_str());
fl_addto_choice(paper_->choice_head_sep_units, units.c_str());
fl_addto_choice(paper_->choice_foot_skip_units, units.c_str());
bc().addReadOnly (paper_->input_custom_height);
bc().addReadOnly (paper_->input_top_margin);
bc().addReadOnly (paper_->input_bottom_margin);
- bc().addReadOnly (paper_->input_left_margin);
- bc().addReadOnly (paper_->input_right_margin);
+ bc().addReadOnly (paper_->input_inner_margin);
+ bc().addReadOnly (paper_->input_outer_margin);
bc().addReadOnly (paper_->input_head_height);
bc().addReadOnly (paper_->input_head_sep);
bc().addReadOnly (paper_->input_foot_skip);
fl_set_input_return(class_->input_doc_skip, FL_RETURN_CHANGED);
fl_set_input_return(class_->input_doc_spacing, FL_RETURN_CHANGED);
- // Set input filters on doc skip to make it accept only
+ // Set input filters on doc spacing to make it accept only
// unsigned numbers.
- fl_set_input_filter(class_->input_doc_skip,
- fl_unsigned_float_filter);
+ fl_set_input_filter(class_->input_doc_spacing, fl_unsigned_float_filter);
bc().addReadOnly (class_->radio_doc_indent);
bc().addReadOnly (class_->radio_doc_skip);
setEnabled(paper_->input_top_margin, use_geom);
setEnabled(paper_->input_bottom_margin, use_geom);
- setEnabled(paper_->input_left_margin, use_geom);
- setEnabled(paper_->input_right_margin, use_geom);
+ setEnabled(paper_->input_inner_margin, use_geom);
+ setEnabled(paper_->input_outer_margin, use_geom);
setEnabled(paper_->input_head_height, use_geom);
setEnabled(paper_->input_head_sep, use_geom);
setEnabled(paper_->input_foot_skip, use_geom);
setEnabled(paper_->choice_top_margin_units, use_geom);
setEnabled(paper_->choice_bottom_margin_units, use_geom);
- setEnabled(paper_->choice_left_margin_units, use_geom);
- setEnabled(paper_->choice_right_margin_units, use_geom);
+ setEnabled(paper_->choice_inner_margin_units, use_geom);
+ setEnabled(paper_->choice_outer_margin_units, use_geom);
setEnabled(paper_->choice_head_height_units, use_geom);
setEnabled(paper_->choice_head_sep_units, use_geom);
setEnabled(paper_->choice_foot_skip_units, use_geom);
if (strip(fl_get_input(paper_->input_bottom_margin)).empty())
fl_set_choice(paper_->choice_bottom_margin_units,
default_unit);
- if (strip(fl_get_input(paper_->input_left_margin)).empty())
- fl_set_choice(paper_->choice_left_margin_units,
+ if (strip(fl_get_input(paper_->input_inner_margin)).empty())
+ fl_set_choice(paper_->choice_inner_margin_units,
default_unit);
- if (strip(fl_get_input(paper_->input_right_margin)).empty())
- fl_set_choice(paper_->choice_right_margin_units,
+ if (strip(fl_get_input(paper_->input_outer_margin)).empty())
+ fl_set_choice(paper_->choice_outer_margin_units,
default_unit);
if (strip(fl_get_input(paper_->input_head_height)).empty())
fl_set_choice(paper_->choice_head_height_units,
setEnabled(paper_->input_top_margin, false);
setEnabled(paper_->input_bottom_margin, false);
- setEnabled(paper_->input_left_margin, false);
- setEnabled(paper_->input_right_margin, false);
+ setEnabled(paper_->input_inner_margin, false);
+ setEnabled(paper_->input_outer_margin, false);
setEnabled(paper_->input_head_height, false);
setEnabled(paper_->input_head_sep, false);
setEnabled(paper_->input_foot_skip, false);
setEnabled(paper_->choice_top_margin_units, false);
setEnabled(paper_->choice_bottom_margin_units, false);
- setEnabled(paper_->choice_left_margin_units, false);
- setEnabled(paper_->choice_right_margin_units, false);
+ setEnabled(paper_->choice_inner_margin_units, false);
+ setEnabled(paper_->choice_outer_margin_units, false);
setEnabled(paper_->choice_head_height_units, false);
setEnabled(paper_->choice_head_sep_units, false);
setEnabled(paper_->choice_foot_skip_units, false);
bool const use_geom = fl_get_button(paper_->check_use_geometry);
setEnabled(paper_->input_top_margin, use_geom);
setEnabled(paper_->input_bottom_margin, use_geom);
- setEnabled(paper_->input_left_margin, use_geom);
- setEnabled(paper_->input_right_margin, use_geom);
+ setEnabled(paper_->input_inner_margin, use_geom);
+ setEnabled(paper_->input_outer_margin, use_geom);
setEnabled(paper_->input_head_height, use_geom);
setEnabled(paper_->input_head_sep, use_geom);
setEnabled(paper_->input_foot_skip, use_geom);
setEnabled(paper_->choice_top_margin_units, use_geom);
setEnabled(paper_->choice_bottom_margin_units, use_geom);
- setEnabled(paper_->choice_left_margin_units, use_geom);
- setEnabled(paper_->choice_right_margin_units, use_geom);
+ setEnabled(paper_->choice_inner_margin_units, use_geom);
+ setEnabled(paper_->choice_outer_margin_units, use_geom);
setEnabled(paper_->choice_head_height_units, use_geom);
setEnabled(paper_->choice_head_sep_units, use_geom);
setEnabled(paper_->choice_foot_skip_units, use_geom);
paper_->choice_custom_height_units);
params.leftmargin =
- getLengthFromWidgets(paper_->input_left_margin,
- paper_->choice_left_margin_units);
+ getLengthFromWidgets(paper_->input_inner_margin,
+ paper_->choice_inner_margin_units);
params.topmargin =
getLengthFromWidgets(paper_->input_top_margin,
paper_->choice_top_margin_units);
params.rightmargin =
- getLengthFromWidgets(paper_->input_right_margin,
- paper_->choice_right_margin_units);
+ getLengthFromWidgets(paper_->input_outer_margin,
+ paper_->choice_outer_margin_units);
params.bottommargin =
getLengthFromWidgets(paper_->input_bottom_margin,
fl_set_button(class_->radio_doc_columns_two, 1);
else
fl_set_button(class_->radio_doc_columns_one, 1);
+
fl_set_input(class_->input_doc_spacing, "");
-
- setEnabled(class_->input_doc_spacing, input_length);
+ setEnabled(class_->input_doc_spacing, false);
switch (params.spacing.getSpace()) {
case Spacing::Default: // nothing bad should happen with this
char sval[20];
sprintf(sval,"%g",params.spacing.getValue());
fl_set_input(class_->input_doc_spacing, sval);
+ setEnabled(class_->input_doc_spacing, true);
break;
}
}
setEnabled(paper_->input_custom_height, useCustom);
setEnabled(paper_->choice_custom_height_units, useCustom);
- updateWidgetsFromLengthString(paper_->input_left_margin,
- paper_->choice_left_margin_units,
+ updateWidgetsFromLengthString(paper_->input_inner_margin,
+ paper_->choice_inner_margin_units,
params.leftmargin, default_unit);
- setEnabled(paper_->input_left_margin, useGeom);
- setEnabled(paper_->choice_left_margin_units, useGeom);
+ setEnabled(paper_->input_inner_margin, useGeom);
+ setEnabled(paper_->choice_inner_margin_units, useGeom);
updateWidgetsFromLengthString(paper_->input_top_margin,
paper_->choice_top_margin_units,
setEnabled(paper_->input_top_margin, useGeom);
setEnabled(paper_->choice_top_margin_units, useGeom);
- updateWidgetsFromLengthString(paper_->input_right_margin,
- paper_->choice_right_margin_units,
+ updateWidgetsFromLengthString(paper_->input_outer_margin,
+ paper_->choice_outer_margin_units,
params.rightmargin, default_unit);
- setEnabled(paper_->input_right_margin, useGeom);
- setEnabled(paper_->choice_right_margin_units, useGeom);
+ setEnabled(paper_->input_outer_margin, useGeom);
+ setEnabled(paper_->choice_outer_margin_units, useGeom);
updateWidgetsFromLengthString(paper_->input_bottom_margin,
paper_->choice_bottom_margin_units,
}
-bool FormDocument::CheckDocumentInput(FL_OBJECT *, long)
+bool FormDocument::CheckDocumentInput(FL_OBJECT * ob, long)
{
string str;
bool ok = true;
char const * input;
+ // this has to be all out of if/elseif because it has to deactivate
+ // the document buttons and so the whole stuff has to be tested again.
+ // disable OK/Apply if input is not valid
+ str = fl_get_input(class_->input_doc_skip);
+ ok = ok && (str.empty() || isValidLength(str) || isStrDbl(str));
+ str = fl_get_input(paper_->input_custom_width);
+ ok = ok && (str.empty() || isValidLength(str) || isStrDbl(str));
+ str = fl_get_input(paper_->input_custom_height);
+ ok = ok && (str.empty() || isValidLength(str) || isStrDbl(str));
+ str = fl_get_input(paper_->input_outer_margin);
+ ok = ok && (str.empty() || isValidLength(str) || isStrDbl(str));
+ str = fl_get_input(paper_->input_inner_margin);
+ ok = ok && (str.empty() || isValidLength(str) || isStrDbl(str));
+ str = fl_get_input(paper_->input_top_margin);
+ ok = ok && (str.empty() || isValidLength(str) || isStrDbl(str));
+ str = fl_get_input(paper_->input_bottom_margin);
+ ok = ok && (str.empty() || isValidLength(str) || isStrDbl(str));
+ str = fl_get_input(paper_->input_head_height);
+ ok = ok && (str.empty() || isValidLength(str) || isStrDbl(str));
+ str = fl_get_input(paper_->input_head_sep);
+ ok = ok && (str.empty() || isValidLength(str) || isStrDbl(str));
+ str = fl_get_input(paper_->input_foot_skip);
+ ok = ok && (str.empty() || isValidLength(str) || isStrDbl(str));
+
+ //display warning if input is not valid
+ if (ob == class_->input_doc_skip
+ || ob == paper_->input_custom_width
+ || ob == paper_->input_custom_height
+ || ob == paper_->input_outer_margin
+ || ob == paper_->input_inner_margin
+ || ob == paper_->input_top_margin
+ || ob == paper_->input_bottom_margin
+ || ob == paper_->input_head_height
+ || ob == paper_->input_head_sep
+ || ob == paper_->input_foot_skip) {
+ if (!ok) {
+ fl_set_object_label(dialog_->text_warning,
+ _("Warning: Invalid Length (valid example: 10mm)"));
+ fl_show_object(dialog_->text_warning);
+ return false;
+ } else {
+ fl_hide_object(dialog_->text_warning);
+ return true;
+ }
+ }
+
// "Synchronize" the choice and the input field, so that it
// is impossible to commit senseless data.
input = fl_get_input (class_->input_doc_skip);