lyx_mirror/src/insets/insetgraphicsParams.h
Jürgen Vigna c29851030b Marko's GNOME patch and Baruch's insetgraphic patch + some fixes to make all
this work.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@967 a592a061-630c-0410-9148-cb99ea01b6c8
2000-08-14 09:44:53 +00:00

127 lines
2.8 KiB
C++

// -*- C++ -*-
/* This file is part of
* =================================================
*
* LyX, The Document Processor
* Copyright 1995 Matthias Ettrich.
* Copyright 1995-2000 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;
/// Is the figure inlined? (not in a paragraph of its own).
bool inlineFigure;
/// 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
};
/// 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.
int rotateAngle;
InsetGraphicsParams();
InsetGraphicsParams(InsetGraphicsParams const &);
InsetGraphicsParams const & 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 &);
#endif