]> git.lyx.org Git - lyx.git/blobdiff - src/filedlg.C
removed a warning from screen and added CFLAGS in lyx.spec.in.
[lyx.git] / src / filedlg.C
index 2369672d98fd5777a0799e4ad3ca75eb07963344..bbd63ba7ed6809cf7285ec94dc8b5752fe18c739 100644 (file)
@@ -75,6 +75,12 @@ static const long ONE_HOUR_SEC = 60L * 60L;
 // global instance (user cache root)
 UserCache lyxUserCache = UserCache(string(),0,0);
 
+// some "C" wrappers around callbacks
+extern "C" void C_LyXFileDlg_FileDlgCB(FL_OBJECT *, long lArgument);
+extern "C" void C_LyXFileDlg_DoubleClickCB(FL_OBJECT *, long);
+extern "C" int C_LyXFileDlg_CancelCB(FL_FORM *, void *);
+extern "C" int C_LyXDirEntryC_ldeCompProc(const void* r1, 
+                                         const void* r2);
 
 // Add: creates a new user entry
 UserCache * UserCache::Add(uid_t ID)
@@ -196,6 +202,13 @@ int LyXDirEntry::ldeCompProc(const LyXDirEntry * r1,
        return r1->pszName.compare(r2->pszName);
 }
 
+extern "C" int C_LyXDirEntry_ldeCompProc(const void * r1, 
+                                        const void * r2)
+{
+       return LyXDirEntry::ldeCompProc((const LyXDirEntry *)r1,
+                                       (const LyXDirEntry *)r2);
+}
+
 // *** LyXFileDlg class implementation
 
 // static members
@@ -296,8 +309,6 @@ void LyXFileDlg::Reread()
                        // factor for what is considered "the future", to
                        // allow for NFS server/client clock disagreement.
                        // Show the year instead of the time of day.
-#warning fix!
-                       
                        Time.erase(10, 9);
                        Time.erase(15, string::npos);
                } else {
@@ -363,7 +374,7 @@ void LyXFileDlg::Reread()
 
        // Sort the names
        qsort(pCurrentNames, iNumNames, sizeof(LyXDirEntry), 
-             (int (*)(const void *, const void *))LyXDirEntry::ldeCompProc);
+             C_LyXDirEntry_ldeCompProc);
 
        // Add them to directory box
        for (i = 0; i < iNumNames; ++i) {
@@ -414,27 +425,28 @@ LyXFileDlg::LyXFileDlg()
                pFileDlgForm = create_form_FileDlg();
                // Set callbacks. This means that we don't need a patch file
                fl_set_object_callback(pFileDlgForm->DirBox,
-                                      LyXFileDlg::FileDlgCB,0);
+                                      C_LyXFileDlg_FileDlgCB,0);
                fl_set_object_callback(pFileDlgForm->PatBox,
-                                      LyXFileDlg::FileDlgCB,1);
+                                      C_LyXFileDlg_FileDlgCB,1);
                fl_set_object_callback(pFileDlgForm->List,
-                                      LyXFileDlg::FileDlgCB,2);
+                                      C_LyXFileDlg_FileDlgCB,2);
                fl_set_object_callback(pFileDlgForm->Filename,
-                                      LyXFileDlg::FileDlgCB,3);
+                                      C_LyXFileDlg_FileDlgCB,3);
                fl_set_object_callback(pFileDlgForm->Rescan,
-                                      LyXFileDlg::FileDlgCB,10);
+                                      C_LyXFileDlg_FileDlgCB,10);
                fl_set_object_callback(pFileDlgForm->Home,
-                                      LyXFileDlg::FileDlgCB,11);
+                                      C_LyXFileDlg_FileDlgCB,11);
                fl_set_object_callback(pFileDlgForm->User1,
-                                      LyXFileDlg::FileDlgCB,12);
+                                      C_LyXFileDlg_FileDlgCB,12);
                fl_set_object_callback(pFileDlgForm->User2,
-                                      LyXFileDlg::FileDlgCB,13);
+                                      C_LyXFileDlg_FileDlgCB,13);
                
                // Make sure pressing the close box doesn't crash LyX. (RvdK)
-               fl_set_form_atclose(pFileDlgForm->FileDlg, CancelCB, 0);
+               fl_set_form_atclose(pFileDlgForm->FileDlg, 
+                                   C_LyXFileDlg_CancelCB, 0);
                // Register doubleclick callback
                fl_set_browser_dblclick_callback(pFileDlgForm->List,
-                                                DoubleClickCB,0);
+                                                C_LyXFileDlg_DoubleClickCB,0);
        }
        fl_hide_object(pFileDlgForm->User1);
        fl_hide_object(pFileDlgForm->User2);
@@ -561,6 +573,11 @@ void LyXFileDlg::FileDlgCB(FL_OBJECT *, long lArgument)
        }
 }
 
+extern "C" void C_LyXFileDlg_FileDlgCB(FL_OBJECT *ob, long data) 
+{
+       LyXFileDlg::FileDlgCB(ob, data);
+}
+
 
 // Handle callback from list
 void LyXFileDlg::HandleListHit()
@@ -583,6 +600,10 @@ void LyXFileDlg::DoubleClickCB(FL_OBJECT *, long)
                pCurrentDlg->Force(false);
 }
 
+extern "C" void C_LyXFileDlg_DoubleClickCB(FL_OBJECT *ob, long data)
+{
+       LyXFileDlg::DoubleClickCB(ob, data);
+}
 
 // Handle double click from list
 bool LyXFileDlg::HandleDoubleClick()
@@ -687,6 +708,10 @@ int LyXFileDlg::CancelCB(FL_FORM *, void *)
        return FL_IGNORE;
 }
 
+extern "C" int C_LyXFileDlg_CancelCB(FL_FORM *fl, void *xev)
+{
+       return LyXFileDlg::CancelCB(fl, xev);
+}
 
 // Simulates a click on OK/Cancel
 void LyXFileDlg::Force(bool cancel)