]> git.lyx.org Git - lyx.git/blob - src/insets/InsetGraphicsParams.h
Added inset-select-all to emacs bindings
[lyx.git] / src / insets / InsetGraphicsParams.h
1 // -*- C++ -*-
2 /**
3  * \file InsetGraphicsParams.h
4  * This file is part of LyX, the document processor.
5  * Licence details can be found in the file COPYING.
6  *
7  * \author Baruch Even
8  * \author Herbert Voß
9  *
10  * Full author contact details are available in file CREDITS.
11  */
12
13 #ifndef INSETGRAPHICSPARAMS_H
14 #define INSETGRAPHICSPARAMS_H
15
16
17 #include "Length.h"
18
19 #include "support/FileName.h"
20
21 #include <string>
22
23 namespace lyx {
24
25 namespace graphics { class Params; }
26
27 class Lexer;
28 class Buffer;
29
30
31 /// This class holds all the parameters needed by insetGraphics.
32 class InsetGraphicsParams
33 {
34 public:
35         /// Image filename.
36         support::DocFileName filename;
37         /// Scaling the Screen inside Lyx
38         unsigned int lyxscale;
39         /// If to display the image inside LyX
40         bool display;
41         /// Scaling for output (LaTeX)
42         std::string scale;
43         /// sizes for output (LaTeX)
44         Length width;
45         ///
46         Length height;
47         /// Keep the ratio between height and width when resizing.
48         bool keepAspectRatio;
49         /// draft mode
50         bool draft;
51         /// what to do with zipped files
52         bool noUnzip;
53         /// scale image before rotating
54         bool scaleBeforeRotation;
55
56         /// The bounding box with "xLB yLB yRT yRT ", divided by a space!
57         std::string bb;
58         /// clip image
59         bool clip;
60
61         /// Rotation angle.
62         std::string rotateAngle;
63         /// Origin point of rotation
64         std::string rotateOrigin;
65         /// any userdefined special command
66         std::string special;
67
68         ///
69         InsetGraphicsParams();
70         ///
71         InsetGraphicsParams(InsetGraphicsParams const &);
72         ///
73         void operator=(InsetGraphicsParams const &);
74         /// Save the parameters in the LyX format stream.
75         /// Buffer is needed to figure out if a figure is embedded.
76         void Write(std::ostream & os, Buffer const & buf) const;
77         /// If the token belongs to our parameters, read it.
78         bool Read(Lexer & lex, std::string const & token, std::string const & bufpath);
79         /// convert
80         // Only a subset of InsetGraphicsParams is needed for display purposes.
81         // This function also interrogates lyxrc to ascertain whether
82         // to display or not.
83         graphics::Params as_grfxParams() const;
84
85         // FIXME UNICODE. Write functions need to use odostream instead of ostream firstly.
86         /// Identification of the graphics template. No template equals empty string.
87         std::string groupId;
88 private:
89         /// Initialize the object to a default status.
90         void init();
91         /// Copy the other objects content to us, used in copy c-tor and assignment
92         void copy(InsetGraphicsParams const & params);
93 };
94
95 ///
96 bool operator==(InsetGraphicsParams const &, InsetGraphicsParams const &);
97 ///
98 bool operator!=(InsetGraphicsParams const &, InsetGraphicsParams const &);
99
100 } // namespace lyx
101
102 #endif