+ // the font related toggles
+ if (!mathcursor) {
+ LyXFont const & font = TEXT(false)->real_current_font;
+ switch (action) {
+ case LFUN_EMPH:
+ flag.setOnOff(font.emph() == LyXFont::ON);
+ break;
+ case LFUN_NOUN:
+ flag.setOnOff(font.noun() == LyXFont::ON);
+ break;
+ case LFUN_BOLD:
+ flag.setOnOff(font.series() == LyXFont::BOLD_SERIES);
+ break;
+ case LFUN_SANS:
+ flag.setOnOff(font.family() == LyXFont::SANS_FAMILY);
+ break;
+ case LFUN_ROMAN:
+ flag.setOnOff(font.family() == LyXFont::ROMAN_FAMILY);
+ break;
+ case LFUN_CODE:
+ flag.setOnOff(font.family() == LyXFont::TYPEWRITER_FAMILY);
+ break;
+ default:
+ break;
+ }
+ }
+ else {
+ MathTextCodes tc = mathcursor->getLastCode();
+ switch (action) {
+ case LFUN_BOLD:
+ flag.setOnOff(tc == LM_TC_BF);
+ break;
+ case LFUN_SANS:
+ flag.setOnOff(tc == LM_TC_SF);
+ break;
+ case LFUN_EMPH:
+ flag.setOnOff(tc == LM_TC_CAL);
+ break;
+ case LFUN_ROMAN:
+ flag.setOnOff(tc == LM_TC_RM);
+ break;
+ case LFUN_CODE:
+ flag.setOnOff(tc == LM_TC_TT);
+ break;
+ case LFUN_NOUN:
+ flag.setOnOff(tc == LM_TC_BB);
+ break;
+ case LFUN_DEFAULT:
+ flag.setOnOff(tc == LM_TC_VAR);
+ break;
+ default:
+ break;
+ }
+ }
+