lyx_mirror/src/graphics/GraphicsParams.h

85 lines
1.6 KiB
C++

// -*- C++ -*-
/**
* \file GraphicsParams.h
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
* \author Angus Leeming
*
* Full author contact details are available in file CREDITS.
*
* Used internally by the lyx::graphics::Image.
*/
#ifndef GRAPHICSPARAMS_H
#define GRAPHICSPARAMS_H
#include "support/FileName.h"
#include "support/Length.h"
#include <string>
#include <iosfwd>
namespace lyx {
namespace graphics {
/** Parse a string of the form "200pt 500pt 300mm 5in" into a
* usable bounding box.
*/
class BoundingBox {
public:
///
BoundingBox();
///
BoundingBox(std::string const &);
/// 0 0 0 0 is empty!
bool empty() const;
Length xl;
Length yb;
Length xr;
Length yt;
};
bool operator==(BoundingBox const &, BoundingBox const &);
bool operator!=(BoundingBox const &, BoundingBox const &);
/// output bounding box in LyX file format
std::ostream & operator<<(std::ostream &, BoundingBox const &);
class Params
{
public:
Params();
bool display;
unsigned int scale;
double pixel_ratio;
/// The image filename.
support::FileName filename;
/** Note that the BoundingBox is always relative to the BoundingBox
* as stored in the EPS file.
* Ie, bb.xl and bb.yb == 0 if that corner is not moved.
*/
BoundingBox bb;
/** The size of the view inside lyx in pixels or the scaling of the
* image.
*/
/// Rotation angle.
double angle;
};
bool operator==(Params const &, Params const &);
bool operator!=(Params const &, Params const &);
} // namespace graphics
} // namespace lyx
#endif // GRAPHICSPARAMS_H