lyx_mirror/src/graphics/GraphicsParams.h
Bo Peng 06254d11df Embedding: display a pin at the top left corner of embedded figures
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22439 a592a061-630c-0410-9148-cb99ea01b6c8
2008-01-08 16:22:05 +00:00

90 lines
1.7 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 "GraphicsTypes.h"
#include "support/FileName.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;
unsigned int xl;
unsigned int yb;
unsigned int xr;
unsigned int yt;
};
bool operator==(BoundingBox const &, BoundingBox const &);
bool operator!=(BoundingBox const &, BoundingBox const &);
std::ostream & operator<<(std::ostream &, BoundingBox const &);
class Params
{
public:
Params();
DisplayType display;
unsigned int scale;
/// 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;
/** The icon to be displayed to the top-left corner of an image.
* It is mutable because an icon reflects a temporary state of
* the image, and is variable.
*/
mutable std::string icon;
};
bool operator==(Params const &, Params const &);
bool operator!=(Params const &, Params const &);
} // namespace graphics
} // namespace lyx
#endif // GRAPHICSPARAMS_H