X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ftoolbar.C;h=28ff89134d30e26ab174e1b5f5d119769d4f8344;hb=a858be7332e331e0244e4dba7b0931b6072ffd3d;hp=4dba7ea114eb26a8957f95c8563d624e3141a58a;hpb=35584afc1162dec2cf9fff79305e95cb3b75aefb;p=lyx.git diff --git a/src/toolbar.C b/src/toolbar.C index 4dba7ea114..28ff89134d 100644 --- a/src/toolbar.C +++ b/src/toolbar.C @@ -92,6 +92,7 @@ #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; @@ -135,13 +136,18 @@ Toolbar::Toolbar(Toolbar const &rct, LyXView *o, int x, int y) // timer-cb for bubble-help (Matthias) -void Toolbar::BubbleTimerCB(FL_OBJECT *, long data){ +void Toolbar::BubbleTimerCB(FL_OBJECT *, long data) +{ FL_OBJECT* ob = (FL_OBJECT*) data; char* help = (char*) ob->u_vdata; fl_show_oneliner(help, ob->form->x + ob->x, ob->form->y + ob->y + ob->h); } +extern "C" void C_Toolbar_BubbleTimerCB(FL_OBJECT *ob, long data) +{ + Toolbar::BubbleTimerCB(ob, data); +} // post_handler for bubble-help (Matthias) int Toolbar::BubblePost(FL_OBJECT *ob, int event, @@ -152,7 +158,7 @@ int Toolbar::BubblePost(FL_OBJECT *ob, int event, if(event == FL_ENTER && !help.empty()){ fl_set_object_callback(t->bubble_timer, - BubbleTimerCB, (long) ob); + C_Toolbar_BubbleTimerCB, (long) ob); fl_set_timer(t->bubble_timer, 1); } else if(event != FL_MOTION){ @@ -162,6 +168,12 @@ int Toolbar::BubblePost(FL_OBJECT *ob, int event, return 0; } +extern "C" int C_Toolbar_BubblePost(FL_OBJECT *ob, int event, + FL_Coord /*mx*/, FL_Coord /*my*/, + int key, void *xev) +{ + return Toolbar::BubblePost(ob,event,0,0,key,xev); +} void Toolbar::activate() { @@ -200,6 +212,10 @@ void Toolbar::ToolbarCB(FL_OBJECT *ob, long ac) lyxerr[Debug::TOOLBAR] << res << endl; } +extern "C" void C_Toolbar_ToolbarCB(FL_OBJECT *ob, long data) +{ + Toolbar::ToolbarCB(ob, data); +} int Toolbar::get_toolbar_func(string const & func) { @@ -304,7 +320,7 @@ void Toolbar::set(bool doingmain) fl_set_object_gravity(obj, NorthWestGravity, NorthWestGravity); - fl_set_object_callback(obj,ToolbarCB, + fl_set_object_callback(obj,C_Toolbar_ToolbarCB, (long)item->action); #if FL_REVISION >85 // Remove the blue feedback rectangle @@ -317,7 +333,7 @@ void Toolbar::set(bool doingmain) // belongs too. (Lgb) obj->u_ldata = (long) this; - fl_set_object_posthandler(obj, BubblePost); + fl_set_object_posthandler(obj, C_Toolbar_BubblePost); fl_set_pixmapbutton_data(obj,item->pixmap); item = item->next;