]> git.lyx.org Git - lyx.git/blobdiff - src/toolbar.C
use the new bufferstorage (this change only deletes all references to the old one
[lyx.git] / src / toolbar.C
index 530c539515e5fa04450c30579e7979e57d90cb88..7a5a68a7370ac6462e386356a15adceb5918ed2b 100644 (file)
@@ -1,15 +1,15 @@
 /* This file is part of
-* ======================================================
-* 
-*           LyX, The Document Processor
-*
-*          Copyright (C) 1995 Matthias Ettrich
-*           Copyright (C) 1995-1998 The LyX Team.
-*
-*           This file is Copyright 1996-1998
-*           Lars Gullik Bjønnes
-*
-*======================================================*/
+ * ====================================================== 
+ 
+ *           LyX, The Document Processor
+ *
+ *           Copyright 1995 Matthias Ettrich
+ *           Copyright 1995-1999 The LyX Team.
+ *
+ *           This file is Copyright 1996-1998
+ *           Lars Gullik Bjønnes
+ *
+ * ====================================================== */
 
 //  Added pseudo-action handling, asierra 180296
 
@@ -25,7 +25,7 @@
 #include "toolbar.h"
 #include "lyxfunc.h"
 #include "lyxlex.h"
-#include "error.h"
+#include "debug.h"
 #include "combox.h"
 #include "lyx_cb.h"
 #include "LyXView.h"
@@ -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;
@@ -127,21 +128,26 @@ Toolbar::Toolbar(Toolbar const &rct, LyXView *o, int x, int y)
        toolbarItem *tmplist = rct.toollist;
        while (tmplist != 0) {
                add(tmplist->action);
-               lyxerr.debug(string("tool action: ") + tostr(tmplist->action),
-                             Error::TOOLBAR);
-               tmplist=tmplist->next;
+               lyxerr[Debug::TOOLBAR] << "tool action: "
+                                      << tmplist->action << endl;
+               tmplist= tmplist->next;
        }
 }
 
 
 // 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,10 +168,16 @@ 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()
 {
-       toolbarItem *item, *tmp=0;
+       toolbarItem *item, *tmp= 0;
        item = toollist;
        while(item){
                tmp = item->next;
@@ -179,7 +191,7 @@ void Toolbar::activate()
 
 void Toolbar::deactivate()
 {
-       toolbarItem *item, *tmp=0;
+       toolbarItem *item, *tmp= 0;
        item = toollist;
        while(item){
                tmp = item->next;
@@ -197,9 +209,13 @@ void Toolbar::ToolbarCB(FL_OBJECT *ob, long ac)
        
        string res = t->owner->getLyXFunc()->Dispatch(int(ac));
        if(!res.empty())
-               lyxerr.debug(res, Error::TOOLBAR); 
+               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)
 {
@@ -272,7 +288,7 @@ void Toolbar::set(bool doingmain)
        // add the time if it don't exist
        if (bubble_timer == 0)
                bubble_timer = fl_add_timer(FL_HIDDEN_TIMER,
-                                           xpos,ypos,0,0,"Timer");
+                                           xpos, ypos, 0, 0, "Timer");
        
        while(item != 0) {
                switch(item->action){
@@ -293,22 +309,22 @@ void Toolbar::set(bool doingmain)
                          break;
                  default:
                          xpos += standardspacing;
-                         item->icon = obj =
+                         item->icon = obj = 
                                  fl_add_pixmapbutton(FL_NORMAL_BUTTON,
-                                                     xpos,ypos,
+                                                     xpos, ypos,
                                                      buttonwidth,
-                                                     height,"");
-                         fl_set_object_boxtype(obj,FL_UP_BOX);
-                         fl_set_object_color(obj,FL_MCOL,FL_BLUE);
+                                                     height, "");
+                         fl_set_object_boxtype(obj, FL_UP_BOX);
+                         fl_set_object_color(obj, FL_MCOL, FL_BLUE);
                          fl_set_object_resize(obj, FL_RESIZE_ALL);
                          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
-                         fl_set_pixmapbutton_focus_outline(obj,0);
+                         fl_set_pixmapbutton_focus_outline(obj, 0);
 #endif
 
                          // set the bubble-help (Matthias)
@@ -317,9 +333,9 @@ 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);
+                         fl_set_pixmapbutton_data(obj, item->pixmap);
                          item = item->next;
                          // we must remember to update the positions
                          xpos += buttonwidth;
@@ -424,8 +440,8 @@ void Toolbar::add(int action, bool doclean)
        if (!doclean && owner) {
                // first «hide» the toolbar buttons. This is not a real hide
                // actually it deletes and frees the button altogether.
-               lyxerr.print("Toolbar::add: «hide» the toolbar buttons.");
-               toolbarItem *item, *tmp=0;
+               lyxerr << "Toolbar::add: «hide» the toolbar buttons." << endl;
+               toolbarItem *item, *tmp= 0;
                item = toollist;
 
                lightReset();
@@ -461,7 +477,7 @@ void Toolbar::add(int action, bool doclean)
                help = lyxaction.helpText(act);
                help += " ";
                help += arg;
-               lyxerr.debug(string("Pseudo action ") + tostr(action));
+               lyxerr.debug() << "Pseudo action " << action << endl;
        } else {
                pixmap = getPixmap((kb_action)action);
                help = lyxaction.helpText((kb_action)action);
@@ -497,8 +513,8 @@ void Toolbar::add(string const & func, bool doclean)
        int tf = lyxaction.LookupFunc(func.c_str());
 
        if (tf == -1){
-               lyxerr.print("Toolbar::add: no LyX command called`"
-                               +func+"'exists!")
+               lyxerr << "Toolbar::add: no LyX command called`"
+                      << func << "'exists!" << endl
        } else {
                add(tf, doclean);
        }
@@ -520,26 +536,26 @@ void Toolbar::clean()
                delete item;
                item = tmp;
        }
-       //lyxerr.print(string("Combox: ") + int(combox));
+       lyxerr[Debug::TOOLBAR] << "Combox: " << combox << endl;
        if (combox) {
                delete combox;
                combox = 0;
        }
        if (owner)
                fl_unfreeze_form(owner->getForm());
-       lyxerr.debug("toolbar cleaned",Error::TOOLBAR);
+       lyxerr[Debug::TOOLBAR] << "toolbar cleaned" << endl;
        cleaned = true;
 }
 
 
 void Toolbar::push(int nth)
 {
-       lyxerr.debug(string("Toolbar::push: trying to trigger no `")+ tostr(nth)+'\'',
-                     Error::TOOLBAR);
+       lyxerr[Debug::TOOLBAR] << "Toolbar::push: trying to trigger no `"
+                              << nth << '\'' << endl;
        
        if (nth == 0) return;
 
-       int count=0;
+       int count= 0;
        toolbarItem *tmp = toollist;
        while (tmp) {
                count++;
@@ -558,8 +574,8 @@ void Toolbar::read(LyXLex &lex)
 {
        //consistency check
        if (lex.GetString() != "\\begin_toolbar")
-               lyxerr.print("Toolbar::read: ERROR wrong token:`"
-                               +lex.GetString()+'\''); 
+               lyxerr << "Toolbar::read: ERROR wrong token:`"
+                      << lex.GetString() << '\'' << endl;
 
        clean();
        string func;
@@ -567,20 +583,21 @@ void Toolbar::read(LyXLex &lex)
        
        lex.pushTable(toolTags, TO_LAST - 1);
 
-       if (lyxerr.debugging(Error::LEX_PARSER))
+       if (lyxerr.debugging(Debug::PARSER))
                lex.printTable();
        
        while (lex.IsOK() && !quit) {
                
-               lyxerr.debug("Toolbar::read: current lex text: `"
-                               +lex.GetString()+'\'',Error::TOOLBAR);
+               lyxerr[Debug::TOOLBAR] << "Toolbar::read: current lex text: `"
+                                      << lex.GetString() << '\'' << endl;
 
                switch(lex.lex()) {
                  case TO_ADD:
                          if (lex.EatLine()) {
                                  func = lex.GetString();
-                                 lyxerr.debug("Toolbar::read TO_ADD func: `"
-                                              + func + "'", Error::TOOLBAR);
+                                 lyxerr[Debug::TOOLBAR]
+                                         << "Toolbar::read TO_ADD func: `"
+                                         << func << "'" << endl;
                                  add(func);
                          }
                          break;