]> 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 a1285e5b624352d31aa33a92146b298df4a1d867..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 <cerrno>
-
 #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 "frontends/Dialogs.h" // redrawGUI
 #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;
@@ -80,6 +82,8 @@ using std::endl;
 using std::copy;
 using std::pair;
 using std::make_pair;
+using std::ios;
+using std::ostream_iterator;
 
 #ifndef CXX_GLOBAL_CSTD
 using std::memcpy;
@@ -156,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;
        }
 }
@@ -177,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
@@ -313,6 +319,8 @@ int GhostscriptMsg(XEvent * ev, void *)
        return FL_PREEMPT;
 }
 
+}
+
 
 void AllocColors(int num)
 // allocate color cube numxnumxnum, if possible
@@ -388,6 +396,7 @@ void AllocGrays(int num)
        gs_color = true;
 }
 
+
 void InitFigures()
 {
        // if bitmaps and figures are not empty we will leak mem
@@ -412,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) {
@@ -464,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) {
@@ -511,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 "
@@ -640,7 +649,7 @@ 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';
                        memcpy(&env[1], environ,
                               sizeof(char*) * (ne + 1));
@@ -1182,15 +1191,16 @@ int InsetFig::docbook(Buffer const *, ostream & os) const
        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
 {
-       features.graphics = true;
-       if (subfigure) features.subfigure = true;
+       features.require("graphics");
+       if (subfigure) 
+               features.require("subfigure");
 }
 
 
@@ -1212,17 +1222,11 @@ string const InsetFig::editMessage() const
 }
 
 
-void InsetFig::edit(BufferView * bv, int, int, unsigned int)
+void InsetFig::edit(BufferView *, int, int, unsigned int)
 {
        lyxerr[Debug::INFO] << "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());
-
        if (!form) {
                form = create_form_Figure();
                fl_set_form_atclose(form->Figure, CancelCloseBoxCB, 0);
@@ -1922,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());
@@ -1978,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 {
@@ -1998,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 '%'."));