+1999-10-19 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
+
+ * src/mathed/math_symbols.C, src/support/lstrings.C,
+ src/support/lyxstring.C: add `using' directive to specify what
+ we need in <algorithm>. I do not think that we need to
+ conditionalize this, but any thought is appreciated.
+
+ * many files: change all callback functions to "C" linkage
+ functions to please strict C++ compilers like DEC cxx 6.1 in mode
+ strict_ansi. Those who were static are now global.
+ The case of callbacks which are static class members is
+ trickier, since we have to make C wrappers around them (see
+ InsetError, InsetInfo and InsetUrl). The same holds for friends. I
+ did not finish this yet, since it defeats the purpose of
+ encapsulation, and I am not sure what the best route is.
+
1999-10-19 Juergen Vigna <jug@sad.it>
* src/support/lyxstring.C (lyxstring): we permit to have a null
// Function to compare items from the attrib table.
-int actioncomp(const void *a, const void *b)
+extern "C" int actioncomp(const void *a, const void *b)
{
int const *ia=(int const*)a, *ib=(int const*)b;
return (*ia)-(*ib);
} BMTABLE_SPEC;
-static int handle_bitmaptable(FL_OBJECT *ob, int event, FL_Coord mx,
- FL_Coord my, int key, void *xev);
+extern "C" int handle_bitmaptable(FL_OBJECT *ob, int event, FL_Coord mx,
+ FL_Coord my, int key, void *xev);
FL_OBJECT *fl_create_bmtable(int type, FL_Coord x, FL_Coord y,
}
-static int handle_bitmaptable(FL_OBJECT *ob, int event, FL_Coord mx,
- FL_Coord my, int key, void */*xev*/)
+extern "C" int handle_bitmaptable(FL_OBJECT *ob, int event, FL_Coord mx,
+ FL_Coord my, int key, void */*xev*/)
{
int i, j;
BMTABLE_SPEC *sp = (BMTABLE_SPEC *)ob->spec;
#define FD_form_bullet_h_
/** Callbacks, globals and object handlers **/
-extern void ChoiceBulletSizeCB(FL_OBJECT *, long);
-extern void BulletOKCB(FL_OBJECT *, long);
-extern void BulletApplyCB(FL_OBJECT *, long);
-extern void BulletCancelCB(FL_OBJECT *, long);
-extern void InputBulletLaTeXCB(FL_OBJECT *, long);
-extern void BulletDepthCB(FL_OBJECT *, long);
-extern void BulletPanelCB(FL_OBJECT *, long);
-extern void BulletBMTableCB(FL_OBJECT *, long);
+extern "C" void ChoiceBulletSizeCB(FL_OBJECT *, long);
+extern "C" void BulletOKCB(FL_OBJECT *, long);
+extern "C" void BulletApplyCB(FL_OBJECT *, long);
+extern "C" void BulletCancelCB(FL_OBJECT *, long);
+extern "C" void InputBulletLaTeXCB(FL_OBJECT *, long);
+extern "C" void BulletDepthCB(FL_OBJECT *, long);
+extern "C" void BulletPanelCB(FL_OBJECT *, long);
+extern "C" void BulletBMTableCB(FL_OBJECT *, long);
/**** Additional routines ****/
#define FD_form_credits_h_
/** Callbacks, globals and object handlers **/
-extern void CreditsOKCB(FL_OBJECT *, long);
+extern "C" void CreditsOKCB(FL_OBJECT *, long);
-extern void CopyrightOKCB(FL_OBJECT *, long);
+extern "C" void CopyrightOKCB(FL_OBJECT *, long);
/**** Forms and Objects ****/
/** Callbacks, globals and object handlers **/
-extern void GraphicsCB(FL_OBJECT *, long);
+extern "C" void GraphicsCB(FL_OBJECT *, long);
-extern void TableOKCB(FL_OBJECT *, long);
-extern void TableApplyCB(FL_OBJECT *, long);
-extern void TableCancelCB(FL_OBJECT *, long);
+extern "C" void TableOKCB(FL_OBJECT *, long);
+extern "C" void TableApplyCB(FL_OBJECT *, long);
+extern "C" void TableCancelCB(FL_OBJECT *, long);
-extern void SearchForwardCB(FL_OBJECT *, long);
-extern void SearchBackwardCB(FL_OBJECT *, long);
-extern void SearchReplaceCB(FL_OBJECT *, long);
-extern void SearchCancelCB(FL_OBJECT *, long);
-extern void SearchReplaceAllCB(FL_OBJECT *, long);
+extern "C" void SearchForwardCB(FL_OBJECT *, long);
+extern "C" void SearchBackwardCB(FL_OBJECT *, long);
+extern "C" void SearchReplaceCB(FL_OBJECT *, long);
+extern "C" void SearchCancelCB(FL_OBJECT *, long);
+extern "C" void SearchReplaceAllCB(FL_OBJECT *, long);
/**** Forms and Objects ****/
/**** Callback routines ****/
-extern void include_cb(FL_OBJECT *, long);
+extern "C" void include_cb(FL_OBJECT *, long);
/**** Forms and Objects ****/
static volatile bool alarmed;
extern FL_OBJECT *figinset_canvas;
-inline
-void waitalarm(int)
+//inline
+extern "C" void waitalarm(int)
{
alarmed = true;
}
}
-int GhostscriptMsg(FL_OBJECT *, Window, int, int,
+extern "C" int GhostscriptMsg(FL_OBJECT *, Window, int, int,
XEvent *ev, void *)
{
int i;
extern void UpdateInset(Inset* inset, bool mark_dirty = true);
void BibitemUpdate(Combox *);
-void bibitem_cb(FL_OBJECT *, long);
FD_citation_form * create_form_citation_form(void);
FD_bibitem_form * create_form_bibitem_form(void);
-void bibitem_cb(FL_OBJECT *, long data)
+extern "C" void bibitem_cb(FL_OBJECT *, long data)
{
switch (data) {
// case 0: fl_hide_form(citation_form->citation_form);
}
}
+// A C wrapper
+extern "C" void C_InsetError_CloseErrorCB(FL_OBJECT *, long data)
+{
+ InsetError::CloseErrorCB(0,data);
+}
+
+
void InsetError::Edit(int, int)
{
if (!form) {
fl_set_object_color(strobj,FL_MCOL,FL_MCOL);
fl_set_object_gravity(strobj, FL_NorthWest, FL_SouthEast);
obj = fl_add_button(FL_RETURN_BUTTON,140,200,120,30,_("Close"));
- fl_set_object_callback(obj, CloseErrorCB, (long)this);
+ fl_set_object_callback(obj, C_InsetError_CloseErrorCB, (long)this);
fl_set_object_gravity(obj, FL_South, FL_South);
fl_set_object_resize(obj, FL_RESIZE_NONE);
fl_end_form();
Inset::Code LyxCode() const { return Inset::NO_CODE; }
/// We don't want "begin" and "end inset" in lyx-file
bool DirectWrite() const { return true; };
+ ///
+ static void CloseErrorCB(FL_OBJECT *, long data);
private:
///
string contents;
FL_FORM *form;
///
FL_OBJECT *strobj;
- ///
- static void CloseErrorCB(FL_OBJECT *, long data);
};
#endif
FD_include *form = 0;
-void include_cb(FL_OBJECT *, long arg)
+extern "C" void include_cb(FL_OBJECT *, long arg)
{
InsetInclude *inset = (InsetInclude*)form->vdata;
FD_index_form *index_form = 0;
-static
-void index_cb(FL_OBJECT *, long data)
+extern "C" void index_cb(FL_OBJECT *, long data)
{
InsetIndex *inset = (InsetIndex*)index_form->vdata;
}
}
+// This is just a wrapper.
+extern "C" void C_InsetInfo_CloseInfoCB(FL_OBJECT *, long data)
+{
+ InsetInfo::CloseInfoCB(0, data);
+}
void InsetInfo::Edit(int, int)
{
obj = fl_add_button(FL_NORMAL_BUTTON,130,140,120,30,idex(_("Close|#C^[")));
fl_set_object_resize(obj, FL_RESIZE_NONE);
fl_set_object_gravity(obj, SouthWestGravity, SouthEastGravity);
- fl_set_object_callback(obj, CloseInfoCB, (long)this);
+ fl_set_object_callback(obj, C_InsetInfo_CloseInfoCB, (long)this);
fl_set_object_shortcut(obj, scex(_("Close|#C^[")), (long)this);
fl_end_form();
fl_set_form_atclose(form, CancelCloseBoxCB, 0);
Inset::Code LyxCode() const;
///
Inset* Clone();
+ ///
+ static void CloseInfoCB(FL_OBJECT *, long data);
private:
///
string contents;
FL_FORM *form;
///
FL_OBJECT *strobj;
- ///
- static void CloseInfoCB(FL_OBJECT *, long data);
};
#endif
}
}
+extern "C" void C_InsetUrl_CloseUrlCB(FL_OBJECT *ob, long)
+{
+ InsetUrl::CloseUrlCB(0,0);
+}
void InsetUrl::Edit(int, int)
{
obj = fl_add_button(FL_RETURN_BUTTON,360,130,100,30,idex(_("Close|#C^[^M")));
fl_set_button_shortcut(obj,scex(_("Close|#C^[^M")),1);
obj->u_vdata = this;
- fl_set_object_callback(obj,CloseUrlCB,0);
+ fl_set_object_callback(obj,C_InsetUrl_CloseUrlCB,0);
radio_html = obj = fl_add_checkbutton(FL_PUSH_BUTTON,50,130,240,30,idex(_("HTML type|#H")));
fl_set_button_shortcut(obj,scex(_("HTML type|#H")),1);
fl_set_object_lsize(obj,FL_NORMAL_SIZE);
int Linuxdoc(string &file);
///
int DocBook(string &file);
+ ///
+ static void CloseUrlCB(FL_OBJECT *, long data);
private:
///
Url_Flags flag;
FL_OBJECT *name_name;
///
FL_OBJECT *radio_html;
- ///
- static void CloseUrlCB(FL_OBJECT *, long data);
};
#endif
#define FD_LaTeXOptions_h_
/** Callbacks, globals and object handlers **/
-extern void LaTeXOptionsOK(FL_OBJECT *, long);
-extern void LaTeXOptionsApply(FL_OBJECT *, long);
-extern void LaTeXOptionsCancel(FL_OBJECT *, long);
+extern "C" void LaTeXOptionsOK(FL_OBJECT *, long);
+extern "C" void LaTeXOptionsApply(FL_OBJECT *, long);
+extern "C" void LaTeXOptionsCancel(FL_OBJECT *, long);
-extern void LatexLogClose(FL_OBJECT *, long);
-extern void LatexLogUpdate(FL_OBJECT *, long);
+extern "C" void LatexLogClose(FL_OBJECT *, long);
+extern "C" void LatexLogUpdate(FL_OBJECT *, long);
/**** Forms and Objects ****/
#define FD_form_document_h_
/** Callbacks, globals and object handlers **/
-extern void ChoiceClassCB(FL_OBJECT *, long);
-extern void DocumentCancelCB(FL_OBJECT *, long);
-extern void DocumentApplyCB(FL_OBJECT *, long);
-extern void DocumentOKCB(FL_OBJECT *, long);
-extern void DocumentDefskipCB(FL_OBJECT *, long);
-extern void DocumentSpacingCB(FL_OBJECT *, long);
-extern void DocumentBulletsCB(FL_OBJECT *, long);
+extern "C" void ChoiceClassCB(FL_OBJECT *, long);
+extern "C" void DocumentCancelCB(FL_OBJECT *, long);
+extern "C" void DocumentApplyCB(FL_OBJECT *, long);
+extern "C" void DocumentOKCB(FL_OBJECT *, long);
+extern "C" void DocumentDefskipCB(FL_OBJECT *, long);
+extern "C" void DocumentSpacingCB(FL_OBJECT *, long);
+extern "C" void DocumentBulletsCB(FL_OBJECT *, long);
-extern void CharacterApplyCB(FL_OBJECT *, long);
-extern void CharacterCloseCB(FL_OBJECT *, long);
+extern "C" void CharacterApplyCB(FL_OBJECT *, long);
+extern "C" void CharacterCloseCB(FL_OBJECT *, long);
-extern void ParagraphOKCB(FL_OBJECT *, long);
-extern void ParagraphApplyCB(FL_OBJECT *, long);
-extern void ParagraphCancelCB(FL_OBJECT *, long);
-extern void ParagraphVSpaceCB(FL_OBJECT *, long);
-extern void ParagraphExtraOpen(FL_OBJECT *, long);
+extern "C" void ParagraphOKCB(FL_OBJECT *, long);
+extern "C" void ParagraphApplyCB(FL_OBJECT *, long);
+extern "C" void ParagraphCancelCB(FL_OBJECT *, long);
+extern "C" void ParagraphVSpaceCB(FL_OBJECT *, long);
+extern "C" void ParagraphExtraOpen(FL_OBJECT *, long);
-extern void PreambleOKCB(FL_OBJECT *, long);
-extern void PreambleApplyCB(FL_OBJECT *, long);
-extern void PreambleCancelCB(FL_OBJECT *, long);
+extern "C" void PreambleOKCB(FL_OBJECT *, long);
+extern "C" void PreambleApplyCB(FL_OBJECT *, long);
+extern "C" void PreambleCancelCB(FL_OBJECT *, long);
-extern void QuotesOKCB(FL_OBJECT *, long);
-extern void QuotesApplyCB(FL_OBJECT *, long);
-extern void QuotesCancelCB(FL_OBJECT *, long);
+extern "C" void QuotesOKCB(FL_OBJECT *, long);
+extern "C" void QuotesApplyCB(FL_OBJECT *, long);
+extern "C" void QuotesCancelCB(FL_OBJECT *, long);
-extern void PaperMarginsCB(FL_OBJECT *, long);
-extern void PaperCancelCB(FL_OBJECT *, long);
-extern void PaperApplyCB(FL_OBJECT *, long);
-extern void PaperOKCB(FL_OBJECT *, long);
+extern "C" void PaperMarginsCB(FL_OBJECT *, long);
+extern "C" void PaperCancelCB(FL_OBJECT *, long);
+extern "C" void PaperApplyCB(FL_OBJECT *, long);
+extern "C" void PaperOKCB(FL_OBJECT *, long);
-extern void TableOptCloseCB(FL_OBJECT *, long);
-extern void TableOptionsCB(FL_OBJECT *, long);
-extern void SetPWidthCB(FL_OBJECT *, long);
+extern "C" void TableOptCloseCB(FL_OBJECT *, long);
+extern "C" void TableOptionsCB(FL_OBJECT *, long);
+extern "C" void SetPWidthCB(FL_OBJECT *, long);
-extern void CheckPExtraOptCB(FL_OBJECT *, long);
-extern void ParagraphExtraOKCB(FL_OBJECT *, long);
-extern void ParagraphExtraApplyCB(FL_OBJECT *, long);
-extern void ParagraphExtraCancelCB(FL_OBJECT *, long);
+extern "C" void CheckPExtraOptCB(FL_OBJECT *, long);
+extern "C" void ParagraphExtraOKCB(FL_OBJECT *, long);
+extern "C" void ParagraphExtraApplyCB(FL_OBJECT *, long);
+extern "C" void ParagraphExtraCancelCB(FL_OBJECT *, long);
-extern void TableOptionsCB(FL_OBJECT *, long);
-extern void TableSpeCloseCB(FL_OBJECT *, long);
+extern "C" void TableOptionsCB(FL_OBJECT *, long);
+extern "C" void TableSpeCloseCB(FL_OBJECT *, long);
/* Additional Functions/Methods */
#define FD_form_title_h_
/** Callbacks, globals and object handlers **/
-extern void TimerCB(FL_OBJECT *, long);
+extern "C" void TimerCB(FL_OBJECT *, long);
-extern void FigureOKCB(FL_OBJECT *, long);
-extern void FigureApplyCB(FL_OBJECT *, long);
-extern void FigureCancelCB(FL_OBJECT *, long);
+extern "C" void FigureOKCB(FL_OBJECT *, long);
+extern "C" void FigureApplyCB(FL_OBJECT *, long);
+extern "C" void FigureCancelCB(FL_OBJECT *, long);
-extern void ScreenOKCB(FL_OBJECT *, long);
-extern void ScreenApplyCB(FL_OBJECT *, long);
-extern void ScreenCancelCB(FL_OBJECT *, long);
+extern "C" void ScreenOKCB(FL_OBJECT *, long);
+extern "C" void ScreenApplyCB(FL_OBJECT *, long);
+extern "C" void ScreenCancelCB(FL_OBJECT *, long);
-extern void TocSelectCB(FL_OBJECT *, long);
-extern void TocCancelCB(FL_OBJECT *, long);
-extern void TocUpdateCB(FL_OBJECT *, long);
+extern "C" void TocSelectCB(FL_OBJECT *, long);
+extern "C" void TocCancelCB(FL_OBJECT *, long);
+extern "C" void TocUpdateCB(FL_OBJECT *, long);
-extern void RefUpdateCB(FL_OBJECT *, long);
-extern void RefHideCB(FL_OBJECT *, long);
-extern void RefSelectCB(FL_OBJECT *, long);
+extern "C" void RefUpdateCB(FL_OBJECT *, long);
+extern "C" void RefHideCB(FL_OBJECT *, long);
+extern "C" void RefSelectCB(FL_OBJECT *, long);
/**** Forms and Objects ****/
}
-void FootCB(FL_OBJECT*, long)
+extern "C" void FootCB(FL_OBJECT*, long)
{
if (!current_view->available())
return;
}
-void MarginCB(FL_OBJECT *, long)
+extern "C" void MarginCB(FL_OBJECT *, long)
{
if (current_view->available()) {
minibuffer->Set(_("Inserting margin note..."));
}
-void FigureCB(FL_OBJECT *, long)
+extern "C" void FigureCB(FL_OBJECT *, long)
{
if (fd_form_figure->form_figure->visible) {
fl_raise_form(fd_form_figure->form_figure);
}
-void TableCB(FL_OBJECT *, long)
+extern "C" void TableCB(FL_OBJECT *, long)
{
if (fd_form_table->form_table->visible) {
fl_raise_form(fd_form_table->form_table);
}
-void MeltCB(FL_OBJECT *, long)
+extern "C" void MeltCB(FL_OBJECT *, long)
{
if (!current_view->available()) return;
// if decInc == 0, depth change taking mouse button number into account
// if decInc == 1, increment depth
// if decInc == -1, decrement depth
-void DepthCB(FL_OBJECT *ob, long decInc)
+extern "C" void DepthCB(FL_OBJECT *ob, long decInc)
{
int button = 1;
/* callbacks for form form_title */
-void TimerCB(FL_OBJECT *, long)
+extern "C" void TimerCB(FL_OBJECT *, long)
{
// only if the form still exists
if (fd_form_title->form_title != 0) {
/* callbacks for form form_paragraph */
-void ParagraphVSpaceCB(FL_OBJECT* obj, long )
+extern "C" void ParagraphVSpaceCB(FL_OBJECT* obj, long )
{
// "Synchronize" the choices and input fields, making it
// impossible to commit senseless data.
}
-void ParagraphApplyCB(FL_OBJECT *, long)
+extern "C" void ParagraphApplyCB(FL_OBJECT *, long)
{
if (!current_view->available())
return;
}
-void ParagraphCancelCB(FL_OBJECT *, long)
+extern "C" void ParagraphCancelCB(FL_OBJECT *, long)
{
fl_hide_form(fd_form_paragraph->form_paragraph);
}
-void ParagraphOKCB(FL_OBJECT *ob, long data)
+extern "C" void ParagraphOKCB(FL_OBJECT *ob, long data)
{
ParagraphApplyCB(ob, data);
ParagraphCancelCB(ob, data);
/* callbacks for form form_character */
-void CharacterApplyCB(FL_OBJECT *, long)
+extern "C" void CharacterApplyCB(FL_OBJECT *, long)
{
// we set toggleall locally here, since it should be true for
// all other uses of ToggleAndShow() (JMarc)
}
-void CharacterCloseCB(FL_OBJECT *, long)
+extern "C" void CharacterCloseCB(FL_OBJECT *, long)
{
fl_hide_form(fd_form_character->form_character);
}
-void CharacterOKCB(FL_OBJECT *ob, long data)
+extern "C" void CharacterOKCB(FL_OBJECT *ob, long data)
{
CharacterApplyCB(ob,data);
CharacterCloseCB(ob,data);
}
-void ChoiceClassCB(FL_OBJECT *ob, long)
+extern "C" void ChoiceClassCB(FL_OBJECT *ob, long)
{
ProhibitInput();
if (lyxstyle.Load(fl_get_choice(ob)-1)) {
}
-void DocumentDefskipCB(FL_OBJECT *obj, long)
+extern "C" void DocumentDefskipCB(FL_OBJECT *obj, long)
{
// "Synchronize" the choice and the input field, so that it
// is impossible to commit senseless data.
}
-void DocumentSpacingCB(FL_OBJECT *obj, long)
+extern "C" void DocumentSpacingCB(FL_OBJECT *obj, long)
{
// "Synchronize" the choice and the input field, so that it
// is impossible to commit senseless data.
}
-void DocumentApplyCB(FL_OBJECT *, long)
+extern "C" void DocumentApplyCB(FL_OBJECT *, long)
{
bool redo = false;
BufferParams *params = &(current_view->currentBuffer()->params);
}
-void DocumentCancelCB(FL_OBJECT *, long)
+extern "C" void DocumentCancelCB(FL_OBJECT *, long)
{
fl_hide_form(fd_form_document->form_document);
}
-void DocumentOKCB(FL_OBJECT *ob, long data)
+extern "C" void DocumentOKCB(FL_OBJECT *ob, long data)
{
DocumentCancelCB(ob,data);
DocumentApplyCB(ob,data);
}
-void DocumentBulletsCB(FL_OBJECT *, long)
+extern "C" void DocumentBulletsCB(FL_OBJECT *, long)
{
bulletForm();
// bullet callbacks etc. in bullet_panel.C -- ARRae
/* callbacks for form form_quotes */
-void QuotesApplyCB(FL_OBJECT *, long)
+extern "C" void QuotesApplyCB(FL_OBJECT *, long)
{
if (!current_view->available())
return;
}
-void QuotesCancelCB(FL_OBJECT *, long)
+extern "C" void QuotesCancelCB(FL_OBJECT *, long)
{
fl_hide_form(fd_form_quotes->form_quotes);
}
-void QuotesOKCB(FL_OBJECT *ob, long data)
+extern "C" void QuotesOKCB(FL_OBJECT *ob, long data)
{
QuotesApplyCB(ob, data);
QuotesCancelCB(ob, data);
/* callbacks for form form_preamble */
-void PreambleCancelCB(FL_OBJECT *, long)
+extern "C" void PreambleCancelCB(FL_OBJECT *, long)
{
fl_hide_form(fd_form_preamble->form_preamble);
}
-void PreambleApplyCB(FL_OBJECT *, long)
+extern "C" void PreambleApplyCB(FL_OBJECT *, long)
{
if (!current_view->available())
return;
}
-void PreambleOKCB(FL_OBJECT *ob, long data)
+extern "C" void PreambleOKCB(FL_OBJECT *ob, long data)
{
PreambleApplyCB(ob, data);
PreambleCancelCB(ob, data);
/* callbacks for form form_table */
-void TableApplyCB(FL_OBJECT *, long)
+extern "C" void TableApplyCB(FL_OBJECT *, long)
{
int xsize,ysize;
if (!current_view->getScreen())
}
-void TableCancelCB(FL_OBJECT *, long)
+extern "C" void TableCancelCB(FL_OBJECT *, long)
{
fl_hide_form(fd_form_table->form_table);
}
-void TableOKCB(FL_OBJECT *ob, long data)
+extern "C" void TableOKCB(FL_OBJECT *ob, long data)
{
TableApplyCB(ob,data);
TableCancelCB(ob,data);
/* callbacks for form form_print */
-void PrintCancelCB(FL_OBJECT *, long)
+extern "C" void PrintCancelCB(FL_OBJECT *, long)
{
fl_hide_form(fd_form_print->form_print);
}
return strspn(cstr,cset) == strlen(cstr) ;
}
-void PrintApplyCB(FL_OBJECT *, long)
+extern "C" void PrintApplyCB(FL_OBJECT *, long)
{
if (!current_view->available())
return;
}
-void PrintOKCB(FL_OBJECT *ob, long data)
+extern "C" void PrintOKCB(FL_OBJECT *ob, long data)
{
PrintCancelCB(ob, data);
PrintApplyCB(ob,data);
/* callbacks for form form_figure */
-void FigureApplyCB(FL_OBJECT *, long)
+extern "C" void FigureApplyCB(FL_OBJECT *, long)
{
if (!current_view->available())
return;
}
-void FigureCancelCB(FL_OBJECT *, long)
+extern "C" void FigureCancelCB(FL_OBJECT *, long)
{
fl_hide_form(fd_form_figure->form_figure);
}
-void FigureOKCB(FL_OBJECT *ob, long data)
+extern "C" void FigureOKCB(FL_OBJECT *ob, long data)
{
FigureApplyCB(ob,data);
FigureCancelCB(ob,data);
}
-void ScreenApplyCB(FL_OBJECT *, long)
+extern "C" void ScreenApplyCB(FL_OBJECT *, long)
{
lyxrc->roman_font_name = fl_get_input(fd_form_screen->input_roman);
lyxrc->sans_font_name = fl_get_input(fd_form_screen->input_sans);
}
-void ScreenCancelCB(FL_OBJECT *, long)
+extern "C" void ScreenCancelCB(FL_OBJECT *, long)
{
fl_hide_form(fd_form_screen->form_screen);
}
-void ScreenOKCB(FL_OBJECT *ob, long data)
+extern "C" void ScreenOKCB(FL_OBJECT *ob, long data)
{
ScreenCancelCB(ob,data);
ScreenApplyCB(ob,data);
static TocList* toclist = 0;
-void TocSelectCB(FL_OBJECT *ob, long)
+extern "C" void TocSelectCB(FL_OBJECT *ob, long)
{
if (!current_view->available())
return;
}
-void TocCancelCB(FL_OBJECT *, long)
+extern "C" void TocCancelCB(FL_OBJECT *, long)
{
fl_hide_form(fd_form_toc->form_toc);
}
-void TocUpdateCB(FL_OBJECT *, long)
+extern "C" void TocUpdateCB(FL_OBJECT *, long)
{
static LyXParagraph* stapar = 0;
TocList *tmptoclist = 0;
/* callbacks for form form_ref */
-void RefSelectCB(FL_OBJECT *, long data)
+extern "C" void RefSelectCB(FL_OBJECT *, long data)
{
if (!current_view->available())
return;
}
-void RefUpdateCB(FL_OBJECT *, long)
+extern "C" void RefUpdateCB(FL_OBJECT *, long)
{
if (!current_view->available()) {
fl_clear_browser(fd_form_ref->browser_ref);
}
-void RefHideCB(FL_OBJECT *, long)
+extern "C" void RefHideCB(FL_OBJECT *, long)
{
fl_hide_form(fd_form_ref->form_ref);
}
extern bool BindFileSet;
///
-extern void FootCB(FL_OBJECT *, long);
+extern "C" void FootCB(FL_OBJECT *, long);
///
extern void EmphCB();
///
///
extern void NounCB();
///
-extern void MarginCB(FL_OBJECT *, long);
+extern "C" void MarginCB(FL_OBJECT *, long);
///
-extern void FigureCB(FL_OBJECT *, long);
+extern "C" void FigureCB(FL_OBJECT *, long);
///
-extern void TableCB(FL_OBJECT *, long);
+extern "C" void TableCB(FL_OBJECT *, long);
///
-extern void MeltCB(FL_OBJECT *, long);
+extern "C" void MeltCB(FL_OBJECT *, long);
///
extern void TexCB();
///
-extern void DepthCB(FL_OBJECT *, long);
+extern "C" void DepthCB(FL_OBJECT *, long);
///
extern void FreeCB();
///
};
-static int LyX_XErrHandler(Display *display, XErrorEvent *xeev)
+extern "C" int LyX_XErrHandler(Display *display, XErrorEvent *xeev)
{
//#warning Please see if you can trigger this!
// emergency save
extern void HideFiguresPopups();
// Prevents LyX from being killed when the close box is pressed in a popup.
-int CancelCloseBoxCB(FL_FORM *, void *)
+extern "C" int CancelCloseBoxCB(FL_FORM *, void *)
{
return FL_CANCEL;
}
// Prevents LyX from being killed when the close box is pressed in a popup.
-int IgnoreCloseBoxCB(FL_FORM *, void *)
+extern "C" int IgnoreCloseBoxCB(FL_FORM *, void *)
{
return FL_IGNORE;
}
#define FD_xsendfax_h_
/** Callbacks, globals and object handlers **/
-extern void FaxSendCB(FL_OBJECT *, long);
-extern void FaxCancelCB(FL_OBJECT *, long);
-extern void FaxApplyCB(FL_OBJECT *, long);
-extern void FaxOpenPhonebookCB(FL_OBJECT *, long);
-extern void cb_add_phoneno(FL_OBJECT *, long);
-extern void cb_delete_phoneno(FL_OBJECT *, long);
-extern void cb_save_phoneno(FL_OBJECT *, long);
+extern "C" void FaxSendCB(FL_OBJECT *, long);
+extern "C" void FaxCancelCB(FL_OBJECT *, long);
+extern "C" void FaxApplyCB(FL_OBJECT *, long);
+extern "C" void FaxOpenPhonebookCB(FL_OBJECT *, long);
+extern "C" void cb_add_phoneno(FL_OBJECT *, long);
+extern "C" void cb_delete_phoneno(FL_OBJECT *, long);
+extern "C" void cb_save_phoneno(FL_OBJECT *, long);
-extern void cb_select_phoneno(FL_OBJECT *, long);
+extern "C" void cb_select_phoneno(FL_OBJECT *, long);
-extern void FaxLogfileCloseCB(FL_OBJECT *, long);
+extern "C" void FaxLogfileCloseCB(FL_OBJECT *, long);
/**** Forms and Objects ****/
#define FD_panel_h_
/** Callbacks, globals and object handlers **/
+extern "C" {
extern void button_cb(FL_OBJECT *, long);
extern void delim_cb(FL_OBJECT *, long);
extern void deco_cb(FL_OBJECT *, long);
extern void space_cb(FL_OBJECT *, long);
-
+}
/**** Forms and Objects ****/
typedef struct {
}
}
-int align_filter(FL_OBJECT *, char const *, char const *cur, int c)
+extern "C" int align_filter(FL_OBJECT *, char const *, char const *cur, int c)
{
int n = (int)(fl_get_slider_value(fd_matrix->columns)+0.5) - strlen(cur);
return ((c=='c'||c=='l'||c=='r') && n>=0) ? FL_VALID: FL_INVALID;
}
}
-int AtClose_symbols_form(FL_FORM *, void *)
+extern "C" int AtClose_symbols_form(FL_FORM *, void *)
{
free_symbols_form();
return FL_IGNORE;
}
-
void show_symbols_form(LyXFunc *lf)
{
lyxfunc = lf;
if (!fd_panel) {
fd_panel = create_math_panel();
fl_register_raw_callback(fd_panel->panel,
- ButtonPressMask|KeyPressMask, peek_event);
+ ButtonPressMask|KeyPressMask, C_peek_event);
create_symbol_menues(fd_panel);
fl_set_form_atclose(fd_panel->panel, AtClose_symbols_form, 0);
}
///
typedef FL_OBJECT* FL_OBJECTP;
-extern "C" {
- int peek_event(FL_FORM *, void *);
-}
-
/// Class to manage bitmap menu bars
class BitmapMenu {
///
static BitmapMenu *active;
///
friend int peek_event(FL_FORM *, void *);
- protected:
+protected:
///
BitmapMenu *next, *prev;
///
int GetIndex(FL_OBJECT* ob);
};
+// This is just a wrapper around peek_event()
+extern "C" int C_peek_event(FL_FORM *form, void *ptr);
+
inline
void BitmapMenu::Prev() {
#endif
#include <algorithm>
+#ifdef WITH_WARNINGS
+#warning Is it safe to use 'using' unconditionnally?
+#endif
+using std::max;
#include "lyx_main.h"
#include "buffer.h"
};
extern char** mathed_get_pixmap_from_icon(int d);
-static void math_cb(FL_OBJECT*, long);
+extern "C" void math_cb(FL_OBJECT*, long);
static char** pixmapFromBitmapData(char const *, int, int);
void math_insert_symbol(char const* s);
Bool math_insert_greek(char const c);
bitmap[i]->u_vdata = this;
}
fl_end_form();
- fl_register_raw_callback(form, KeyPressMask, peek_event);
+ fl_register_raw_callback(form, KeyPressMask, C_peek_event);
}
int BitmapMenu::GetIndex(FL_OBJECT* ob)
return -1;
}
-extern "C" {
int peek_event(FL_FORM * /*form*/, void *xev)
{
if (BitmapMenu::active==0)
}
return 0;
}
+
+// This is just a wrapper.
+extern "C" int C_peek_event(FL_FORM *form, void *ptr) {
+ return peek_event(form,ptr);
}
-static void math_cb(FL_OBJECT* ob, long data)
+
+extern "C" void math_cb(FL_OBJECT* ob, long data)
{
BitmapMenu* menu = (BitmapMenu*)ob->u_vdata;
int i = menu->GetIndex(ob);
{ LM_ddagger, LMB_OPERATOR }
};
-static int compara(const void *a, const void *b)
+extern "C" int compara(const void *a, const void *b)
{
int i = ((binary_op_pair const *)a)->id, j = ((binary_op_pair const*)b)->id;
return i - j;
#define FD_form_print_h_
/** Callbacks, globals and object handlers **/
-extern void PrintOKCB(FL_OBJECT *, long);
-extern void PrintApplyCB(FL_OBJECT *, long);
-extern void PrintCancelCB(FL_OBJECT *, long);
+extern "C" void PrintOKCB(FL_OBJECT *, long);
+extern "C" void PrintApplyCB(FL_OBJECT *, long);
+extern "C" void PrintCancelCB(FL_OBJECT *, long);
-extern void SendtoOKCB(FL_OBJECT *, long);
-extern void SendtoApplyCB(FL_OBJECT *, long);
-extern void SendtoCancelCB(FL_OBJECT *, long);
+extern "C" void SendtoOKCB(FL_OBJECT *, long);
+extern "C" void SendtoApplyCB(FL_OBJECT *, long);
+extern "C" void SendtoCancelCB(FL_OBJECT *, long);
/**** Forms and Objects ****/
#define FD_form_spell_options_h_
/** Callbacks, globals and object handlers **/
-extern void SpellOptionsOKCB(FL_OBJECT *, long);
-extern void SpellOptionsCancelCB(FL_OBJECT *, long);
-extern void SpellOptionsApplyCB(FL_OBJECT *, long);
+extern "C" void SpellOptionsOKCB(FL_OBJECT *, long);
+extern "C" void SpellOptionsCancelCB(FL_OBJECT *, long);
+extern "C" void SpellOptionsApplyCB(FL_OBJECT *, long);
#include <iostream>
#endif
-#ifdef MODERN_STL
+//#ifdef MODERN_STL
using std::ostream;
using std::streambuf;
using std::streamsize;
using std::cerr;
using std::ios;
using std::endl;
-#endif
+//#endif
#ifdef TEST_DEBUGSTREAM
#include <string>
//#include "debug.h"
+using std::count;
+
bool isStrInt(string const & str)
{
if (str.empty()) return false;
#include "LAssert.h"
+using std::min;
+
// Reference count has been checked, empty_rep removed and
// introduced again in a similar guise. Where is empty_rep _really_
// needed?
#include "layout_std.xpm"
#include "build.xpm"
+// this one is not "C" because combox callbacks are really C++ %-|
extern void LayoutsCB(int, void*);
extern char** get_pixmap_from_symbol(char const *arg, int, int);
extern LyXAction lyxaction;