]> git.lyx.org Git - lyx.git/blobdiff - src/metricsinfo.h
more cursor dispatch
[lyx.git] / src / metricsinfo.h
index c1acab6a67c0a2be5c908dcb06fee04695a04d9c..4b16ac312002bcc8a294336208398950ee28b4a3 100644 (file)
@@ -1,11 +1,23 @@
+// -*- C++ -*-
+/**
+ * \file metricsinfo.h
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
+ *
+ * \author André Pönitz
+ *
+ * Full author contact details are available in file CREDITS.
+ */
+
 #ifndef METRICSINFO_H
 #define METRICSINFO_H
 
-
 #include "lyxfont.h"
-#include "LString.h"
+
+#include <string>
 
 class Painter;
+class BufferView;
 
 
 /// Standard Sizes (mode styles)
@@ -21,22 +33,24 @@ enum Styles {
 };
 
 
-// 
+//
 // This is the part common to MetricsInfo and PainterInfo
 //
 struct MetricsBase {
        ///
        MetricsBase();
-
        ///
+       MetricsBase(BufferView * bv, LyXFont const & font, int textwidth);
+
+       /// the current view
+       BufferView * bv;
+       /// current font
        LyXFont font;
-       ///
+       /// current math style (display/text/script/..)
        Styles style;
-       ///
-       string fontname;
-       /// if this is set...
-       bool restrictwidth;
-       /// ... this is valid
+       /// name of current font - mathed specific
+       std::string fontname;
+       /// This is the width available in pixels
        int textwidth;
 };
 
@@ -48,11 +62,11 @@ struct MetricsBase {
 struct MetricsInfo {
        ///
        MetricsInfo();
+       ///
+       MetricsInfo(BufferView * bv, LyXFont const & font, int textwidth);
 
        ///
        MetricsBase base;
-       ///
-       bool fullredraw;
 };
 
 
@@ -62,7 +76,7 @@ struct MetricsInfo {
 //
 struct PainterInfo {
        ///
-       PainterInfo(Painter & pain);
+       explicit PainterInfo(BufferView * bv);
        ///
        void draw(int x, int y, char c);
 
@@ -70,6 +84,8 @@ struct PainterInfo {
        MetricsBase base;
        ///
        Painter & pain;
+       /// width of current item
+       int width;
 };
 
 
@@ -160,4 +176,12 @@ struct WidthChanger : public Changer<MetricsBase>
 };
 
 
+// temporarily change the used color
+struct ColorChanger : public Changer<LyXFont, std::string> {
+       ///
+       ColorChanger(LyXFont & font, std::string const & color);
+       ///
+       ~ColorChanger();
+};
+
 #endif