lyx_mirror/src/insets/insetgraphicsParams.h
Angus Leeming 2e5de574e1 * John's maths patch,
* Baruch's second graphics patch,
* A few things to get stuff to compile on my machine --- Lars see the ChangeLog
in controllers; how do you get things to compile without a != operator?
Surely compilation dies in ControlInset, included in ControlFloat,
ControlMinipage.

Angus


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@2389 a592a061-630c-0410-9148-cb99ea01b6c8
2001-07-30 13:35:08 +00:00

129 lines
2.9 KiB
C++

// -*- C++ -*-
/* This file is part of
* =================================================
*
* LyX, The Document Processor
* Copyright 1995 Matthias Ettrich.
* Copyright 1995-2001 The LyX Team.
*
* This file Copyright 2000 Baruch Even
* ================================================= */
#ifndef INSETGRAPHICSPARAMS_H
#define INSETGRAPHICSPARAMS_H
#ifdef __GNUG__
#pragma interface
#endif
#include "LString.h"
#include "buffer.h"
#include "lyxlex.h"
using std::ostream;
/// This struct holds all the parameters needed by insetGraphics.
struct InsetGraphicsParams
{
/// Image filename.
string filename;
/// How do we display the image?
enum DisplayType {
/// In full color range (if it's not in color we show it as it is)
COLOR,
/// In Grayscale (256 shades of gray).
GRAYSCALE,
/// In black and white.
MONOCHROME,
/// Don't display it on screen, only keep a frame in place.
NONE
};
/// How to display the image
DisplayType display;
/// Do we have a subcaption?
bool subcaption;
/// The text of the subcaption.
string subcaptionText;
/// This is the different origins that the graphicx package support.
enum Origin {
DEFAULT,
LEFTTOP,
LEFTCENTER,
LEFTBASELINE,
LEFTBOTTOM,
CENTERTOP,
CENTER,
CENTERBASELINE,
CENTERBOTTOM,
RIGHTTOP,
RIGHTCENTER,
RIGHTBASELINE,
RIGHTBOTTOM,
REFERENCE_POINT = LEFTBASELINE
};
/** The resize of the image, is it the default size, in cm, inch or
percentage of the page/column width/height */
enum Resize {
DEFAULT_SIZE,
CM,
INCH,
PERCENT_PAGE,
PERCENT_COLUMN,
SCALE
};
/// Keep the ratio between height and width when resizing.
bool keepAspectRatio;
/// What width resize to do?
Resize widthResize;
/// Value of width resize
float widthSize;
/// What height resize to do?
Resize heightResize;
/// Value of height resize
float heightSize;
/// Origin point of rotation
Origin rotateOrigin;
/// Rotation angle.
float rotateAngle;
///
InsetGraphicsParams();
///
InsetGraphicsParams(InsetGraphicsParams const &);
///
InsetGraphicsParams & operator=(InsetGraphicsParams const &);
/// Save the parameters in the LyX format stream.
void Write(Buffer const * buf, ostream & os) const;
/// If the token belongs to our parameters, read it.
bool Read(Buffer const * buf, LyXLex & lex, string const & token);
/// Test the struct to make sure that all the options have legal values.
void testInvariant() const;
private:
/// 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);
};
///
bool operator==(InsetGraphicsParams const &, InsetGraphicsParams const &);
///
bool operator!=(InsetGraphicsParams const &, InsetGraphicsParams const &);
#endif