From a17655b05bb5386c5a3943c08f42f54e73b22bee Mon Sep 17 00:00:00 2001 From: Jean-Marc Lasgouttes Date: Fri, 21 Dec 2001 13:55:24 +0000 Subject: [PATCH] fix \printer_spool_command bug in configure (what can you expect with such long names?); mostly implement reporting of font settings in menus for mathed git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@3261 a592a061-630c-0410-9148-cb99ea01b6c8 --- lib/ChangeLog | 4 ++ lib/configure | 2 +- lib/configure.m4 | 2 +- src/ChangeLog | 10 +++++ src/func_status.h | 6 +++ src/lyxfunc.C | 108 ++++++++++++++++++++++++++++------------------ 6 files changed, 88 insertions(+), 44 deletions(-) diff --git a/lib/ChangeLog b/lib/ChangeLog index e9e317a3cf..9a50d87ffd 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,3 +1,7 @@ +2001-12-21 Jean-Marc Lasgouttes + + * configure.m4: fix typo in \print_spool_command name. + 2001-12-19 Jean-Marc Lasgouttes * doc/LaTeXConfig.lyx.in: more updates: checked and fixed all the diff --git a/lib/configure b/lib/configure index a6f6dc3209..8b1c146ed8 100755 --- a/lib/configure +++ b/lib/configure @@ -1002,7 +1002,7 @@ if test -z "$prog" ; then fi rc_entries="$rc_entries -\printspool_command \"$prog\"" +\print_spool_command \"$prog\"" case $prog in lp) print_spool_printerprefix="-d ";; lpr) print_spool_printerprefix="-P";; diff --git a/lib/configure.m4 b/lib/configure.m4 index a56d3d8295..ec4b104d75 100644 --- a/lib/configure.m4 +++ b/lib/configure.m4 @@ -336,7 +336,7 @@ case $DOCBOOK in esac # Search for a spool command -LYXRC_PROG([for a spool command], \printspool_command, lp lpr) +LYXRC_PROG([for a spool command], \print_spool_command, lp lpr) case $prog in lp) print_spool_printerprefix="-d ";; lpr) print_spool_printerprefix="-P";; diff --git a/src/ChangeLog b/src/ChangeLog index b510959594..d06e36623e 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,13 @@ +2001-12-21 Jean-Marc Lasgouttes + + * lyxfunc.C (getStatus): use func_status::toggle to simplify the + code. Support all font-changing funcs (even those which are not in + menu currently). Support for reporting font settings in + mathed (disabled until Andre provides a function on mathed's side). + + * func_status.h (toggle): small helper function to set toggle + state on a flag. + 2001-12-21 Angus Leeming * tabular_funcs.C: getline -> std::getline diff --git a/src/func_status.h b/src/func_status.h index 66e84122cc..bc7d2d2bf9 100644 --- a/src/func_status.h +++ b/src/func_status.h @@ -17,6 +17,12 @@ enum value_type { /// ToggleOff = 8 }; + + inline + void toggle(value_type & flag, bool b) + { + flag = static_cast(flag | (b ? ToggleOn : ToggleOff)); + } } /// diff --git a/src/lyxfunc.C b/src/lyxfunc.C index 798f72fa54..302aa2d1ec 100644 --- a/src/lyxfunc.C +++ b/src/lyxfunc.C @@ -348,7 +348,6 @@ func_status::value_type LyXFunc::getStatus(int ac) const return getStatus(ac, string()); } - func_status::value_type LyXFunc::getStatus(int ac, string const & not_to_use_arg) const { @@ -506,10 +505,7 @@ func_status::value_type LyXFunc::getStatus(int ac, disable = true; break; } - if (argument[0] == align) - flag |= func_status::ToggleOn; - else - flag |= func_status::ToggleOff; + func_status::toggle(flag, argument[0] == align); } else disable = true; break; @@ -532,10 +528,7 @@ func_status::value_type LyXFunc::getStatus(int ac, disable = true; break; } - if (argument[0] == align) - flag |= func_status::ToggleOn; - else - flag |= func_status::ToggleOff; + func_status::toggle(flag, argument[0] == align); } else disable = true; break; @@ -544,24 +537,17 @@ func_status::value_type LyXFunc::getStatus(int ac, Inset * tli = owner->view()->theLockingInset(); if (tli && (tli->lyxCode() == Inset::MATH_CODE)) { MathInsetTypes type = mathcursor->formula()->getType(); - func_status::value_type box = func_status::ToggleOff; if (argument == "inline") { - if (type == LM_OT_SIMPLE) - box = func_status::ToggleOn; + func_status::toggle(flag, type == LM_OT_SIMPLE); } else if (argument == "display") { - if (type == LM_OT_EQUATION) - box = func_status::ToggleOn; + func_status::toggle(flag, type == LM_OT_EQUATION); } else if (argument == "eqnarray") { - if (type == LM_OT_EQNARRAY) - box = func_status::ToggleOn; + func_status::toggle(flag, type == LM_OT_EQNARRAY); } else if (argument == "align") { - if (type == LM_OT_ALIGN) - box = func_status::ToggleOn; + func_status::toggle(flag, type == LM_OT_ALIGN); } else { - box = func_status::OK; disable = true; } - flag |= box; } else disable = true; break; @@ -701,37 +687,75 @@ func_status::value_type LyXFunc::getStatus(int ac, if (disable) flag |= func_status::Disabled; - // the font related functions (and a few others) - func_status::value_type box = func_status::ToggleOff; - LyXFont const & font = - TEXT(false)->real_current_font; + // A few general toggles switch (action) { - case LFUN_EMPH: - if (font.emph() == LyXFont::ON) - box = func_status::ToggleOn; - break; - case LFUN_NOUN: - if (font.noun() == LyXFont::ON) - box = func_status::ToggleOn; - break; - case LFUN_BOLD: - if (font.series() == LyXFont::BOLD_SERIES) - box = func_status::ToggleOn; - break; case LFUN_READ_ONLY_TOGGLE: - if (buf->isReadonly()) - box = func_status::ToggleOn; + func_status::toggle(flag, buf->isReadonly()); break; case LFUN_APPENDIX: - if (TEXT(false)->cursor.par()->params().startOfAppendix()) - box = func_status::ToggleOn; + func_status::toggle(flag, TEXT(false)->cursor.par()->params().startOfAppendix()); break; default: - box = func_status::OK; break; } - flag |= box; + // the font related toggles + if (!mathcursor) { + LyXFont const & font = TEXT(false)->real_current_font; + switch (action) { + case LFUN_EMPH: + func_status::toggle(flag, font.emph() == LyXFont::ON); + break; + case LFUN_NOUN: + func_status::toggle(flag, font.noun() == LyXFont::ON); + break; + case LFUN_BOLD: + func_status::toggle(flag, font.series() == LyXFont::BOLD_SERIES); + break; + case LFUN_SANS: + func_status::toggle(flag, font.family() == LyXFont::SANS_FAMILY); + break; + case LFUN_ROMAN: + func_status::toggle(flag, font.family() == LyXFont::ROMAN_FAMILY); + break; + case LFUN_CODE: + func_status::toggle(flag, font.family() == LyXFont::TYPEWRITER_FAMILY); + break; + default: + break; + } + } +#if 0 + else { + MathTextCodes tc = mathcursor->getLastCode(); + switch (action) { + case LFUN_BOLD: + func_status::toggle(flag, tc == LM_TC_BF); + break; + case LFUN_SANS: + func_status::toggle(flag, tc == LM_TC_SF); + break; + case LFUN_EMPH: + func_status::toggle(flag, tc == LM_TC_CAL); + break; + case LFUN_ROMAN: + func_status::toggle(flag, tc == LM_TC_RM); + break; + case LFUN_CODE: + func_status::toggle(flag, tc == LM_TC_TT); + break; + case LFUN_NOUN: + func_status::toggle(flag, tc == LM_TC_BB); + break; + case LFUN_DEFAULT: + func_status::toggle(flag, tc == LM_TC_VAR); + break; + default: + break; + } + } + #endif + return flag; } -- 2.39.5