(Rob Laheye): changes to the document dialog + some trivia.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@5479 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Angus Leeming 2002-10-23 13:15:32 +00:00
parent b86cc3a9af
commit 0e6da83ef8
7 changed files with 596 additions and 642 deletions

View File

@ -1,3 +1,24 @@
2002-10-23 Angus Leeming <leeming@lyx.org>
* checkedwidgets.C (setWidget): Don't set icol2 to alert_col when
the input is invalid.
2002-10-23 Rob Lahaye <lahaye@snu.ac.kr>
* FormBibtex.C: remove two redundant header files.
* FeedbackController (postMessage): s/FL_BLACK/FL_LCOL/
* FormDocument.C: disable resizing of the dialog.
Remove redundant counter's bounds/step/precision (is set in
form_document.fd).
* FormDocument.[Ch] (CheckDocumentInput): removed. Use the
button controller and the checkedGlueLength class to check the validity
of any LyXGlueLengths.
* forms/form_document.fd: prettify.
2002-10-23 Rob Lahaye <lahaye@snu.ac.kr> 2002-10-23 Rob Lahaye <lahaye@snu.ac.kr>
* forms/form_bibtex.fd: * forms/form_bibtex.fd:

View File

@ -140,10 +140,11 @@ void FeedbackController::postMessage(string const & message)
else else
str = message; str = message;
str = formatted(str, message_widget_->w - 10, FL_NORMAL_SIZE); int const width = message_widget_->w - 10;
str = formatted(str, width, FL_NORMAL_SIZE);
fl_set_object_label(message_widget_, str.c_str()); fl_set_object_label(message_widget_, str.c_str());
FL_COLOR const label_color = warning_posted_ ? FL_RED : FL_BLACK; FL_COLOR const label_color = warning_posted_ ? FL_RED : FL_LCOL;
fl_set_object_lcol(message_widget_, label_color); fl_set_object_lcol(message_widget_, label_color);
if (!message_widget_->visible) if (!message_widget_->visible)

View File

@ -26,8 +26,6 @@
#include "helper_funcs.h" #include "helper_funcs.h"
#include "gettext.h" #include "gettext.h"
#include "debug.h"
#include "support/LAssert.h"
#include "support/lstrings.h" #include "support/lstrings.h"
#include "support/filetools.h" #include "support/filetools.h"
#include "support/lyxalgo.h" #include "support/lyxalgo.h"

View File

@ -4,6 +4,7 @@
* Licence details can be found in the file COPYING. * Licence details can be found in the file COPYING.
* *
* \author Jürgen Vigna * \author Jürgen Vigna
* \author Rob Lahaye
* *
* Full author contact details are available in file CREDITS * Full author contact details are available in file CREDITS
*/ */
@ -36,6 +37,7 @@
#include "CutAndPaste.h" #include "CutAndPaste.h"
#include "bufferview_funcs.h" #include "bufferview_funcs.h"
#include "xforms_helpers.h" #include "xforms_helpers.h"
#include "checkedwidgets.h"
#include "debug.h" #include "debug.h"
#include "input_validators.h" // fl_unsigned_float_filter #include "input_validators.h" // fl_unsigned_float_filter
#include "helper_funcs.h" #include "helper_funcs.h"
@ -57,11 +59,10 @@ using std::vector;
FormDocument::FormDocument(LyXView & lv, Dialogs & d) FormDocument::FormDocument(LyXView & lv, Dialogs & d)
: FormBaseBD(lv, d, _("Document Layout")), : FormBaseBD(lv, d, _("Document Layout"), false),
ActCell(0), Confirmed(0), ActCell(0), Confirmed(0),
current_bullet_panel(0), current_bullet_depth(0), fbullet(0) current_bullet_panel(0), current_bullet_depth(0), fbullet(0)
{ {}
}
void FormDocument::redraw() void FormDocument::redraw()
@ -86,8 +87,6 @@ FL_FORM * FormDocument::form() const
void FormDocument::build() void FormDocument::build()
{ {
int n;
// the tabbed folder // the tabbed folder
dialog_.reset(build_document(this)); dialog_.reset(build_document(this));
@ -99,81 +98,42 @@ void FormDocument::build()
bc().setApply(dialog_->button_apply); bc().setApply(dialog_->button_apply);
bc().setCancel(dialog_->button_close); bc().setCancel(dialog_->button_close);
bc().setRestore(dialog_->button_restore); bc().setRestore(dialog_->button_restore);
bc().addReadOnly (dialog_->button_save_defaults);
bc().addReadOnly (dialog_->button_reset_defaults);
// the document paper form
paper_.reset(build_document_paper(this));
fl_addto_choice(paper_->choice_papersize,
_(" Default | Custom | US letter | US legal "
"| US executive | A3 | A4 | A5 | B3 | B4 | B5 "));
fl_addto_choice(paper_->choice_paperpackage,
_(" None "
"| Small Margins "
"| Very small Margins "
"| Very wide Margins "));
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_bottom_margin, 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);
setPrehandler(paper_->input_custom_width);
setPrehandler(paper_->input_custom_height);
setPrehandler(paper_->input_top_margin);
setPrehandler(paper_->input_bottom_margin);
setPrehandler(paper_->input_inner_margin);
setPrehandler(paper_->input_outer_margin);
setPrehandler(paper_->input_head_height);
setPrehandler(paper_->input_head_sep);
setPrehandler(paper_->input_foot_skip);
// Create the contents of the unit choices
// Don't include the "%" terms...
vector<string> units_vec = getLatexUnits();
vector<string>::iterator ret =
std::remove_if(units_vec.begin(),
units_vec.end(),
bind2nd(contains_functor(), "%"));
units_vec.erase(ret, units_vec.end());
string units = getStringFromVector(units_vec, "|");
fl_addto_choice(paper_->choice_custom_width_units, units.c_str());
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_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_->choice_paperpackage);
bc().addReadOnly (paper_->radio_portrait);
bc().addReadOnly (paper_->radio_landscape);
bc().addReadOnly (paper_->choice_papersize);
bc().addReadOnly (paper_->check_use_geometry);
bc().addReadOnly (paper_->input_custom_width);
bc().addReadOnly (paper_->input_custom_height);
bc().addReadOnly (paper_->input_top_margin);
bc().addReadOnly (paper_->input_bottom_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);
// the document class form // the document class form
class_.reset(build_document_class(this)); class_.reset(build_document_class(this));
// disable for read-only documents
bc().addReadOnly(class_->radio_doc_indent);
bc().addReadOnly(class_->radio_doc_skip);
bc().addReadOnly(class_->choice_doc_pagestyle);
bc().addReadOnly(class_->choice_doc_fonts);
bc().addReadOnly(class_->choice_doc_fontsize);
bc().addReadOnly(class_->radio_doc_sides_one);
bc().addReadOnly(class_->radio_doc_sides_two);
bc().addReadOnly(class_->radio_doc_columns_one);
bc().addReadOnly(class_->radio_doc_columns_two);
bc().addReadOnly(class_->input_doc_extra);
bc().addReadOnly(class_->input_doc_skip);
bc().addReadOnly(class_->choice_doc_skip);
bc().addReadOnly(class_->choice_doc_spacing);
bc().addReadOnly(class_->input_doc_spacing);
// check validity of "length + unit" input
addCheckedGlueLength(bc(), class_->input_doc_skip,
class_->choice_doc_skip);
// trigger an input event for cut&paste with middle mouse button.
setPrehandler(class_->input_doc_extra);
setPrehandler(class_->input_doc_skip);
setPrehandler(class_->input_doc_spacing);
fl_set_input_return(class_->input_doc_extra, FL_RETURN_CHANGED);
fl_set_input_return(class_->input_doc_skip, FL_RETURN_CHANGED);
fl_set_input_return(class_->input_doc_spacing, FL_RETURN_CHANGED);
FL_OBJECT * obj; FL_OBJECT * obj;
// The language is a combo-box and has to be inserted manually
// the class list is a combo-box and has to be inserted manually
obj = class_->choice_doc_class; obj = class_->choice_doc_class;
fl_deactivate_object(obj); fl_deactivate_object(obj);
fl_addto_form(class_->form); fl_addto_form(class_->form);
@ -190,44 +150,115 @@ void FormDocument::build()
fl_addto_choice(class_->choice_doc_spacing, fl_addto_choice(class_->choice_doc_spacing,
_(" Single | OneHalf | Double | Custom ")); _(" Single | OneHalf | Double | Custom "));
fl_addto_choice(class_->choice_doc_fontsize, "default|10|11|12"); fl_addto_choice(class_->choice_doc_fontsize, "default|10|11|12");
for (n=0; tex_fonts[n][0]; ++n) { for (int n = 0; tex_fonts[n][0]; ++n) {
fl_addto_choice(class_->choice_doc_fonts,tex_fonts[n]); fl_addto_choice(class_->choice_doc_fonts,tex_fonts[n]);
} }
// Create the contents of the unit choices; don't include the
// "%" terms...
vector<string> units_vec = getLatexUnits();
vector<string>::iterator ret =
std::remove_if(units_vec.begin(),
units_vec.end(),
bind2nd(contains_functor(), "%"));
units_vec.erase(ret, units_vec.end());
string const units = getStringFromVector(units_vec, "|");
fl_addto_choice(class_->choice_doc_pagestyle, fl_addto_choice(class_->choice_doc_pagestyle,
"default|empty|plain|headings|fancy"); "default|empty|plain|headings|fancy");
fl_addto_choice(class_->choice_doc_skip, fl_addto_choice(class_->choice_doc_skip,
_(" Smallskip | Medskip | Bigskip | Length ")); _(" Smallskip | Medskip | Bigskip | Length "));
fl_addto_choice(class_->choice_default_skip_units, units.c_str()); fl_addto_choice(class_->choice_doc_skip_units, units.c_str());
fl_set_input_return(class_->input_doc_extra, FL_RETURN_CHANGED);
fl_set_input_return(class_->input_doc_skip, FL_RETURN_CHANGED);
fl_set_input_return(class_->input_doc_spacing, FL_RETURN_CHANGED);
setPrehandler(class_->input_doc_extra);
setPrehandler(class_->input_doc_skip);
setPrehandler(class_->input_doc_spacing);
// Set input filters on doc spacing to make it accept only // Set input filters on doc spacing to make it accept only
// unsigned numbers. // unsigned numbers.
fl_set_input_filter(class_->input_doc_spacing, fl_unsigned_float_filter); fl_set_input_filter(class_->input_doc_spacing,
fl_unsigned_float_filter);
bc().addReadOnly (class_->radio_doc_indent); // disable for read-only documents
bc().addReadOnly (class_->radio_doc_skip); bc().addReadOnly(dialog_->button_save_defaults);
bc().addReadOnly(dialog_->button_reset_defaults);
bc().addReadOnly (class_->choice_doc_pagestyle); // the document paper form
bc().addReadOnly (class_->choice_doc_fonts); paper_.reset(build_document_paper(this));
bc().addReadOnly (class_->choice_doc_fontsize);
bc().addReadOnly (class_->radio_doc_sides_one); // disable for read-only documents
bc().addReadOnly (class_->radio_doc_sides_two); bc().addReadOnly(paper_->choice_paperpackage);
bc().addReadOnly (class_->radio_doc_columns_one); bc().addReadOnly(paper_->radio_portrait);
bc().addReadOnly (class_->radio_doc_columns_two); bc().addReadOnly(paper_->radio_landscape);
bc().addReadOnly (class_->input_doc_extra); bc().addReadOnly(paper_->choice_papersize);
bc().addReadOnly (class_->input_doc_skip); bc().addReadOnly(paper_->check_use_geometry);
bc().addReadOnly (class_->choice_doc_skip); bc().addReadOnly(paper_->input_custom_width);
bc().addReadOnly (class_->choice_doc_spacing); bc().addReadOnly(paper_->input_custom_height);
bc().addReadOnly (class_->input_doc_spacing); bc().addReadOnly(paper_->input_top_margin);
bc().addReadOnly(paper_->input_bottom_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);
// check validity of "length + unit" input
addCheckedGlueLength(bc(), paper_->input_custom_width);
addCheckedGlueLength(bc(), paper_->input_custom_height);
addCheckedGlueLength(bc(), paper_->input_top_margin);
addCheckedGlueLength(bc(), paper_->input_bottom_margin);
addCheckedGlueLength(bc(), paper_->input_inner_margin);
addCheckedGlueLength(bc(), paper_->input_outer_margin);
addCheckedGlueLength(bc(), paper_->input_head_height);
addCheckedGlueLength(bc(), paper_->input_head_sep);
addCheckedGlueLength(bc(), paper_->input_foot_skip);
// trigger an input event for cut&paste with middle mouse button.
setPrehandler(paper_->input_custom_width);
setPrehandler(paper_->input_custom_height);
setPrehandler(paper_->input_top_margin);
setPrehandler(paper_->input_bottom_margin);
setPrehandler(paper_->input_inner_margin);
setPrehandler(paper_->input_outer_margin);
setPrehandler(paper_->input_head_height);
setPrehandler(paper_->input_head_sep);
setPrehandler(paper_->input_foot_skip);
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_bottom_margin, 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);
fl_addto_choice(paper_->choice_papersize,
_(" Default | Custom | US letter | US legal "
"| US executive | A3 | A4 | A5 | B3 | B4 | B5 "));
fl_addto_choice(paper_->choice_paperpackage,
_(" None "
"| Small Margins "
"| Very small Margins "
"| Very wide Margins "));
fl_addto_choice(paper_->choice_custom_width_units, units.c_str());
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_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());
// the document language form // the document language form
language_.reset(build_document_language(this)); language_.reset(build_document_language(this));
// disable for read-only documents
bc().addReadOnly(language_->choice_inputenc);
bc().addReadOnly(language_->choice_quotes_language);
bc().addReadOnly(language_->radio_single);
bc().addReadOnly(language_->radio_double);
fl_addto_choice(language_->choice_inputenc, fl_addto_choice(language_->choice_inputenc,
"default|auto|latin1|latin2|latin3|latin4|latin5|latin9" "default|auto|latin1|latin2|latin3|latin4|latin5|latin9"
"|koi8-r|koi8-u|cp866|cp1251|iso88595|pt154"); "|koi8-r|koi8-u|cp866|cp1251|iso88595|pt154");
@ -257,51 +288,34 @@ void FormDocument::build()
_(" ``text'' | ''text'' | ,,text`` | ,,text'' |" _(" ``text'' | ''text'' | ,,text`` | ,,text'' |"
" «text» | »text« ")); " «text» | »text« "));
bc().addReadOnly (language_->choice_inputenc);
bc().addReadOnly (language_->choice_quotes_language);
bc().addReadOnly (language_->radio_single);
bc().addReadOnly (language_->radio_double);
// the document options form // the document options form
options_.reset(build_document_options(this)); options_.reset(build_document_options(this));
fl_set_input_return(options_->input_float_placement, FL_RETURN_CHANGED);
// disable for read-only documents
bc_.addReadOnly(options_->counter_secnumdepth);
bc_.addReadOnly(options_->counter_tocdepth);
bc_.addReadOnly(options_->check_use_amsmath);
bc_.addReadOnly(options_->check_use_natbib);
bc_.addReadOnly(options_->choice_citation_format);
bc_.addReadOnly(options_->input_float_placement);
bc_.addReadOnly(options_->choice_postscript_driver);
// trigger an input event for cut&paste with middle mouse button.
setPrehandler(options_->input_float_placement); setPrehandler(options_->input_float_placement);
fl_set_counter_bounds(options_->counter_secnumdepth,-2,5); fl_set_input_return(options_->input_float_placement, FL_RETURN_CHANGED);
fl_set_counter_bounds(options_->counter_tocdepth,-1,5);
fl_set_counter_step(options_->counter_secnumdepth,1,1); for (int n = 0; tex_graphics[n][0]; ++n) {
fl_set_counter_step(options_->counter_tocdepth,1,1);
fl_set_counter_precision(options_->counter_secnumdepth, 0);
fl_set_counter_precision(options_->counter_tocdepth, 0);
for (n=0; tex_graphics[n][0]; ++n) {
fl_addto_choice(options_->choice_postscript_driver, fl_addto_choice(options_->choice_postscript_driver,
tex_graphics[n]); tex_graphics[n]);
} }
fl_addto_choice(options_->choice_citation_format, fl_addto_choice(options_->choice_citation_format,
_(" Author-year | Numerical ")); _(" Author-year | Numerical "));
bc_.addReadOnly (options_->counter_secnumdepth);
bc_.addReadOnly (options_->counter_tocdepth);
bc_.addReadOnly (options_->check_use_amsmath);
bc_.addReadOnly (options_->check_use_natbib);
bc_.addReadOnly (options_->choice_citation_format);
bc_.addReadOnly (options_->input_float_placement);
bc_.addReadOnly (options_->choice_postscript_driver);
// the document bullets form // the document bullets form
bullets_.reset(build_document_bullet(this)); bullets_.reset(build_document_bullet(this));
fl_addto_choice(bullets_->choice_bullet_size,
_(" default | tiny | script | footnote | small |"
" normal | large | Large | LARGE | huge | Huge"));
fl_set_choice(bullets_->choice_bullet_size, 1);
fl_set_input_return(bullets_->input_bullet_latex, FL_RETURN_CHANGED);
setPrehandler(bullets_->input_bullet_latex);
fl_set_input_maxchars(bullets_->input_bullet_latex, 80);
string const bmtablefile = LibFileSearch("images", "standard", "xpm");
fl_set_bmtable_pixmap_file(bullets_->bmtable_bullet_panel, 6, 6,
bmtablefile.c_str());
// disable for read-only documents
bc_.addReadOnly(bullets_->radio_bullet_depth_1); bc_.addReadOnly(bullets_->radio_bullet_depth_1);
bc_.addReadOnly(bullets_->radio_bullet_depth_2); bc_.addReadOnly(bullets_->radio_bullet_depth_2);
bc_.addReadOnly(bullets_->radio_bullet_depth_3); bc_.addReadOnly(bullets_->radio_bullet_depth_3);
@ -312,10 +326,25 @@ void FormDocument::build()
bc_.addReadOnly(bullets_->radio_bullet_panel_ding2); bc_.addReadOnly(bullets_->radio_bullet_panel_ding2);
bc_.addReadOnly(bullets_->radio_bullet_panel_ding3); bc_.addReadOnly(bullets_->radio_bullet_panel_ding3);
bc_.addReadOnly(bullets_->radio_bullet_panel_ding4); bc_.addReadOnly(bullets_->radio_bullet_panel_ding4);
bc().addReadOnly(bullets_->bmtable_bullet_panel);
bc().addReadOnly(bullets_->choice_bullet_size);
bc().addReadOnly(bullets_->input_bullet_latex);
bc().addReadOnly (bullets_->bmtable_bullet_panel); // trigger an input event for cut&paste with middle mouse button.
bc().addReadOnly (bullets_->choice_bullet_size); setPrehandler(bullets_->input_bullet_latex);
bc().addReadOnly (bullets_->input_bullet_latex);
fl_set_input_return(bullets_->input_bullet_latex, FL_RETURN_CHANGED);
fl_addto_choice(bullets_->choice_bullet_size,
_(" default | tiny | script | footnote | small |"
" normal | large | Large | LARGE | huge | Huge"));
fl_set_choice(bullets_->choice_bullet_size, 1);
fl_set_input_maxchars(bullets_->input_bullet_latex, 80);
string const bmtablefile = LibFileSearch("images", "standard", "xpm");
fl_set_bmtable_pixmap_file(bullets_->bmtable_bullet_panel, 6, 6,
bmtablefile.c_str());
fl_addto_tabfolder(dialog_->tabfolder,_("Document"), fl_addto_tabfolder(dialog_->tabfolder,_("Document"),
class_->form); class_->form);
@ -424,15 +453,19 @@ bool FormDocument::input(FL_OBJECT * ob, long)
{ {
if (ob == class_->choice_doc_class) { if (ob == class_->choice_doc_class) {
CheckChoiceClass(ob, 0); CheckChoiceClass(ob, 0);
} else if (ob == bullets_->choice_bullet_size) { } else if (ob == bullets_->choice_bullet_size) {
ChoiceBulletSize(ob, 0); ChoiceBulletSize(ob, 0);
} else if (ob == bullets_->input_bullet_latex) { } else if (ob == bullets_->input_bullet_latex) {
InputBulletLaTeX(ob, 0); InputBulletLaTeX(ob, 0);
} else if (ob == bullets_->radio_bullet_depth_1 || } else if (ob == bullets_->radio_bullet_depth_1 ||
ob == bullets_->radio_bullet_depth_2 || ob == bullets_->radio_bullet_depth_2 ||
ob == bullets_->radio_bullet_depth_3 || ob == bullets_->radio_bullet_depth_3 ||
ob == bullets_->radio_bullet_depth_4) { ob == bullets_->radio_bullet_depth_4) {
BulletDepth(ob); BulletDepth(ob);
} else if (ob == bullets_->radio_bullet_panel_standard || } else if (ob == bullets_->radio_bullet_panel_standard ||
ob == bullets_->radio_bullet_panel_maths || ob == bullets_->radio_bullet_panel_maths ||
ob == bullets_->radio_bullet_panel_ding1 || ob == bullets_->radio_bullet_panel_ding1 ||
@ -440,45 +473,42 @@ bool FormDocument::input(FL_OBJECT * ob, long)
ob == bullets_->radio_bullet_panel_ding3 || ob == bullets_->radio_bullet_panel_ding3 ||
ob == bullets_->radio_bullet_panel_ding4) { ob == bullets_->radio_bullet_panel_ding4) {
BulletPanel(ob); BulletPanel(ob);
} else if (ob == bullets_->bmtable_bullet_panel) { } else if (ob == bullets_->bmtable_bullet_panel) {
BulletBMTable(ob, 0); BulletBMTable(ob, 0);
}
bool const length_input = fl_get_choice(class_->choice_doc_skip) == 4; } else if (ob == class_->choice_doc_spacing) {
if (ob == class_->choice_doc_skip) {
setEnabled(class_->input_doc_skip, length_input);
setEnabled(class_->choice_default_skip_units, length_input);
}
if (ob == class_->choice_doc_spacing)
setEnabled(class_->input_doc_spacing, setEnabled(class_->input_doc_spacing,
fl_get_choice(class_->choice_doc_spacing) == 4); fl_get_choice(class_->choice_doc_spacing) == 4);
} else if (ob == class_->radio_doc_skip ||
ob == class_->radio_doc_indent ||
ob == class_->choice_doc_skip) {
bool const skip_used = fl_get_button(class_->radio_doc_skip); bool const skip_used = fl_get_button(class_->radio_doc_skip);
if (ob == class_->radio_doc_skip ||
ob == class_->radio_doc_indent) {
setEnabled(class_->choice_doc_skip, skip_used); setEnabled(class_->choice_doc_skip, skip_used);
bool const length_input =
fl_get_choice(class_->choice_doc_skip) == 4;
setEnabled(class_->input_doc_skip, setEnabled(class_->input_doc_skip,
skip_used && length_input); skip_used && length_input);
setEnabled(class_->choice_default_skip_units, setEnabled(class_->choice_doc_skip_units,
skip_used && length_input); skip_used && length_input);
// Default unit choice is cm if metric, inches if US paper. // Default unit choice is cm if metric, inches if US paper.
// If papersize is default, check the lyxrc-settings // If papersize is default, check the lyxrc-settings
int const paperchoice = fl_get_choice(paper_->choice_papersize); int const paperchoice = fl_get_choice(paper_->choice_papersize);
bool const metric = (paperchoice == 1 && lyxrc.default_papersize > 3) bool const metric = (paperchoice == 1 && lyxrc.default_papersize > BufferParams::PAPER_EXECUTIVEPAPER)
|| paperchoice == 2 || paperchoice > 5; || paperchoice == 2 || paperchoice > 5;
int const default_unit = metric ? 8 : 9; string const default_unit = metric ? "cm" : "in";
if (rtrim(fl_get_input(class_->input_doc_skip)).empty()) if (getString(class_->input_doc_skip).empty())
fl_set_choice(class_->choice_default_skip_units, fl_set_choice_text(class_->choice_doc_skip_units,
default_unit); default_unit.c_str());
}
if (ob == options_->check_use_natbib) { } else if (ob == options_->check_use_natbib) {
setEnabled(options_->choice_citation_format, setEnabled(options_->choice_citation_format,
fl_get_button(options_->check_use_natbib)); fl_get_button(options_->check_use_natbib));
}
if (ob == dialog_->button_save_defaults) { } else if (ob == dialog_->button_save_defaults) {
BufferParams params; BufferParams params;
class_apply(params); class_apply(params);
paper_apply(params); paper_apply(params);
@ -487,20 +517,18 @@ bool FormDocument::input(FL_OBJECT * ob, long)
bullets_apply(params); bullets_apply(params);
params.preamble = lv_.buffer()->params.preamble; params.preamble = lv_.buffer()->params.preamble;
saveParamsAsDefault(params); saveParamsAsDefault(params);
}
if (ob == dialog_->button_reset_defaults) { } else if (ob == dialog_->button_reset_defaults) {
BufferParams params = lv_.buffer()->params; BufferParams params = lv_.buffer()->params;
params.textclass = combo_doc_class->get() - 1; params.textclass = combo_doc_class->get() - 1;
params.useClassDefaults(); params.useClassDefaults();
UpdateLayoutDocument(params); UpdateLayoutDocument(params);
}
if (ob == paper_->radio_landscape) } else if (ob == paper_->radio_landscape) {
fl_set_choice(paper_->choice_paperpackage, fl_set_choice(paper_->choice_paperpackage,
BufferParams::PACKAGE_NONE + 1); BufferParams::PACKAGE_NONE + 1);
if (ob == paper_->choice_papersize) { } else if (ob == paper_->choice_papersize) {
int const paperchoice = fl_get_choice(paper_->choice_papersize); int const paperchoice = fl_get_choice(paper_->choice_papersize);
bool const defsize = paperchoice == 1; bool const defsize = paperchoice == 1;
bool const custom = paperchoice == 2; bool const custom = paperchoice == 2;
@ -541,55 +569,41 @@ bool FormDocument::input(FL_OBJECT * ob, long)
// Default unit choice is cm if metric, inches if US paper. // Default unit choice is cm if metric, inches if US paper.
// If papersize is default, use the lyxrc-settings // If papersize is default, use the lyxrc-settings
bool const metric = (defsize && lyxrc.default_papersize > 3) bool const metric = (defsize && lyxrc.default_papersize > BufferParams::PAPER_EXECUTIVEPAPER)
|| paperchoice == 2 || paperchoice > 5; || paperchoice == 2 || paperchoice > 5;
int const default_unit = metric ? 8 : 9; string const default_unit = metric ? "cm" : "in";
if (rtrim(fl_get_input(paper_->input_custom_width)).empty()) if (getString(paper_->input_custom_width).empty())
fl_set_choice(paper_->choice_custom_width_units, fl_set_choice_text(paper_->choice_custom_width_units,
default_unit); default_unit.c_str());
if (rtrim(fl_get_input(paper_->input_custom_height)).empty()) if (getString(paper_->input_custom_height).empty())
fl_set_choice(paper_->choice_custom_height_units, fl_set_choice_text(paper_->choice_custom_height_units,
default_unit); default_unit.c_str());
if (rtrim(fl_get_input(paper_->input_top_margin)).empty()) if (getString(paper_->input_top_margin).empty())
fl_set_choice(paper_->choice_top_margin_units, fl_set_choice_text(paper_->choice_top_margin_units,
default_unit); default_unit.c_str());
if (rtrim(fl_get_input(paper_->input_bottom_margin)).empty()) if (getString(paper_->input_bottom_margin).empty())
fl_set_choice(paper_->choice_bottom_margin_units, fl_set_choice_text(paper_->choice_bottom_margin_units,
default_unit); default_unit.c_str());
if (rtrim(fl_get_input(paper_->input_inner_margin)).empty()) if (getString(paper_->input_inner_margin).empty())
fl_set_choice(paper_->choice_inner_margin_units, fl_set_choice_text(paper_->choice_inner_margin_units,
default_unit); default_unit.c_str());
if (rtrim(fl_get_input(paper_->input_outer_margin)).empty()) if (getString(paper_->input_outer_margin).empty())
fl_set_choice(paper_->choice_outer_margin_units, fl_set_choice_text(paper_->choice_outer_margin_units,
default_unit); default_unit.c_str());
if (rtrim(fl_get_input(paper_->input_head_height)).empty()) if (getString(paper_->input_head_height).empty())
fl_set_choice(paper_->choice_head_height_units, fl_set_choice_text(paper_->choice_head_height_units,
default_unit); default_unit.c_str());
if (rtrim(fl_get_input(paper_->input_head_sep)).empty()) if (getString(paper_->input_head_sep).empty())
fl_set_choice(paper_->choice_head_sep_units, fl_set_choice_text(paper_->choice_head_sep_units,
default_unit); default_unit.c_str());
if (rtrim(fl_get_input(paper_->input_foot_skip)).empty()) if (getString(paper_->input_foot_skip).empty())
fl_set_choice(paper_->choice_foot_skip_units, fl_set_choice_text(paper_->choice_foot_skip_units,
default_unit); default_unit.c_str());
}
if (ob == paper_->choice_papersize || } else if (ob == paper_->choice_paperpackage &&
ob == paper_->radio_portrait || fl_get_choice(paper_->choice_paperpackage) != 1) {
ob == paper_->radio_landscape) {
setEnabled(paper_->choice_paperpackage,
//either default papersize (preferences)
//or document papersize has to be A4
(fl_get_choice(paper_->choice_papersize) == 7
|| fl_get_choice(paper_->choice_papersize) == 1
&& lyxrc.default_papersize == 5)
&& fl_get_button(paper_->radio_portrait));
}
if (ob == paper_->choice_paperpackage) {
if (fl_get_choice(paper_->choice_paperpackage) != 1) {
fl_set_button(paper_->check_use_geometry, 0); fl_set_button(paper_->check_use_geometry, 0);
setEnabled(paper_->input_top_margin, false); setEnabled(paper_->input_top_margin, false);
setEnabled(paper_->input_bottom_margin, false); setEnabled(paper_->input_bottom_margin, false);
setEnabled(paper_->input_inner_margin, false); setEnabled(paper_->input_inner_margin, false);
@ -604,12 +618,10 @@ bool FormDocument::input(FL_OBJECT * ob, long)
setEnabled(paper_->choice_head_height_units, false); setEnabled(paper_->choice_head_height_units, false);
setEnabled(paper_->choice_head_sep_units, false); setEnabled(paper_->choice_head_sep_units, false);
setEnabled(paper_->choice_foot_skip_units, false); setEnabled(paper_->choice_foot_skip_units, false);
}
}
if (ob == paper_->check_use_geometry) { } else if (ob == paper_->check_use_geometry) {
//don't allow switching geometry off in custom papersize mode // don't allow switching geometry off in custom papersize
//nor in A3, B3, and B4 // mode nor in A3, B3, and B4
int const choice = fl_get_choice(paper_->choice_papersize); int const choice = fl_get_choice(paper_->choice_papersize);
if (choice == 2 || choice == 6 || choice == 9 || choice == 10) if (choice == 2 || choice == 6 || choice == 9 || choice == 10)
fl_set_button(paper_->check_use_geometry, 1); fl_set_button(paper_->check_use_geometry, 1);
@ -634,7 +646,17 @@ bool FormDocument::input(FL_OBJECT * ob, long)
setEnabled(paper_->choice_foot_skip_units, use_geom); setEnabled(paper_->choice_foot_skip_units, use_geom);
} }
return CheckDocumentInput(ob, 0); if (ob == paper_->choice_papersize || ob == paper_->radio_portrait
|| ob == paper_->radio_landscape) {
// either default papersize (preferences) or document
// papersize has to be A4
bool const enable = ( fl_get_choice(paper_->choice_papersize) == 1
&& lyxrc.default_papersize == BufferParams::PAPER_A4PAPER )
|| fl_get_choice(paper_->choice_papersize) == 7;
setEnabled(paper_->choice_paperpackage, enable && fl_get_button(paper_->radio_portrait));
}
return true;
} }
@ -643,7 +665,7 @@ void FormDocument::ComboInputCB(int, void * v, Combox * combox)
FormDocument * pre = static_cast<FormDocument*>(v); FormDocument * pre = static_cast<FormDocument*>(v);
if (combox == pre->combo_doc_class.get()) if (combox == pre->combo_doc_class.get())
pre->CheckChoiceClass(0, 0); pre->CheckChoiceClass(0, 0);
pre->bc().valid(pre->CheckDocumentInput(0,0)); pre->bc().valid();
} }
@ -653,13 +675,13 @@ bool FormDocument::class_apply(BufferParams &params)
// If default skip is a "Length" but there's no text in the // If default skip is a "Length" but there's no text in the
// input field, reset the kind to "Medskip", which is the default. // input field, reset the kind to "Medskip", which is the default.
if ((fl_get_choice (class_->choice_doc_skip) == 4) && if (fl_get_choice(class_->choice_doc_skip) == 4 &&
!*(fl_get_input (class_->input_doc_skip))) { getString(class_->input_doc_skip).empty()) {
fl_set_choice (class_->choice_doc_skip, 2); fl_set_choice(class_->choice_doc_skip, 2);
} }
params.fonts = fl_get_choice_text(class_->choice_doc_fonts); params.fonts = getString(class_->choice_doc_fonts);
params.fontsize = fl_get_choice_text(class_->choice_doc_fontsize); params.fontsize = getString(class_->choice_doc_fontsize);
params.pagestyle = fl_get_choice_text(class_->choice_doc_pagestyle); params.pagestyle = getString(class_->choice_doc_pagestyle);
params.textclass = combo_doc_class->get() - 1; params.textclass = combo_doc_class->get() - 1;
@ -672,7 +694,7 @@ bool FormDocument::class_apply(BufferParams &params)
redo = true; redo = true;
VSpace tmpdefskip = params.getDefSkip(); VSpace tmpdefskip = params.getDefSkip();
switch (fl_get_choice (class_->choice_doc_skip)) { switch (fl_get_choice(class_->choice_doc_skip)) {
case 1: case 1:
params.setDefSkip(VSpace(VSpace::SMALLSKIP)); params.setDefSkip(VSpace(VSpace::SMALLSKIP));
break; break;
@ -686,7 +708,7 @@ bool FormDocument::class_apply(BufferParams &params)
{ {
string const length = string const length =
getLengthFromWidgets(class_->input_doc_skip, getLengthFromWidgets(class_->input_doc_skip,
class_->choice_default_skip_units); class_->choice_doc_skip_units);
params.setDefSkip(VSpace(LyXGlueLength(length))); params.setDefSkip(VSpace(LyXGlueLength(length)));
break; break;
@ -725,13 +747,13 @@ bool FormDocument::class_apply(BufferParams &params)
case 4: case 4:
lyxerr[Debug::INFO] << "Spacing: OTHER\n"; lyxerr[Debug::INFO] << "Spacing: OTHER\n";
params.spacing.set(Spacing::Other, params.spacing.set(Spacing::Other,
fl_get_input(class_->input_doc_spacing)); getString(class_->input_doc_spacing));
break; break;
} }
if (tmpSpacing != params.spacing) if (tmpSpacing != params.spacing)
redo = true; redo = true;
params.options = fl_get_input(class_->input_doc_extra); params.options = getString(class_->input_doc_extra);
return redo; return redo;
} }
@ -888,7 +910,7 @@ bool FormDocument::language_apply(BufferParams & params)
} }
params.language = new_language; params.language = new_language;
params.inputenc = fl_get_choice_text(language_->choice_inputenc); params.inputenc = getString(language_->choice_inputenc);
return redo; return redo;
} }
@ -904,8 +926,7 @@ bool FormDocument::options_apply(BufferParams & params)
{ {
bool redo = false; bool redo = false;
params.graphicsDriver = params.graphicsDriver = getString(options_->choice_postscript_driver);
fl_get_choice_text(options_->choice_postscript_driver);
params.use_amsmath = fl_get_button(options_->check_use_amsmath); params.use_amsmath = fl_get_button(options_->check_use_amsmath);
params.use_natbib = fl_get_button(options_->check_use_natbib); params.use_natbib = fl_get_button(options_->check_use_natbib);
params.use_numerical_citations = params.use_numerical_citations =
@ -919,7 +940,7 @@ bool FormDocument::options_apply(BufferParams & params)
params.tocdepth = int(fl_get_counter_value(options_->counter_tocdepth)); params.tocdepth = int(fl_get_counter_value(options_->counter_tocdepth));
params.float_placement = params.float_placement =
fl_get_input(options_->input_float_placement); getString(options_->input_float_placement);
return redo; return redo;
} }
@ -979,92 +1000,84 @@ void FormDocument::class_update(BufferParams const & params)
UpdateClassParams(params); UpdateClassParams(params);
fl_set_choice_text(class_->choice_doc_fonts, fl_set_choice_text(class_->choice_doc_fonts, params.fonts.c_str());
params.fonts.c_str());
fl_set_button(class_->radio_doc_indent, 0);
fl_set_button(class_->radio_doc_skip, 0);
if (params.paragraph_separation == BufferParams::PARSEP_INDENT)
fl_set_button(class_->radio_doc_indent, 1);
else
fl_set_button(class_->radio_doc_skip, 1);
bool const input_length = fl_get_choice(class_->choice_doc_skip) == 4; bool const indent = params.paragraph_separation == BufferParams::PARSEP_INDENT;
setEnabled(class_->choice_default_skip_units, input_length); fl_set_button(class_->radio_doc_indent, indent);
setEnabled(class_->input_doc_skip, input_length); fl_set_button(class_->radio_doc_skip, !indent);
int pos;
if (indent) {
pos = 2; // VSpace::MEDSKIP is default
} else {
switch (params.getDefSkip().kind()) { switch (params.getDefSkip().kind()) {
case VSpace::SMALLSKIP: case VSpace::LENGTH:
fl_set_choice (class_->choice_doc_skip, 1); pos = 4;
break;
case VSpace::MEDSKIP:
fl_set_choice (class_->choice_doc_skip, 2);
break; break;
case VSpace::BIGSKIP: case VSpace::BIGSKIP:
fl_set_choice (class_->choice_doc_skip, 3); pos = 3;
break; break;
case VSpace::LENGTH: case VSpace::SMALLSKIP:
{ pos = 1;
break;
case VSpace::MEDSKIP:
default:
pos = 2;
break;
}
}
fl_set_choice (class_->choice_doc_skip, pos);
bool const length_input = pos == 4;
if (length_input) {
int const paperchoice = fl_get_choice(paper_->choice_papersize); int const paperchoice = fl_get_choice(paper_->choice_papersize);
bool const metric = (paperchoice == 1 && lyxrc.default_papersize > 3) bool const metric = (paperchoice == 1 && lyxrc.default_papersize > BufferParams::PAPER_EXECUTIVEPAPER)
|| paperchoice == 2 || paperchoice > 5; || paperchoice == 2 || paperchoice > 5;
string const default_unit = metric ? "cm" : "in"; string const default_unit = metric ? "cm" : "in";
string const length = params.getDefSkip().asLyXCommand(); string const length = params.getDefSkip().asLyXCommand();
updateWidgetsFromLengthString(class_->input_doc_skip, updateWidgetsFromLengthString(class_->input_doc_skip,
class_->choice_default_skip_units, class_->choice_doc_skip_units,
length, default_unit); length, default_unit);
break;
}
default:
fl_set_choice (class_->choice_doc_skip, 2);
break;
}
fl_set_button(class_->radio_doc_sides_one, 0);
fl_set_button(class_->radio_doc_sides_two, 0);
setEnabled(class_->choice_doc_skip,
fl_get_button(class_->radio_doc_skip));
if (params.sides == LyXTextClass::TwoSides) } else {
fl_set_button(class_->radio_doc_sides_two, 1); fl_set_input(class_->input_doc_skip, "");
else }
fl_set_button(class_->radio_doc_sides_one, 1); setEnabled(class_->choice_doc_skip, !indent);
fl_set_button(class_->radio_doc_columns_one, 0); setEnabled(class_->input_doc_skip, length_input);
fl_set_button(class_->radio_doc_columns_two, 0); setEnabled(class_->choice_doc_skip_units, length_input);
if (params.columns == 2)
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, ""); bool const two_sides = params.sides == LyXTextClass::TwoSides;
setEnabled(class_->input_doc_spacing, false); fl_set_button(class_->radio_doc_sides_one, !two_sides);
fl_set_button(class_->radio_doc_sides_two, two_sides);
bool const two_columns = params.columns == 2;
fl_set_button(class_->radio_doc_columns_one, !two_columns);
fl_set_button(class_->radio_doc_columns_two, two_columns);
fl_set_input(class_->input_doc_extra, params.options.c_str());
switch (params.spacing.getSpace()) { switch (params.spacing.getSpace()) {
case Spacing::Default: // nothing bad should happen with this
case Spacing::Single:
// \singlespacing
fl_set_choice(class_->choice_doc_spacing, 1);
break;
case Spacing::Onehalf:
// \onehalfspacing
fl_set_choice(class_->choice_doc_spacing, 2);
break;
case Spacing::Double:
// \doublespacing
fl_set_choice(class_->choice_doc_spacing, 3);
break;
case Spacing::Other: case Spacing::Other:
{ pos = 4;
fl_set_choice(class_->choice_doc_spacing, 4); break;
char sval[20]; case Spacing::Double: // \doublespacing
sprintf(sval,"%g",params.spacing.getValue()); pos = 3;
fl_set_input(class_->input_doc_spacing, sval); break;
setEnabled(class_->input_doc_spacing, true); case Spacing::Onehalf: // \onehalfspacing
pos = 2;
break;
case Spacing::Single: // \singlespacing
case Spacing::Default: // nothing bad should happen with this
default:
pos = 1;
break; break;
} }
} fl_set_choice(class_->choice_doc_spacing, pos);
if (!params.options.empty())
fl_set_input(class_->input_doc_extra, params.options.c_str()); bool const spacing_input = pos == 4;
else setEnabled(class_->input_doc_spacing, spacing_input);
fl_set_input(class_->input_doc_extra, ""); string const input = spacing_input ? tostr(params.spacing.getValue()) : string();
fl_set_input(class_->input_doc_spacing, input.c_str());
} }
@ -1135,11 +1148,11 @@ void FormDocument::paper_update(BufferParams const & params)
//either default papersize (preferences) //either default papersize (preferences)
//or document papersize has to be A4 //or document papersize has to be A4
(paperchoice == 7 (paperchoice == 7
|| paperchoice == 1 && lyxrc.default_papersize == 5) || paperchoice == 1 && lyxrc.default_papersize == BufferParams::PAPER_A4PAPER)
&& fl_get_button(paper_->radio_portrait)); && fl_get_button(paper_->radio_portrait));
// Default unit choice is cm if metric, inches if US paper. // Default unit choice is cm if metric, inches if US paper.
bool const metric = (paperchoice == 1 && lyxrc.default_papersize > 3) bool const metric = (paperchoice == 1 && lyxrc.default_papersize > BufferParams::PAPER_EXECUTIVEPAPER)
|| paperchoice == 2 || paperchoice > 5; || paperchoice == 2 || paperchoice > 5;
string const default_unit = metric ? "cm" : "in"; string const default_unit = metric ? "cm" : "in";
updateWidgetsFromLengthString(paper_->input_custom_width, updateWidgetsFromLengthString(paper_->input_custom_width,
@ -1235,73 +1248,6 @@ void FormDocument::checkReadOnly()
} }
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) {
postWarning(_("Invalid Length (valid example: 10mm)"));
return false;
} else {
clearMessage();
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);
if ((fl_get_choice(class_->choice_doc_skip) == 4) && !*input)
ok = false;
else if (fl_get_choice(class_->choice_doc_skip) != 4)
fl_set_input (class_->input_doc_skip, "");
input = fl_get_input(class_->input_doc_spacing);
if ((fl_get_choice(class_->choice_doc_spacing) == 4) && !*input)
ok = false;
else if (fl_get_choice(class_->choice_doc_spacing) != 4)
fl_set_input (class_->input_doc_spacing, "");
return ok;
}
void FormDocument::ChoiceBulletSize(FL_OBJECT * ob, long /*data*/) void FormDocument::ChoiceBulletSize(FL_OBJECT * ob, long /*data*/)
{ {
BufferParams & param = lv_.buffer()->params; BufferParams & param = lv_.buffer()->params;
@ -1318,7 +1264,7 @@ void FormDocument::InputBulletLaTeX(FL_OBJECT *, long)
BufferParams & param = lv_.buffer()->params; BufferParams & param = lv_.buffer()->params;
param.temp_bullets[current_bullet_depth]. param.temp_bullets[current_bullet_depth].
setText(fl_get_input(bullets_->input_bullet_latex)); setText(getString(bullets_->input_bullet_latex));
} }

View File

@ -60,8 +60,6 @@ private:
/// ///
virtual FL_FORM * form() const; virtual FL_FORM * form() const;
///
bool CheckDocumentInput(FL_OBJECT * ob, long);
/// ///
void ChoiceBulletSize(FL_OBJECT * ob, long); void ChoiceBulletSize(FL_OBJECT * ob, long);
/// ///

View File

@ -54,11 +54,11 @@ void setWidget(bool valid, FL_OBJECT * input, FL_OBJECT * label)
fl_set_object_lcol(input, lcol); fl_set_object_lcol(input, lcol);
} }
// set background color of input widget // Reflect the validity of the data in the background color of the
FL_COLOR const icol1 = valid ? FL_INPUT_COL1 : alert_col; // input widget only when this widget is not being edited.
FL_COLOR const icol2 = valid ? FL_INPUT_COL2 : alert_col; FL_COLOR const icol1 = valid ? FL_COL1 : alert_col;
if (input->col1 != icol1 || input->col2 != icol2) { if (input->col1 != icol1) {
fl_set_object_color(input, icol1, icol2); fl_set_object_color(input, icol1, FL_MCOL);
} }
} }

File diff suppressed because it is too large Load Diff