]> git.lyx.org Git - lyx.git/commitdiff
radiobutton group patch; set font_norm_type correctly in preferences
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Sun, 16 Feb 2003 15:39:40 +0000 (15:39 +0000)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Sun, 16 Feb 2003 15:39:40 +0000 (15:39 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@6177 a592a061-630c-0410-9148-cb99ea01b6c8

src/frontends/xforms/ChangeLog
src/frontends/xforms/FormPreferences.C
src/frontends/xforms/RadioButtonGroup.C
src/frontends/xforms/RadioButtonGroup.h

index ae9cf55cac6530fd87597afcf7cd85f58b31660c..a4c248ee48189f955dda20e64af6dcd0412d720c 100644 (file)
@@ -1,3 +1,12 @@
+2003-02-16  Jean-Marc Lasgouttes  <lasgouttes@freesurf.fr>
+
+       * FormPreferences.C (apply): make sure that rc.font_norm_type is
+       in sync with rc.font_norm
+
+2003-02-16  Rob Lahaye  <lahaye@snu.ac.kr>
+
+       * RadioButtonGroup.[Ch]: polish radio button policy.
+
 2003-02-15  Jean-Marc Lasgouttes  <lasgouttes@freesurf.fr>
 
        * Menubar_pimpl.C (create_submenu): Some code moved to
index 16de725282ed968fa2576042b39f4c3ae173da81..c440e25aae7481f364e3af35202f257627d87461 100644 (file)
@@ -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);
index 83875aeadc85c95e7b88f063dfbc8832830c5b97..380b3f8b63f693df7a18b3cd67d8ffe3d957ef63 100644 (file)
@@ -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<ButtonValuePair>(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;
+       }
 }
 
 
index 02a640f20f4ad10f03472a36a0f3255a9335fa16..9c66c4a596477c1a4acce474dfdad6723e606ca3 100644 (file)
@@ -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