#define METRICSINFO_H
#include "lyxfont.h"
-#include "support/std_string.h"
+#include "support/types.h"
+
+#include <string>
class Painter;
class BufferView;
/// current math style (display/text/script/..)
Styles style;
/// name of current font - mathed specific
- string fontname;
+ std::string fontname;
/// This is the width available in pixels
int textwidth;
};
//
-// This contains a Metricsbase and Information that's only relevant during
+// This contains a MetricsBase and information that's only relevant during
// the first phase of the two-phase draw
//
struct MetricsInfo {
//
-// This contains a Metricsbase and Information that's only relevant during
+// This contains a MetricsBase and information that's only relevant during
// the second phase of the two-phase draw
//
struct PainterInfo {
///
- explicit PainterInfo(BufferView * bv);
+ PainterInfo(BufferView * bv, Painter & pain);
///
void draw(int x, int y, char c);
MetricsBase base;
///
Painter & pain;
- /// width of current item
- int width;
+ /// Whether the text at this point is right-to-left (for InsetNewline)
+ bool ltr_pos;
};
-
struct TextMetricsInfo {};
+struct ViewMetricsInfo
+{
+ ViewMetricsInfo(lyx::pit_type p1, lyx::pit_type p2,
+ int y1, int y2) : p1(p1), p2(p2), y1(y1), y2(y2) {}
+ lyx::pit_type p1;
+ lyx::pit_type p2;
+ int y1;
+ int y2;
+};
+
+
// Generic base for temporarily changing things.
// The original state gets restored when the Changer is destructed.
};
+// temporarily change the used color
+struct ColorChanger : public Changer<LyXFont, std::string> {
+ ///
+ ColorChanger(LyXFont & font, std::string const & color);
+ ///
+ ~ColorChanger();
+};
+
#endif