]> git.lyx.org Git - lyx.git/blobdiff - src/insets/figinset.C
Don't remove cell selections after fontchange.
[lyx.git] / src / insets / figinset.C
index 64f1e288cb0aa62859271b5beb87b0260c009e7e..9bf32f5e6b47ba5a17f68a63a033ffbcb43e9815 100644 (file)
 
 #include <config.h>
 
-#include <fstream>
-#include <queue>
-#include <list>
-#include <algorithm>
-#include <vector>
-#include <utility>
-
-#include <unistd.h>
-#include <csignal>
-#include <sys/wait.h>
-
-#include FORMS_H_LOCATION
-#include <cstdlib>
-#include <cctype>
-#include <cmath>
-
 #include "figinset.h"
+
 #include "lyx_main.h"
 #include "buffer.h"
-#include "frontends/FileDialog.h"
-#include "support/filetools.h"
 #include "LyXView.h" // just because of form_main
 #include "debug.h"
 #include "LaTeXFeatures.h"
 #include "lyxrc.h"
 #include "gettext.h"
 #include "lyx_gui_misc.h" // CancelCloseBoxCB
-#include "support/FileInfo.h"
-#include "support/lyxlib.h"
-#include "support/os.h"
 #include "Painter.h"
 #include "font.h"
 #include "bufferview_funcs.h"
 #include "ColorHandler.h"
 #include "converter.h"
+#include "BufferView.h"
+
+#include "frontends/FileDialog.h"
+#include "frontends/Alert.h" 
 #include "frontends/Dialogs.h" // redrawGUI
 
+#include "support/FileInfo.h"
+#include "support/lyxlib.h"
+#include "support/os.h"
+#include "support/filetools.h"
+
+#include <fstream>
+#include <queue>
+#include <list>
+#include <algorithm>
+#include <vector>
+#include <utility>
+
+#include <unistd.h>
+#include <csignal>
+#include <sys/wait.h>
+#include <cstdlib>
+#include <cctype>
+#include <cmath>
+#include <cerrno>
+
 using std::ostream;
 using std::istream;
 using std::ofstream;
@@ -75,10 +79,20 @@ using std::vector;
 using std::find;
 using std::flush;
 using std::endl;
-using std::ostringstream;
 using std::copy;
 using std::pair;
 using std::make_pair;
+using std::ios;
+using std::ostream_iterator;
+
+#ifndef CXX_GLOBAL_CSTD
+using std::memcpy;
+using std::sin;
+using std::cos;
+using std::fabs;
+#endif
+
+
 
 extern BufferView * current_view;
 extern FL_OBJECT * figinset_canvas;
@@ -146,7 +160,7 @@ void addpidwait(int pid)
        if (lyxerr.debugging()) {
                lyxerr << "Pids to wait for: \n";
                copy(pidwaitlist.begin(), pidwaitlist.end(),
-                    std::ostream_iterator<int>(lyxerr, "\n"));
+                    ostream_iterator<int>(lyxerr, "\n"));
                lyxerr << flush;
        }
 }
@@ -167,7 +181,9 @@ void kill_gs(int pid, int sig)
 }
 
 
-extern "C"
+extern "C" {
+       
+static
 int GhostscriptMsg(XEvent * ev, void *)
 {
        // bin all events not of interest
@@ -223,7 +239,7 @@ int GhostscriptMsg(XEvent * ev, void *)
                                // now fork rendering process
                                forkstat = fork();
                                if (forkstat == -1) {
-                                       lyxerr.debug()
+                                       lyxerr[Debug::INFO]
                                                << "Cannot fork, using slow "
                                                "method for pixmap translation." << endl;
                                        tmpdisp = fl_get_display();
@@ -303,6 +319,8 @@ int GhostscriptMsg(XEvent * ev, void *)
        return FL_PREEMPT;
 }
 
+}
+
 
 void AllocColors(int num)
 // allocate color cube numxnumxnum, if possible
@@ -378,6 +396,7 @@ void AllocGrays(int num)
        gs_color = true;
 }
 
+
 void InitFigures()
 {
        // if bitmaps and figures are not empty we will leak mem
@@ -402,10 +421,10 @@ void InitFigures()
                               vi->visualid, vi->c_class, 
                               vi->bits_per_rgb, vi->map_entries);
                }
-               color_visual = ( (vi->c_class == StaticColor) ||
+               color_visual = ((vi->c_class == StaticColor) ||
                                 (vi->c_class == PseudoColor) ||
                                 (vi->c_class == TrueColor) ||
-                                (vi->c_class == DirectColor) );
+                                (vi->c_class == DirectColor));
                if ((vi->c_class & 1) == 0) return;
                // now allocate colors
                if (vi->c_class == GrayScale) {
@@ -428,7 +447,7 @@ void DoneFigures()
        bitmaps.clear();
        figures.clear();
        
-       lyxerr.debug() << "Unregistering figures..." << endl;
+       lyxerr[Debug::INFO] << "Unregistering figures..." << endl;
 }
 
 
@@ -454,7 +473,7 @@ void runqueue()
 {
        // This _have_ to be set before the fork!
        unsigned long background_pixel =
-               lyxColorHandler->colorPixel(LColor::background);
+               lyxColorHandler->colorPixel(LColor::graphicsbg);
        
        // run queued requests for ghostscript, if any
        if (!gsrunning && gs_color && !gs_xcolor) {
@@ -501,7 +520,7 @@ void runqueue()
 
                        // create translation file
                        ofstream ofs;
-                       ofs.open(make_tmp(getpid()).c_str());
+                       ofs.open(make_tmp(getpid()).c_str(), ios::binary);
                        ofs << "gsave clippath pathbbox grestore\n"
                            << "4 dict begin\n"
                            << "/ury exch def /urx exch def /lly exch def "
@@ -630,10 +649,10 @@ void runqueue()
                        env = new char_p[ne + 2];
                        string tmp = t2.str().c_str();
                        env[0] = new char[tmp.size() + 1];
-                       std::copy(tmp.begin(), tmp.end(), env[0]);
+                       copy(tmp.begin(), tmp.end(), env[0]);
                        env[0][tmp.size()] = '\0';
-                       std::memcpy(&env[1], environ,
-                                   sizeof(char*) * (ne + 1));
+                       memcpy(&env[1], environ,
+                              sizeof(char*) * (ne + 1));
                        environ = env;
 
                        // now make gs command
@@ -666,7 +685,7 @@ void runqueue()
                        // if we are still there, an error occurred.
                        lyxerr << "Error executing ghostscript. "
                               << "Code: " << err << endl;
-                       lyxerr.debug() << "Cmd: " 
+                       lyxerr[Debug::INFO] << "Cmd: " 
                                       << lyxrc.ps_command
                                       << " -sDEVICE=x11 "
                                       << tmpf << ' '
@@ -789,18 +808,18 @@ void makeupdatelist(figdata * p)
 // this func is only "called" in spellchecker.C
 void sigchldchecker(pid_t pid, int * status)
 {
-       lyxerr.debug() << "Got pid = " << pid << endl;
+       lyxerr[Debug::INFO] << "Got pid = " << pid << endl;
        bool pid_handled = false;
        for (bitmaps_type::iterator it = bitmaps.begin();
             it != bitmaps.end(); ++it) {
                if ((*it)->reading && pid == (*it)->gspid) {
-                       lyxerr.debug() << "Found pid in bitmaps" << endl;
+                       lyxerr[Debug::INFO] << "Found pid in bitmaps" << endl;
                        // now read the file and remove it from disk
                        figdata * p = (*it);
                        p->reading = false;
                        if ((*it)->gsdone) *status = 0;
                        if (*status == 0) {
-                               lyxerr.debug() << "GS [" << pid
+                               lyxerr[Debug::INFO] << "GS [" << pid
                                               << "] exit OK." << endl;
                        } else {
                                lyxerr << "GS [" << pid  << "] error "
@@ -826,18 +845,18 @@ void sigchldchecker(pid_t pid, int * status)
                }
        }
        if (!pid_handled) {
-               lyxerr.debug() << "Checking pid in pidwait" << endl;
+               lyxerr[Debug::INFO] << "Checking pid in pidwait" << endl;
                list<int>::iterator it = find(pidwaitlist.begin(),
                                              pidwaitlist.end(), pid);
                if (it != pidwaitlist.end()) {
-                       lyxerr.debug() << "Found pid in pidwait\n"
+                       lyxerr[Debug::INFO] << "Found pid in pidwait\n"
                                       << "Caught child pid of recompute "
                                "routine" << pid << endl;
                        pidwaitlist.erase(it);
                }
        }
        if (pid == -1) {
-               lyxerr.debug() << "waitpid error" << endl;
+               lyxerr[Debug::INFO] << "waitpid error" << endl;
                switch (errno) {
                case ECHILD:
                        lyxerr << "The process or process group specified by "
@@ -861,7 +880,7 @@ void sigchldchecker(pid_t pid, int * status)
        } else if (pid == 0) {
                lyxerr << "waitpid nohang" << endl;;
        } else {
-               lyxerr.debug() << "normal exit from childhandler" << endl;
+               lyxerr[Debug::INFO] << "normal exit from childhandler" << endl;
        }
 }
 
@@ -888,7 +907,7 @@ void RegisterFigure(InsetFig * fi)
        figures.push_back(tmpfig);
        fi->figure = tmpfig;
 
-       if (lyxerr.debugging()) {
+       if (lyxerr.debugging() && current_view) {
                lyxerr << "Register Figure: buffer:["
                       << current_view->buffer() << "]" << endl;
        }
@@ -1040,9 +1059,9 @@ void InsetFig::draw(BufferView * bv, LyXFont const & f,
 }
 
 
-void InsetFig::Write(Buffer const *, ostream & os) const
+void InsetFig::write(Buffer const *, ostream & os) const
 {
-       Regenerate();
+       regenerate();
        os << "Figure size " << wid << " " << hgh << "\n";
        if (!fname.empty()) {
                string buf1 = OnlyPath(owner->fileName());
@@ -1059,16 +1078,16 @@ void InsetFig::Write(Buffer const *, ostream & os) const
 }
 
 
-void InsetFig::Read(Buffer const *, LyXLex & lex)
+void InsetFig::read(Buffer const *, LyXLex & lex)
 {
        string buf;
        bool finished = false;
        
-       while (lex.IsOK() && !finished) {
+       while (lex.isOK() && !finished) {
                lex.next();
 
-               string const token = lex.GetString();
-               lyxerr.debug() << "Token: " << token << endl;
+               string const token = lex.getString();
+               lyxerr[Debug::INFO] << "Token: " << token << endl;
                
                if (token.empty())
                        continue;
@@ -1076,8 +1095,8 @@ void InsetFig::Read(Buffer const *, LyXLex & lex)
                        finished = true;
                } else if (token == "file") {
                        if (lex.next()) {
-                               buf = lex.GetString();
-                               string buf1 = OnlyPath(owner->fileName());
+                               buf = lex.getString();
+                               string const buf1(OnlyPath(owner->fileName()));
                                fname = MakeAbsPath(buf, buf1);
                                changedfname = true;
                        }
@@ -1085,30 +1104,30 @@ void InsetFig::Read(Buffer const *, LyXLex & lex)
                        if (lex.next());
                        // kept for backwards compability. Delete in 0.13.x
                } else if (token == "subcaption") {
-                       if (lex.EatLine())
-                               subcaption = lex.GetString();
+                       if (lex.eatLine())
+                               subcaption = lex.getString();
                } else if (token == "label") {
                        if (lex.next());
                        // kept for backwards compability. Delete in 0.13.x
                } else if (token == "angle") {
                        if (lex.next())
-                               angle = lex.GetFloat();
+                               angle = lex.getFloat();
                } else if (token == "size") {
                        if (lex.next())
-                               wid = lex.GetInteger();
+                               wid = lex.getInteger();
                        if (lex.next())
-                               hgh = lex.GetInteger();
+                               hgh = lex.getInteger();
                } else if (token == "flags") {
                        if (lex.next())
-                               flags = pflags = lex.GetInteger();
+                               flags = pflags = lex.getInteger();
                } else if (token == "subfigure") {
                        subfigure = psubfigure = true;
                } else if (token == "width") {
                        int typ = 0;
                        if (lex.next())
-                               typ = lex.GetInteger();
+                               typ = lex.getInteger();
                        if (lex.next())
-                               xwid = lex.GetFloat();
+                               xwid = lex.getFloat();
                        switch (typ) {
                        case DEF: wtype = DEF; break;
                        case CM: wtype = CM; break;
@@ -1116,102 +1135,97 @@ void InsetFig::Read(Buffer const *, LyXLex & lex)
                        case PER_PAGE: wtype = PER_PAGE; break;
                        case PER_COL: wtype = PER_COL; break;
                        default:
-                               lyxerr.debug() << "Unknown type!" << endl;
+                               lyxerr[Debug::INFO] << "Unknown type!" << endl;
                                break;
                        }
                        twtype = wtype;
                } else if (token == "height") {
                        int typ = 0;
                        if (lex.next())
-                               typ = lex.GetInteger();
+                               typ = lex.getInteger();
                        if (lex.next())
-                               xhgh = lex.GetFloat();
+                               xhgh = lex.getFloat();
                        switch (typ) {
                        case DEF: htype = DEF; break;
                        case CM: htype = CM; break;
                        case IN: htype = IN; break;
                        case PER_PAGE: htype = PER_PAGE; break;
                        default:
-                               lyxerr.debug() << "Unknown type!" << endl;
+                               lyxerr[Debug::INFO] << "Unknown type!" << endl;
                                break;
                        }
                        thtype = htype;
                }
        }
-       Regenerate();
-       Recompute();
+       regenerate();
+       recompute();
 }
 
 
-int InsetFig::Latex(Buffer const *, ostream & os,
+int InsetFig::latex(Buffer const *, ostream & os,
                    bool /* fragile*/, bool /* fs*/) const
 {
-       Regenerate();
+       regenerate();
        if (!cmd.empty()) os << cmd << " ";
        return 0;
 }
 
 
-int InsetFig::Ascii(Buffer const *, ostream &, int) const
+int InsetFig::ascii(Buffer const *, ostream &, int) const
 {
        return 0;
 }
 
 
-int InsetFig::Linuxdoc(Buffer const *, ostream &) const
+int InsetFig::linuxdoc(Buffer const *, ostream &) const
 {
        return 0;
 }
 
 
-int InsetFig::DocBook(Buffer const *, ostream & os) const
+int InsetFig::docbook(Buffer const *, ostream & os) const
 {
-       string buf1 = OnlyPath(owner->fileName());
+       string const buf1 = OnlyPath(owner->fileName());
        string figurename = MakeRelPath(fname, buf1);
 
        if (suffixIs(figurename, ".eps"))
                figurename.erase(figurename.length() - 4);
 
-       os << "@<graphic fileref=\"" << figurename << "\"></graphic>";
+       os << "<graphic fileref=\"" << figurename << "\"></graphic>";
        return 0;
 } 
 
 
-void InsetFig::Validate(LaTeXFeatures & features) const
+void InsetFig::validate(LaTeXFeatures & features) const
 {
-       features.graphics = true;
-       if (subfigure) features.subfigure = true;
+       features.require("graphics");
+       if (subfigure) 
+               features.require("subfigure");
 }
 
 
-Inset::EDITABLE InsetFig::Editable() const
+Inset::EDITABLE InsetFig::editable() const
 {
        return IS_EDITABLE;
 }
 
 
-bool InsetFig::Deletable() const
+bool InsetFig::deletable() const
 {
        return false;
 }
 
 
-string const InsetFig::EditMessage() const 
+string const InsetFig::editMessage() const 
 {
        return _("Opened figure");
 }
 
 
-void InsetFig::Edit(BufferView * bv, int, int, unsigned int)
+void InsetFig::edit(BufferView *, int, int, unsigned int)
 {
-       lyxerr.debug() << "Editing InsetFig." << endl;
-       Regenerate();
-
-       // We should have RO-versions of the form instead.
-       // The actual prevention of altering a readonly doc
-       // is done in CallbackFig()
-       if (bv->buffer()->isReadonly()) 
-               WarnReadonly(bv->buffer()->fileName());
+       lyxerr[Debug::INFO] << "Editing InsetFig." << endl;
+       regenerate();
 
        if (!form) {
                form = create_form_Figure();
@@ -1220,7 +1234,7 @@ void InsetFig::Edit(BufferView * bv, int, int, unsigned int)
                fl_set_object_return(form->Width, FL_RETURN_ALWAYS);
                fl_set_object_return(form->Height, FL_RETURN_ALWAYS);
        }
-       RestoreForm();
+       restoreForm();
        if (form->Figure->visible) {
                fl_raise_form(form->Figure);
        } else {
@@ -1231,7 +1245,13 @@ void InsetFig::Edit(BufferView * bv, int, int, unsigned int)
 }
 
 
-Inset * InsetFig::Clone(Buffer const & buffer) const
+void InsetFig::edit(BufferView * bv, bool)
+{
+       edit(bv, 0, 0, 0);
+}
+
+
+Inset * InsetFig::clone(Buffer const & buffer, bool) const
 {
        InsetFig * tmp = new InsetFig(100, 100, buffer);
 
@@ -1274,12 +1294,12 @@ Inset * InsetFig::Clone(Buffer const & buffer) const
        tmp->subcaption = subcaption;
        tmp->changedfname = false;
        tmp->owner = owner;
-       tmp->Regenerate();
+       tmp->regenerate();
        return tmp;
 }
 
 
-Inset::Code InsetFig::LyxCode() const
+Inset::Code InsetFig::lyxCode() const
 {
        return Inset::GRAPHICS_CODE;
 }
@@ -1313,11 +1333,13 @@ string const stringify(InsetFig::HWTYPE hw, float f, string suffix)
 } // namespace anon
 
 
-void InsetFig::Regenerate() const
+void InsetFig::regenerate() const
 {
        string cmdbuf;
-       string resizeW, resizeH;
-       string rotate, recmd;
+       string resizeW;
+       string resizeH;
+       string rotate;
+       string recmd;
 
        if (fname.empty()) {
                cmd = "\\fbox{\\rule[-0.5in]{0pt}{1in}";
@@ -1370,11 +1392,13 @@ void InsetFig::Regenerate() const
 }
 
 
-void InsetFig::TempRegenerate()
+void InsetFig::tempRegenerate()
 {
        string cmdbuf;
-       string resizeW, resizeH;
-       string rotate, recmd;
+       string resizeW;
+       string resizeH;
+       string rotate;
+       string recmd;
        
        char const * tfname = fl_get_input(form->EpsFile);
        string tsubcap = fl_get_input(form->Subcaption);
@@ -1427,7 +1451,7 @@ void InsetFig::TempRegenerate()
 }
 
 
-void InsetFig::Recompute()
+void InsetFig::recompute()
 {
        if (!lyxrc.use_gui)
                return;
@@ -1435,12 +1459,12 @@ void InsetFig::Recompute()
        bool changed = changedfname;
        int newx, newy, nraw_x, nraw_y;
 
-       if (changed) GetPSSizes();
+       if (changed) getPSSizes();
 
-       float sin_a = std::sin (angle / DEG2PI);  /* rotation; H. Zeller 021296 */
-       float cos_a = std::cos (angle / DEG2PI);
-       int frame_wid = int(ceil(std::fabs(cos_a * pswid) + std::fabs(sin_a * pshgh)));
-       int frame_hgh= int(ceil(std::fabs(cos_a * pshgh) + std::fabs(sin_a * pswid)));
+       float sin_a = sin(angle / DEG2PI);  /* rotation; H. Zeller 021296 */
+       float cos_a = cos(angle / DEG2PI);
+       int frame_wid = int(ceil(fabs(cos_a * pswid) + fabs(sin_a * pshgh)));
+       int frame_hgh= int(ceil(fabs(cos_a * pshgh) + fabs(sin_a * pswid)));
 
        string lfname = fname;
        if (GetExtension(fname).empty())
@@ -1546,7 +1570,7 @@ void InsetFig::Recompute()
 }
 
 
-void InsetFig::GetPSSizes()
+void InsetFig::getPSSizes()
 {
        /* get %%BoundingBox: from postscript file */
        
@@ -1577,14 +1601,14 @@ void InsetFig::GetPSSizes()
        for (;;) {
                char c = 0; ifs.get(c);
                if (ifs.eof()) {
-                       lyxerr.debug() << "End of (E)PS file reached and"
+                       lyxerr[Debug::INFO] << "End of (E)PS file reached and"
                                " no BoundingBox!" << endl;
                        break;
                }
                if (c == '%' && lastchar == '%') {
                        ifs >> p;
                        if (p.empty()) break;
-                       lyxerr.debug() << "Token: `" << p << "'" << endl;
+                       lyxerr[Debug::INFO] << "Token: `" << p << "'" << endl;
                        if (p == "BoundingBox:") {
                                float fpsx, fpsy, fpswid, fpshgh;
                                if (ifs >> fpsx >> fpsy >> fpswid >> fpshgh) {
@@ -1612,7 +1636,7 @@ void InsetFig::GetPSSizes()
 }
 
 
-void InsetFig::CallbackFig(long arg)
+void InsetFig::callbackFig(long arg)
 {
        bool regen = false;
        char const * p;
@@ -1654,7 +1678,7 @@ void InsetFig::CallbackFig(long arg)
                        fl_activate_object(form->Width);
                        break;
                default:
-                       lyxerr.debug() << "Unknown type!" << endl;
+                       lyxerr[Debug::INFO] << "Unknown type!" << endl;
                        break;
                }
                regen = true;
@@ -1685,7 +1709,7 @@ void InsetFig::CallbackFig(long arg)
                        fl_activate_object(form->Height);
                        break;
                default:
-                       lyxerr.debug() << "Unknown type!" << endl;
+                       lyxerr[Debug::INFO] << "Unknown type!" << endl;
                        break;
                }
                regen = true;
@@ -1715,12 +1739,12 @@ void InsetFig::CallbackFig(long arg)
                regen = true;           /* regenerate command */
                break;
        case 0:                         /* browse file */
-               BrowseFile();
+               browseFile();
                regen = true;
                break;
        case 1:                         /* preview */
                p = fl_get_input(form->EpsFile);
-               Preview(p);
+               preview(p);
                break;
        case 7:                         /* apply */
        case 8:                         /* ok (apply and close) */
@@ -1743,8 +1767,8 @@ void InsetFig::CallbackFig(long arg)
                        }
                        subcaption = fl_get_input(form->Subcaption);
        
-                       Regenerate();
-                       Recompute();
+                       regenerate();
+                       recompute();
                        /* now update inset */
                        if (lyxerr.debugging()) {
                                lyxerr << "Update: ["
@@ -1782,7 +1806,7 @@ void InsetFig::CallbackFig(long arg)
                break;
        }
 
-       if (regen) TempRegenerate();
+       if (regen) tempRegenerate();
 }
 
 
@@ -1860,7 +1884,7 @@ void EnableFigurePanel(FD_Figure * const form)
 }
 
 
-void InsetFig::RestoreForm()
+void InsetFig::restoreForm()
 {
        EnableFigurePanel(form);
 
@@ -1902,7 +1926,7 @@ void InsetFig::RestoreForm()
        fl_set_input(form->Width, tostr(xwid).c_str());
        fl_set_input(form->Height, tostr(xhgh).c_str());
        fl_set_input(form->Angle, tostr(angle).c_str());
-       if (!fname.empty()){
+       if (!fname.empty()) {
                string buf1 = OnlyPath(owner->fileName());
                string fname2 = MakeRelPath(fname, buf1);
                fl_set_input(form->EpsFile, fname2.c_str());
@@ -1912,25 +1936,26 @@ void InsetFig::RestoreForm()
        if (current_view->buffer()->isReadonly()) 
                DisableFigurePanel(form);
 
-       TempRegenerate();
+       tempRegenerate();
 }
 
 
-void InsetFig::Preview(string const & p)
+void InsetFig::preview(string const & p)
 {
        string tfname = p;
        if (GetExtension(tfname).empty())
            tfname += ".eps";
        string buf1 = OnlyPath(owner->fileName());
        string buf2 = os::external_path(MakeAbsPath(tfname, buf1));
-       if (!formats.View(owner, buf2, "eps"))
+       if (!formats.view(owner, buf2, "eps"))
                lyxerr << "Can't view " << buf2 << endl;
 }
 
-void InsetFig::BrowseFile()
+
+void InsetFig::browseFile()
 {
        static string current_figure_path;
-       static int once = 0;
+       static int once;
 
        if (lyxerr.debugging()) {
                lyxerr << "Filename: "
@@ -1957,8 +1982,8 @@ void InsetFig::BrowseFile()
 
        FileDialog fileDlg(current_view->owner(), _("Select an EPS figure"),
                LFUN_SELECT_FILE_SYNC,
-               make_pair(string(_("Clip art")), string(bufclip)),
-               make_pair(string(_("Documents")), string(buf)));
+               make_pair(string(_("Clip art|#C#c")), string(bufclip)),
+               make_pair(string(_("Documents|#o#O")), string(buf)));
 
        bool error = false;
        do {
@@ -1977,7 +2002,7 @@ void InsetFig::BrowseFile()
                
                if (contains(p, "#") || contains(p, "~") || contains(p, "$")
                    || contains(p, "%") || contains(p, " ")) {
-                       WriteAlert(_("Filename can't contain any "
+                       Alert::alert(_("Filename can't contain any "
                                     "of these characters:"),
                                   // xgettext:no-c-format
                                   _("space, '#', '~', '$' or '%'.")); 
@@ -2006,7 +2031,7 @@ void GraphicsCB(FL_OBJECT * obj, long arg)
                                lyxerr << "Calling back figure "
                                       << (*it) << endl;
                        }
-                       (*it)->inset->CallbackFig(arg);
+                       (*it)->inset->callbackFig(arg);
                        return;
                }
 }
@@ -2022,6 +2047,6 @@ void HideFiguresPopups()
                                lyxerr << "Hiding figure " << (*it) << endl;
                        }
                        // hide and free the form
-                       (*it)->inset->CallbackFig(9);
+                       (*it)->inset->callbackFig(9);
                }
 }