From d72691158d867d1ed1f4fec232e5110f3e5cfae6 Mon Sep 17 00:00:00 2001 From: Jean-Marc Lasgouttes Date: Sun, 16 Feb 2003 15:39:40 +0000 Subject: [PATCH] radiobutton group patch; set font_norm_type correctly in preferences git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@6177 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/frontends/xforms/ChangeLog | 9 +++++++++ src/frontends/xforms/FormPreferences.C | 1 + src/frontends/xforms/RadioButtonGroup.C | 21 +++++++++++++++++---- src/frontends/xforms/RadioButtonGroup.h | 6 +++--- 4 files changed, 30 insertions(+), 7 deletions(-) diff --git a/src/frontends/xforms/ChangeLog b/src/frontends/xforms/ChangeLog index ae9cf55cac..a4c248ee48 100644 --- a/src/frontends/xforms/ChangeLog +++ b/src/frontends/xforms/ChangeLog @@ -1,3 +1,12 @@ +2003-02-16 Jean-Marc Lasgouttes + + * FormPreferences.C (apply): make sure that rc.font_norm_type is + in sync with rc.font_norm + +2003-02-16 Rob Lahaye + + * RadioButtonGroup.[Ch]: polish radio button policy. + 2003-02-15 Jean-Marc Lasgouttes * Menubar_pimpl.C (create_submenu): Some code moved to diff --git a/src/frontends/xforms/FormPreferences.C b/src/frontends/xforms/FormPreferences.C index 16de725282..c440e25aae 100644 --- a/src/frontends/xforms/FormPreferences.C +++ b/src/frontends/xforms/FormPreferences.C @@ -2498,6 +2498,7 @@ void FormPreferences::ScreenFonts::apply(LyXRC & rc) const if (rc.font_norm != str) { changed = true; rc.font_norm = str; + rc.set_font_norm_type(); } bool button = fl_get_button(dialog_->check_scalable); diff --git a/src/frontends/xforms/RadioButtonGroup.C b/src/frontends/xforms/RadioButtonGroup.C index 83875aeadc..380b3f8b63 100644 --- a/src/frontends/xforms/RadioButtonGroup.C +++ b/src/frontends/xforms/RadioButtonGroup.C @@ -39,14 +39,14 @@ void RadioButtonGroup::init(FL_OBJECT * ob, size_type value) } -void RadioButtonGroup::set(size_type value) +void RadioButtonGroup::set(size_type value) const { ButtonValueMap::const_iterator it = find_if(map.begin(), map.end(), lyx::equal_2nd_in_pair(value)); if (it != map.end()) { - set(it->first); + fl_set_button(it->first, 1); } else { // We found nothing: report it and do nothing. lyxerr << "BUG: Requested value in RadioButtonGroup " @@ -55,9 +55,22 @@ void RadioButtonGroup::set(size_type value) } -void RadioButtonGroup::set(FL_OBJECT * ob) +void RadioButtonGroup::set(FL_OBJECT * ob) const { - fl_set_button(ob, 1); + // Object must be member of the radiobutton group. + bool isMember = false; + ButtonValueMap::const_iterator it = map.begin(); + for (; it != map.end() && !isMember; ++it) { + isMember = it->first == ob; + } + + if (isMember) { + fl_set_button(ob, 1); + } else { + // Object is not a member; report it and do nothing. + lyxerr << "BUG: Requested object is not a member of " + << "the RadioButtonGroup." << endl; + } } diff --git a/src/frontends/xforms/RadioButtonGroup.h b/src/frontends/xforms/RadioButtonGroup.h index 02a640f20f..9c66c4a596 100644 --- a/src/frontends/xforms/RadioButtonGroup.h +++ b/src/frontends/xforms/RadioButtonGroup.h @@ -39,8 +39,8 @@ public: void init(FL_OBJECT * ob, size_type value); // Set a single active button. - void set(size_type value); - void set(FL_OBJECT * ob); + void set(size_type value) const; + void set(FL_OBJECT * ob) const; // Get the active button's value. size_type get() const; @@ -54,4 +54,4 @@ private: ButtonValueMap map; }; -#endif +#endif // RADIOBUTTONGROUP_H -- 2.39.5