]> git.lyx.org Git - lyx.git/blob - src/graphics/GraphicsParams.h
Hotfix to move cursor to the right when pressing M-m g x in text mode.
[lyx.git] / src / graphics / GraphicsParams.h
1 // -*- C++ -*-
2 /**
3  *  \file GraphicsParams.h
4  *  Copyright 2002 the LyX Team
5  *  Read the file COPYING
6  *
7  *  \author Angus Leeming <a.leeming@ic.ac.uk>
8  *
9  *  Used internally by the GraphicsCache.
10  *  Only a subset of InsetGraphicsParams is needed for display purposes.
11  *  The GraphicsParams c-tor also interrogates lyxrc to ascertain whether
12  *  to display or not.
13  */
14
15 #ifndef GRAPHICSPARAMS_H
16 #define GRAPHICSPARAMS_H
17
18 #ifdef __GNUG__
19 #pragma interface
20 #endif
21
22 #include "LString.h"
23 #include "lyxlength.h"
24
25 class InsetGraphicsParams;
26
27 namespace grfx {
28
29 /** Parse a string of the form "200pt 500pt 300mm 5in" into a
30  *  usable bounding box.
31  */
32 struct BoundingBox {
33         ///
34         BoundingBox();
35         ///
36         BoundingBox(string const &);
37
38         /// 0 0 0 0 is empty!
39         bool empty() const;
40
41         int xl;
42         int yb;
43         int xr;
44         int yt;
45 };
46
47 bool operator==(BoundingBox const &, BoundingBox const &);
48 bool operator!=(BoundingBox const &, BoundingBox const &);
49
50 struct GParams
51 {
52         GParams(InsetGraphicsParams const &, string const &);
53
54         /// How is the image to be displayed on the LyX screen?
55         enum DisplayType {
56                 COLOR,
57                 GRAYSCALE,
58                 MONOCHROME,
59                 /// We aren't going to display it at all!
60                 NONE
61         };
62
63         DisplayType display;
64
65         /// The image filename.
66         string filename;
67
68         /** Note that the BoundingBox is always relative to the BoundingBox
69          *  as stored in the EPS file.
70          *  Ie, bb.xl and bb.yb == 0 if that corner is not moved.
71          */
72         BoundingBox bb;
73
74         /** The size of the view inside lyx in pixels or the scaling of the
75          *  image.
76          */
77         unsigned int width;
78         unsigned int height;
79         unsigned int scale;
80
81         /// Rotation angle.
82         int angle;
83 };
84
85 bool operator==(GParams const &, GParams const &);
86 bool operator!=(GParams const &, GParams const &);
87
88 } // namespace grfx
89
90 #endif // GRAPHICSPARAMS_H