mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-22 10:00:33 +00:00
move inset related stuff from src/graphics to src/inset/
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@4247 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
0af1698d3b
commit
551e3864c6
@ -1,3 +1,9 @@
|
|||||||
|
|
||||||
|
2002-05-28 André Pönitz <poenitz@gmx.net>
|
||||||
|
|
||||||
|
* GraphicsParam.[Ch]:
|
||||||
|
move inset related stuff to inset/insetgraphics
|
||||||
|
|
||||||
2002-05-24 John Levon <moz@compsoc.man.ac.uk>
|
2002-05-24 John Levon <moz@compsoc.man.ac.uk>
|
||||||
|
|
||||||
* GraphicsImageXPM.C: ColorHandler moved
|
* GraphicsImageXPM.C: ColorHandler moved
|
||||||
|
@ -55,7 +55,7 @@ void GCache::update(InsetGraphics const & inset, string const & filepath)
|
|||||||
// A subset only of InsetGraphicsParams is needed for display purposes.
|
// A subset only of InsetGraphicsParams is needed for display purposes.
|
||||||
// The GraphicsParams c-tor also interrogates lyxrc to ascertain whether
|
// The GraphicsParams c-tor also interrogates lyxrc to ascertain whether
|
||||||
// to display or not.
|
// to display or not.
|
||||||
GParams params(inset.params(), filepath);
|
GParams params = inset.params().asGParams(filepath);
|
||||||
|
|
||||||
// Each inset can reference only one file, so check the cache for any
|
// Each inset can reference only one file, so check the cache for any
|
||||||
// graphics files referenced by inset. If the name of this file is
|
// graphics files referenced by inset. If the name of this file is
|
||||||
|
@ -631,7 +631,7 @@ struct Params_Changed {
|
|||||||
bool operator()(InsetGraphics const * inset)
|
bool operator()(InsetGraphics const * inset)
|
||||||
{
|
{
|
||||||
string const path = OnlyPath(p_.filename);
|
string const path = OnlyPath(p_.filename);
|
||||||
return GParams(inset->params(), path) != p_;
|
return inset->params().asGParams(path) != p_;
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@ -669,7 +669,7 @@ ModifiedItemPtr ModifiedItem::changeDisplay()
|
|||||||
|
|
||||||
ModifiedItemPtr new_item(new ModifiedItem(*this));
|
ModifiedItemPtr new_item(new ModifiedItem(*this));
|
||||||
new_item->insets = new_insets;
|
new_item->insets = new_insets;
|
||||||
*(new_item->p_) = GParams((*new_insets.begin())->params(), path);
|
*(new_item->p_) = (*new_insets.begin())->params().asGParams(path);
|
||||||
|
|
||||||
new_item->setPixmap();
|
new_item->setPixmap();
|
||||||
return new_item;
|
return new_item;
|
||||||
|
@ -13,107 +13,17 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "GraphicsParams.h"
|
#include "GraphicsParams.h"
|
||||||
#include "insets/insetgraphicsParams.h"
|
#include "Lsstream.h"
|
||||||
#include "lyxrc.h"
|
|
||||||
#include "debug.h"
|
|
||||||
#include "support/filetools.h"
|
|
||||||
#include "support/lstrings.h"
|
|
||||||
#include "support/LAssert.h"
|
|
||||||
|
|
||||||
namespace grfx {
|
namespace grfx {
|
||||||
|
|
||||||
GParams::GParams(InsetGraphicsParams const & iparams, string const & filepath)
|
GParams::GParams()
|
||||||
: width(0),
|
: width(0),
|
||||||
height(0),
|
height(0),
|
||||||
scale(0),
|
scale(0),
|
||||||
angle(0)
|
angle(0)
|
||||||
{
|
{}
|
||||||
filename = iparams.filename;
|
|
||||||
if (!filepath.empty()) {
|
|
||||||
filename = MakeAbsPath(filename, filepath);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (iparams.clip) {
|
|
||||||
bb = iparams.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()) {
|
|
||||||
int const bb_orig_xl = strToInt(token(tmp, ' ', 0));
|
|
||||||
int const bb_orig_yb = strToInt(token(tmp, ' ', 1));
|
|
||||||
|
|
||||||
bb.xl -= bb_orig_xl;
|
|
||||||
bb.xr -= bb_orig_xl;
|
|
||||||
bb.yb -= bb_orig_yb;
|
|
||||||
bb.yt -= bb_orig_yb;
|
|
||||||
}
|
|
||||||
|
|
||||||
bb.xl = std::max(0, bb.xl);
|
|
||||||
bb.xr = std::max(0, bb.xr);
|
|
||||||
bb.yb = std::max(0, bb.yb);
|
|
||||||
bb.yt = std::max(0, bb.yt);
|
|
||||||
|
|
||||||
// Paranoia check.
|
|
||||||
int const width = bb.xr - bb.xl;
|
|
||||||
int const height = bb.yt - bb.yb;
|
|
||||||
|
|
||||||
if (width < 0 || height < 0) {
|
|
||||||
bb.xl = 0;
|
|
||||||
bb.xr = 0;
|
|
||||||
bb.yb = 0;
|
|
||||||
bb.yt = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (iparams.rotate)
|
|
||||||
angle = int(iparams.rotateAngle);
|
|
||||||
|
|
||||||
if (iparams.display == InsetGraphicsParams::DEFAULT) {
|
|
||||||
|
|
||||||
if (lyxrc.display_graphics == "mono")
|
|
||||||
display = MONOCHROME;
|
|
||||||
else if (lyxrc.display_graphics == "gray")
|
|
||||||
display = GRAYSCALE;
|
|
||||||
else if (lyxrc.display_graphics == "color")
|
|
||||||
display = COLOR;
|
|
||||||
else
|
|
||||||
display = NONE;
|
|
||||||
|
|
||||||
} else if (iparams.display == InsetGraphicsParams::NONE) {
|
|
||||||
display = NONE;
|
|
||||||
|
|
||||||
} else if (iparams.display == InsetGraphicsParams::MONOCHROME) {
|
|
||||||
display = MONOCHROME;
|
|
||||||
|
|
||||||
} else if (iparams.display == InsetGraphicsParams::GRAYSCALE) {
|
|
||||||
display = GRAYSCALE;
|
|
||||||
|
|
||||||
} else if (iparams.display == InsetGraphicsParams::COLOR) {
|
|
||||||
display = COLOR;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Override the above if we're not using a gui
|
|
||||||
if (!lyxrc.use_gui) {
|
|
||||||
display = NONE;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (iparams.lyxsize_type == InsetGraphicsParams::SCALE) {
|
|
||||||
scale = iparams.lyxscale;
|
|
||||||
|
|
||||||
} else if (iparams.lyxsize_type == InsetGraphicsParams::WH) {
|
|
||||||
if (!iparams.lyxwidth.zero())
|
|
||||||
width = iparams.lyxwidth.inPixels(1, 1);
|
|
||||||
if (!iparams.lyxheight.zero())
|
|
||||||
height = iparams.lyxheight.inPixels(1, 1);
|
|
||||||
|
|
||||||
// inPixels returns a value scaled by lyxrc.zoom.
|
|
||||||
// We want, therefore, to undo this.
|
|
||||||
double const scaling_factor = 100.0 / double(lyxrc.zoom);
|
|
||||||
width = uint(scaling_factor * width);
|
|
||||||
height = uint(scaling_factor * height);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
bool operator==(GParams const & a, GParams const & b)
|
bool operator==(GParams const & a, GParams const & b)
|
||||||
|
@ -22,7 +22,6 @@
|
|||||||
#include "LString.h"
|
#include "LString.h"
|
||||||
#include "lyxlength.h"
|
#include "lyxlength.h"
|
||||||
|
|
||||||
class InsetGraphicsParams;
|
|
||||||
|
|
||||||
namespace grfx {
|
namespace grfx {
|
||||||
|
|
||||||
@ -49,7 +48,7 @@ bool operator!=(BoundingBox const &, BoundingBox const &);
|
|||||||
|
|
||||||
struct GParams
|
struct GParams
|
||||||
{
|
{
|
||||||
GParams(InsetGraphicsParams const &, string const &);
|
GParams();
|
||||||
|
|
||||||
/// How is the image to be displayed on the LyX screen?
|
/// How is the image to be displayed on the LyX screen?
|
||||||
enum DisplayType {
|
enum DisplayType {
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
2002-05-28 André Pönitz <poenitz@gmx.net>
|
||||||
|
|
||||||
|
* insets/insetgraphicsParams.[Ch]:
|
||||||
|
put in inset related stuff from src/graphic
|
||||||
|
|
||||||
2002-05-26 John Levon <moz@compsoc.man.ac.uk>
|
2002-05-26 John Levon <moz@compsoc.man.ac.uk>
|
||||||
|
|
||||||
* inset.C:
|
* inset.C:
|
||||||
|
@ -23,6 +23,9 @@
|
|||||||
#include "support/lyxlib.h"
|
#include "support/lyxlib.h"
|
||||||
#include "support/LOstream.h"
|
#include "support/LOstream.h"
|
||||||
#include "support/LAssert.h"
|
#include "support/LAssert.h"
|
||||||
|
#include "support/lstrings.h"
|
||||||
|
#include "lyxrc.h"
|
||||||
|
#include "debug.h"
|
||||||
|
|
||||||
|
|
||||||
using std::ostream;
|
using std::ostream;
|
||||||
@ -302,3 +305,100 @@ bool InsetGraphicsParams::Read(LyXLex & lex, string const & token)
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
grfx::GParams InsetGraphicsParams::asGParams(string const & filepath) const
|
||||||
|
{
|
||||||
|
grfx::GParams pars;
|
||||||
|
pars.width = 0;
|
||||||
|
pars.height = 0;
|
||||||
|
pars.scale = 0;
|
||||||
|
pars.angle = 0;
|
||||||
|
pars.filename = filename;
|
||||||
|
|
||||||
|
if (!filepath.empty()) {
|
||||||
|
pars.filename = MakeAbsPath(pars.filename, filepath);
|
||||||
|
}
|
||||||
|
|
||||||
|
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()) {
|
||||||
|
int const bb_orig_xl = strToInt(token(tmp, ' ', 0));
|
||||||
|
int const bb_orig_yb = strToInt(token(tmp, ' ', 1));
|
||||||
|
|
||||||
|
pars.bb.xl -= bb_orig_xl;
|
||||||
|
pars.bb.xr -= bb_orig_xl;
|
||||||
|
pars.bb.yb -= bb_orig_yb;
|
||||||
|
pars.bb.yt -= bb_orig_yb;
|
||||||
|
}
|
||||||
|
|
||||||
|
pars.bb.xl = std::max(0, pars.bb.xl);
|
||||||
|
pars.bb.xr = std::max(0, pars.bb.xr);
|
||||||
|
pars.bb.yb = std::max(0, pars.bb.yb);
|
||||||
|
pars.bb.yt = std::max(0, pars.bb.yt);
|
||||||
|
|
||||||
|
// 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 (rotate)
|
||||||
|
pars.angle = int(rotateAngle);
|
||||||
|
|
||||||
|
if (display == InsetGraphicsParams::DEFAULT) {
|
||||||
|
|
||||||
|
if (lyxrc.display_graphics == "mono")
|
||||||
|
pars.display = grfx::GParams::MONOCHROME;
|
||||||
|
else if (lyxrc.display_graphics == "gray")
|
||||||
|
pars.display = grfx::GParams::GRAYSCALE;
|
||||||
|
else if (lyxrc.display_graphics == "color")
|
||||||
|
pars.display = grfx::GParams::COLOR;
|
||||||
|
else
|
||||||
|
pars.display = grfx::GParams::NONE;
|
||||||
|
|
||||||
|
} else if (display == InsetGraphicsParams::NONE) {
|
||||||
|
pars.display = grfx::GParams::NONE;
|
||||||
|
|
||||||
|
} else if (display == InsetGraphicsParams::MONOCHROME) {
|
||||||
|
pars.display = grfx::GParams::MONOCHROME;
|
||||||
|
|
||||||
|
} else if (display == InsetGraphicsParams::GRAYSCALE) {
|
||||||
|
pars.display = grfx::GParams::GRAYSCALE;
|
||||||
|
|
||||||
|
} else if (display == InsetGraphicsParams::COLOR) {
|
||||||
|
pars.display = grfx::GParams::COLOR;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Override the above if we're not using a gui
|
||||||
|
if (!lyxrc.use_gui) {
|
||||||
|
pars.display = grfx::GParams::NONE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (lyxsize_type == InsetGraphicsParams::SCALE) {
|
||||||
|
pars.scale = lyxscale;
|
||||||
|
|
||||||
|
} else if (lyxsize_type == InsetGraphicsParams::WH) {
|
||||||
|
if (!lyxwidth.zero())
|
||||||
|
pars.width = lyxwidth.inPixels(1, 1);
|
||||||
|
if (!lyxheight.zero())
|
||||||
|
pars.height = lyxheight.inPixels(1, 1);
|
||||||
|
|
||||||
|
// inPixels returns a value scaled by lyxrc.zoom.
|
||||||
|
// We want, therefore, to undo this.
|
||||||
|
double const scaling_factor = 100.0 / double(lyxrc.zoom);
|
||||||
|
pars.width = uint(scaling_factor * pars.width);
|
||||||
|
pars.height = uint(scaling_factor * pars.height);
|
||||||
|
}
|
||||||
|
return pars;
|
||||||
|
}
|
||||||
|
@ -22,6 +22,9 @@
|
|||||||
#include "buffer.h"
|
#include "buffer.h"
|
||||||
#include "lyxlex.h"
|
#include "lyxlex.h"
|
||||||
|
|
||||||
|
#include "graphics/GraphicsParams.h"
|
||||||
|
|
||||||
|
|
||||||
/// This struct holds all the parameters needed by insetGraphics.
|
/// This struct holds all the parameters needed by insetGraphics.
|
||||||
struct InsetGraphicsParams
|
struct InsetGraphicsParams
|
||||||
{
|
{
|
||||||
@ -91,6 +94,8 @@ struct InsetGraphicsParams
|
|||||||
void Write(std::ostream & os) const;
|
void Write(std::ostream & os) const;
|
||||||
/// If the token belongs to our parameters, read it.
|
/// If the token belongs to our parameters, read it.
|
||||||
bool Read(LyXLex & lex, string const & token);
|
bool Read(LyXLex & lex, string const & token);
|
||||||
|
/// convert
|
||||||
|
grfx::GParams asGParams(string const & filepath) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/// Initialize the object to a default status.
|
/// Initialize the object to a default status.
|
||||||
|
Loading…
Reference in New Issue
Block a user