2000-07-31 12:30:10 +00:00
|
|
|
// -*- C++ -*-
|
2002-09-25 14:26:13 +00:00
|
|
|
/**
|
2007-04-25 01:24:38 +00:00
|
|
|
* \file InsetGraphicsParams.h
|
2002-09-25 14:26:13 +00:00
|
|
|
* This file is part of LyX, the document processor.
|
|
|
|
* Licence details can be found in the file COPYING.
|
2000-07-31 12:30:10 +00:00
|
|
|
*
|
2002-01-29 09:26:24 +00:00
|
|
|
* \author Baruch Even
|
2008-11-14 15:58:50 +00:00
|
|
|
* \author Herbert Voß
|
2002-09-25 14:26:13 +00:00
|
|
|
*
|
2003-08-23 00:17:00 +00:00
|
|
|
* Full author contact details are available in file CREDITS.
|
2002-09-25 14:26:13 +00:00
|
|
|
*/
|
2000-07-31 12:30:10 +00:00
|
|
|
|
|
|
|
#ifndef INSETGRAPHICSPARAMS_H
|
|
|
|
#define INSETGRAPHICSPARAMS_H
|
|
|
|
|
2000-08-08 09:18:39 +00:00
|
|
|
|
2015-07-18 15:02:54 +00:00
|
|
|
#include "graphics/GraphicsParams.h"
|
2008-04-20 03:08:11 +00:00
|
|
|
|
|
|
|
#include "support/FileName.h"
|
|
|
|
|
|
|
|
#include <string>
|
2000-07-31 12:30:10 +00:00
|
|
|
|
2003-07-04 08:23:23 +00:00
|
|
|
namespace lyx {
|
2006-10-21 00:16:43 +00:00
|
|
|
|
|
|
|
namespace graphics { class Params; }
|
|
|
|
|
2007-04-26 11:30:54 +00:00
|
|
|
class Lexer;
|
2007-09-05 17:50:07 +00:00
|
|
|
class Buffer;
|
2003-07-04 08:23:23 +00:00
|
|
|
|
2002-05-28 11:50:04 +00:00
|
|
|
|
2005-01-19 15:03:31 +00:00
|
|
|
/// This class holds all the parameters needed by insetGraphics.
|
|
|
|
class InsetGraphicsParams
|
2000-08-14 09:44:53 +00:00
|
|
|
{
|
2005-01-19 15:03:31 +00:00
|
|
|
public:
|
2002-01-29 09:26:24 +00:00
|
|
|
/// Image filename.
|
2008-04-20 03:08:11 +00:00
|
|
|
support::DocFileName filename;
|
2002-08-24 22:02:30 +00:00
|
|
|
/// Scaling the Screen inside Lyx
|
|
|
|
unsigned int lyxscale;
|
2008-06-13 07:34:55 +00:00
|
|
|
/// If to display the image inside LyX
|
|
|
|
bool display;
|
2002-08-24 22:02:30 +00:00
|
|
|
/// Scaling for output (LaTeX)
|
2004-12-28 11:23:05 +00:00
|
|
|
std::string scale;
|
2002-08-24 22:02:30 +00:00
|
|
|
/// sizes for output (LaTeX)
|
2007-04-28 12:58:49 +00:00
|
|
|
Length width;
|
2002-08-24 22:02:30 +00:00
|
|
|
///
|
2007-04-28 12:58:49 +00:00
|
|
|
Length height;
|
2002-08-24 22:02:30 +00:00
|
|
|
/// Keep the ratio between height and width when resizing.
|
|
|
|
bool keepAspectRatio;
|
2002-01-29 09:26:24 +00:00
|
|
|
/// draft mode
|
|
|
|
bool draft;
|
2007-06-25 13:49:51 +00:00
|
|
|
/// scale image before rotating
|
|
|
|
bool scaleBeforeRotation;
|
2002-08-24 22:02:30 +00:00
|
|
|
|
2015-07-18 15:02:54 +00:00
|
|
|
/// The bounding box
|
|
|
|
graphics::BoundingBox bbox;
|
2002-08-24 22:02:30 +00:00
|
|
|
/// clip image
|
|
|
|
bool clip;
|
|
|
|
|
|
|
|
/// Rotation angle.
|
2004-12-28 11:23:05 +00:00
|
|
|
std::string rotateAngle;
|
2002-08-24 22:02:30 +00:00
|
|
|
/// Origin point of rotation
|
2003-10-06 15:43:21 +00:00
|
|
|
std::string rotateOrigin;
|
2002-02-11 10:42:11 +00:00
|
|
|
/// any userdefined special command
|
2003-10-06 15:43:21 +00:00
|
|
|
std::string special;
|
2002-08-24 22:02:30 +00:00
|
|
|
|
2000-09-14 17:53:12 +00:00
|
|
|
///
|
2000-08-14 09:44:53 +00:00
|
|
|
InsetGraphicsParams();
|
2000-09-14 17:53:12 +00:00
|
|
|
///
|
2000-08-14 09:44:53 +00:00
|
|
|
InsetGraphicsParams(InsetGraphicsParams const &);
|
2000-09-14 17:53:12 +00:00
|
|
|
///
|
2015-09-13 17:43:44 +00:00
|
|
|
InsetGraphicsParams & operator=(InsetGraphicsParams const &);
|
2000-08-14 09:44:53 +00:00
|
|
|
/// Save the parameters in the LyX format stream.
|
2007-09-05 17:50:07 +00:00
|
|
|
/// Buffer is needed to figure out if a figure is embedded.
|
|
|
|
void Write(std::ostream & os, Buffer const & buf) const;
|
2000-08-14 09:44:53 +00:00
|
|
|
/// If the token belongs to our parameters, read it.
|
2016-01-10 18:46:01 +00:00
|
|
|
bool Read(Lexer & lex, std::string const & token, Buffer const & buf,
|
|
|
|
bool allowOrigin);
|
2002-06-24 20:28:12 +00:00
|
|
|
/// convert
|
2008-01-06 16:24:19 +00:00
|
|
|
// Only a subset of InsetGraphicsParams is needed for display purposes.
|
|
|
|
// This function also interrogates lyxrc to ascertain whether
|
|
|
|
// to display or not.
|
2006-10-21 00:16:43 +00:00
|
|
|
graphics::Params as_grfxParams() const;
|
2000-07-31 12:30:10 +00:00
|
|
|
|
2008-05-26 18:37:42 +00:00
|
|
|
// FIXME UNICODE. Write functions need to use odostream instead of ostream firstly.
|
|
|
|
/// Identification of the graphics template. No template equals empty string.
|
2008-05-06 21:13:09 +00:00
|
|
|
std::string groupId;
|
2000-07-31 12:30:10 +00:00
|
|
|
private:
|
2000-08-14 09:44:53 +00:00
|
|
|
/// Initialize the object to a default status.
|
|
|
|
void init();
|
|
|
|
/// Copy the other objects content to us, used in copy c-tor and assignment
|
|
|
|
void copy(InsetGraphicsParams const & params);
|
2000-07-31 12:30:10 +00:00
|
|
|
};
|
|
|
|
|
2000-09-14 17:53:12 +00:00
|
|
|
///
|
|
|
|
bool operator==(InsetGraphicsParams const &, InsetGraphicsParams const &);
|
2001-03-28 13:16:37 +00:00
|
|
|
///
|
|
|
|
bool operator!=(InsetGraphicsParams const &, InsetGraphicsParams const &);
|
2000-07-31 12:30:10 +00:00
|
|
|
|
2006-10-21 00:16:43 +00:00
|
|
|
} // namespace lyx
|
|
|
|
|
2002-03-21 17:09:55 +00:00
|
|
|
#endif
|