X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Ffiginset.C;h=9bf32f5e6b47ba5a17f68a63a033ffbcb43e9815;hb=4a5b7a5952ad2381fcdf4830511293e184c7c5a1;hp=a1285e5b624352d31aa33a92146b298df4a1d867;hpb=2470d9297d3f2c303f555c8f235d022b19396679;p=lyx.git diff --git a/src/insets/figinset.C b/src/insets/figinset.C index a1285e5b62..9bf32f5e6b 100644 --- a/src/insets/figinset.C +++ b/src/insets/figinset.C @@ -28,45 +28,47 @@ #include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include FORMS_H_LOCATION -#include -#include -#include -#include - #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 +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + 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(lyxerr, "\n")); + ostream_iterator(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 << "@"; + os << ""; 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 '%'."));