+
+
+graphics::Params InsetGraphicsParams::as_grfxParams() const
+{
+ graphics::Params pars;
+ pars.filename = filename;
+ pars.scale = lyxscale;
+ pars.angle = convert<double>(rotateAngle);
+
+ if (clip) {
+ pars.bb = bb;
+
+ // Get the original Bounding Box from the file
+ string const tmp = readBB_from_PSFile(filename);
+ lyxerr[Debug::GRAPHICS] << "BB_from_File: " << tmp << std::endl;
+ if (!tmp.empty()) {
+#ifdef WITH_WARNINGS
+# warning why not convert to unsigned int? (Lgb)
+#endif
+ unsigned int const bb_orig_xl = convert<int>(token(tmp, ' ', 0));
+ unsigned int const bb_orig_yb = convert<int>(token(tmp, ' ', 1));
+
+ // new pars.bb values must be >= zero
+ if (pars.bb.xl > bb_orig_xl)
+ pars.bb.xl -= bb_orig_xl;
+ else
+ pars.bb.xl = 0;
+
+ if (pars.bb.xr > bb_orig_xl)
+ pars.bb.xr -= bb_orig_xl;
+ else
+ pars.bb.xr = 0;
+
+ if (pars.bb.yb > bb_orig_yb)
+ pars.bb.yb -= bb_orig_yb;
+ else
+ pars.bb.yb = 0;
+
+ if (pars.bb.yt > bb_orig_yb)
+ pars.bb.yt -= bb_orig_yb;
+ else
+ pars.bb.yt = 0;
+ }
+
+ // Paranoia check.
+ int const width = pars.bb.xr - pars.bb.xl;
+ int const height = pars.bb.yt - pars.bb.yb;
+
+ if (width < 0 || height < 0) {
+ pars.bb.xl = 0;
+ pars.bb.xr = 0;
+ pars.bb.yb = 0;
+ pars.bb.yt = 0;
+ }
+ }
+
+ if (display == graphics::DefaultDisplay) {
+ pars.display = lyxrc.display_graphics;
+ } else {
+ pars.display = display;
+ }
+
+ // Override the above if we're not using a gui
+ if (!use_gui) {
+ pars.display = graphics::NoDisplay;
+ }
+
+ return pars;
+}
+
+
+} // namespace lyx