]> git.lyx.org Git - lyx.git/commitdiff
Move callback call in combox and add a Combox * to the callback-type.
authorJürgen Vigna <jug@sad.it>
Thu, 14 Sep 2000 14:37:21 +0000 (14:37 +0000)
committerJürgen Vigna <jug@sad.it>
Thu, 14 Sep 2000 14:37:21 +0000 (14:37 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@1018 a592a061-630c-0410-9148-cb99ea01b6c8

ChangeLog
src/combox.C
src/combox.h
src/frontends/xforms/FormDocument.C
src/frontends/xforms/FormDocument.h
src/frontends/xforms/Toolbar_pimpl.C
src/intl.C
src/intl.h
src/lyx_cb.C

index 66ada6d24ed9f66e137fead3a79462ec78bfa2f8..4a4aa1ffe3063db5ba0d8975d2352442a4eeb0c4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,21 @@
+2000-09-14  Juergen Vigna  <jug@sad.it>
+
+       * src/frontends/xforms/FormDocument.C (ComboInputCB): fixed the
+       callback to check which combo called it and do the right action.
+
+       * src/combox.C (combo_cb): added combo * to the callbacks.
+       (Hide): moved call of callback after Ungrab of the pointer.
+
+       * src/intl.h: removed LCombo2 function.
+
+       * src/intl.C (LCombo): added Combox * to call and removed LCombo2
+       function as this can now be handled in one function.
+
+       * src/combox.h: added Combox * to callback prototype.
+
+       * src/frontends/xforms/Toolbar_pimpl.C: 
+       * src/lyx_cb.C (LayoutsCB): added Combox * to function call.
+
 2000-09-14  Garst Reese    <reese@isn.net>
 
        * lib/tex/hollywood.cls changed length of parenthicals to 1.5in
index 400e3da44d6051e719d3e2cc95e65515358185d9..260d781eedf6e2666cfbb49e9f01ce2e3eaa8d39 100644 (file)
@@ -274,10 +274,12 @@ void Combox::Hide(int who)
                else
                        fl_set_object_label(label,
                                            fl_get_browser_line(browser, sel));         
-               if (callback) callback(sel, cb_arg);
+//             if (callback) callback(sel, cb_arg);
        }
         XUngrabPointer(fl_display, 0);
        XFlush(fl_display);
+       if (!who && browser && label && callback)
+           callback(sel, cb_arg, this);
         if (form) {
                fl_hide_form(form);
                XSetInputFocus(fl_display, save_window,
@@ -338,7 +340,7 @@ void Combox::combo_cb(FL_OBJECT * ob, long data)
                        combo->select(--i); 
                        if (combo->callback)
                                combo->callback(combo->sel,
-                                               combo->cb_arg);
+                                               combo->cb_arg, combo);
                        break;
                }
                case 3: 
@@ -346,7 +348,7 @@ void Combox::combo_cb(FL_OBJECT * ob, long data)
                        combo->select(++i);  
                        if (combo->callback)
                                combo->callback(combo->sel,
-                                               combo->cb_arg);
+                                               combo->cb_arg, combo);
                        break;
                }
                default: combo->Show(); break;
index 8668797a7422fad430600b5f303c6a0c11c66527..8dee29f1fcdf0807ae6511c445620f66c21e9c07 100644 (file)
@@ -41,8 +41,10 @@ enum combox_type {
        FL_COMBOX_INPUT
 };
 
+class Combox;
+
 /// callback prototype
-typedef void (*FL_COMBO_CB) (int, void *);
+typedef void (*FL_COMBO_CB) (int, void *, Combox *);
 /// pre post prototype
 typedef void (*FL_COMBO_PRE_POST) ();
 
index 1cc618f77cde645d765ece55d9710bae9415526e..52d7d02afb65ff01d775297a814f947d91b1a433 100644 (file)
@@ -163,7 +163,7 @@ void FormDocument::build()
     fl_addto_choice(class_->choice_doc_spacing,
                    _(" Single | OneHalf | Double | Other "));
     fl_addto_choice(class_->choice_doc_fontsize, "default|10|11|12");
-    for (n=0; tex_fonts[n][0]; ++n) {
+   for (n=0; tex_fonts[n][0]; ++n) {
        fl_addto_choice(class_->choice_doc_fonts,tex_fonts[n]);
     }
     fl_addto_choice(class_->choice_doc_pagestyle,
@@ -853,10 +853,11 @@ void FormDocument::InputCB(FL_OBJECT * ob, long)
     pre->bc_->valid(pre->CheckDocumentInput(ob,0));
 }
 
-void FormDocument::ComboInputCB(int, void * v)
+void FormDocument::ComboInputCB(int, void * v, Combox * combox)
 {
     FormDocument * pre = static_cast<FormDocument*>(v);
-//    pre->CheckChoiceClass(0, 0);
+    if (combox == pre->combo_doc_class)
+       pre->CheckChoiceClass(0, 0);
     pre->bc_->valid(pre->CheckDocumentInput(0,0));
 }
 
index 3a66bac02b30bc99a032c44bd41d8ecb374e1ce0..3dadb8a5d8028ca6ace2272195e876c54dca5516 100644 (file)
@@ -61,7 +61,7 @@ public:
     ///
     static void InputCB(FL_OBJECT *, long);
     ///
-    static void ComboInputCB(int, void *);
+    static void ComboInputCB(int, void *, Combox *);
     ///
     static void ChoiceClassCB(FL_OBJECT *, long);
     ///
index 07406dbc98c41d55857b7d626ee87b93d48bcfd5..62c362d948cab3af0fa2bdf0564bc0ca9431259b 100644 (file)
@@ -32,7 +32,7 @@
 using std::endl;
 
 // this one is not "C" because combox callbacks are really C++ %-|
-extern void LayoutsCB(int, void *);
+extern void LayoutsCB(int, void *, Combox *);
 extern char const ** get_pixmap_from_symbol(char const * arg, int, int);
 extern LyXAction lyxaction;
 
index faaa79910bdc046a2e8f0a6453dbd9452c5424d3..a3b93fe55b06f7c1a5f613b87621fc2cd8e5b195 100644 (file)
@@ -183,23 +183,16 @@ void Intl::KeyMapSec()
        }
 }
 
-
-void Intl::LCombo(int, void * v)
-{
-       Intl * itl = static_cast<Intl*>(v);
-       itl->Keymap(23);
-       return;
-}
-
-
-void Intl::LCombo2(int, void * v)
+void Intl::LCombo(int, void * v, Combox * combox)
 {
        Intl * itl = static_cast<Intl*>(v);
-       itl->Keymap(43);
+       if (combox == itl->Language)
+           itl->Keymap(23);
+       else if (combox == itl->Language2)
+           itl->Keymap(43);
        return;
 }
 
-
 void Intl::DispatchCallback(FL_OBJECT * ob, long code)
 {
        if (ob && (code == 0)) {
@@ -234,7 +227,7 @@ void Intl::InitKeyMapper(bool on)
        Language = new Combox(FL_COMBOX_DROPLIST);
        Language2 = new Combox(FL_COMBOX_DROPLIST);
        Language->setcallback(LCombo, this);
-       Language2->setcallback(LCombo2, this);
+       Language2->setcallback(LCombo, this);
 
        fd_form_keymap = create_form_KeyMap();
 
index 8432bfcd1a80e685a1794457701dfbf147f80a6b..f6a7caa1db302c22771253620edbdbfe7495e840 100644 (file)
@@ -68,9 +68,7 @@ private:
        ///
        void update();
        ///
-       static void LCombo(int i, void *); // callback
-       ///
-       static void LCombo2(int i, void *); // callback
+       static void LCombo(int i, void *, Combox *); // callback
        ///
        void Keymap(long code);
        ///
index da971808f2290eac446bc4f23baff9f5d5ca29a9..e6cd7c02a5423b96d00aded282c6b567060d178f 100644 (file)
@@ -1175,7 +1175,7 @@ void MenuInsertLabel(char const * arg)
 
 // candidate for move to LyXView
 // This is only used in toolbar.C
-void LayoutsCB(int sel, void *)
+void LayoutsCB(int sel, void *, Combox *)
 {
        string tmp = tostr(sel);
        current_view->owner()->getLyXFunc()->Dispatch(LFUN_LAYOUTNO,