mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-11 13:46:43 +00:00
c29851030b
this work. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@967 a592a061-630c-0410-9148-cb99ea01b6c8
127 lines
2.8 KiB
C++
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
|