]> git.lyx.org Git - lyx.git/blobdiff - src/mathed/math_draw.C
Hopefully fix the problem with stateText() in lyxfont.C
[lyx.git] / src / mathed / math_draw.C
index 9efb95adcfe5d0415b68f9888d200b6ae19862d4..c3c01b20250553456407cbd9ef56ec0595a1db6a 100644 (file)
@@ -7,7 +7,7 @@
  *
  *  Dependencies: Xlib, XForms
  *
- *  Copyright: (c) 1996, Alejandro Aguilar Sierra
+ *  Copyright: 1996, Alejandro Aguilar Sierra
  *
  *   Version: 0.8beta, Mathed & Lyx project.
  *
 #include "lyxfont.h"
 #include "Painter.h"
 
-#ifdef USE_PAINTER
+using std::endl;
+
 extern LyXFont mathed_get_font(short type, int size);
-#else
-extern void mathed_set_font(short type, int style);
-#endif
 extern int mathed_char_width(short type, int style, byte c);
 extern int mathed_string_width(short type, int style, byte const* s, int ls);
 extern int mathed_string_height(short, int, byte const*, int, int&, int&);
 extern int mathed_char_height(short, int, byte, int&, int&);
-   
-GC canvasGC= 0, mathGC= 0, mathLineGC= 0, latexGC= 0, cursorGC= 0, mathFrameGC= 0;
-
 
-#ifndef USE_PAINTER
-unsigned long MathedInset::pm;
-#endif
-
-#ifdef USE_PAINTER
 void
 MathSpaceInset::draw(Painter & pain, int x, int y)
 { 
@@ -59,28 +49,8 @@ MathSpaceInset::draw(Painter & pain, int x, int y)
 
    pain.lines(xp, yp, 4, (space) ? LColor::latex : LColor::math);
 }
-#else
-void
-MathSpaceInset::Draw(int x, int y)
-{ 
-
-// XPoint p[4] = {{++x, y-3}, {x, y}, {x+width-2, y}, {x+width-2, y-3}};
-
-// Sadly, HP-UX CC can't handle that kind of initialization.
-
-   XPoint p[4];
-   p[0].x = ++x;       p[0].y = y-3;
-   p[1].x = x;         p[1].y = y;
-   p[2].x = x+width-2; p[2].y = y;
-   p[3].x = x+width-2; p[3].y = y-3;
-
-   XDrawLines(fl_display, pm,(space) ? latexGC: mathGC, p, 4, CoordModeOrigin);
-   XFlush(fl_display);
-}
-#endif
 
 
-#ifdef USE_PAINTER
 void 
 MathParInset::draw(Painter & pain, int x, int y)
 {
@@ -166,97 +136,6 @@ MathParInset::draw(Painter & pain, int x, int y)
       pain.rectangle(x, y - df_asc, df_width, df_asc, LColor::mathline);
    }
 }
-#else
-void 
-MathParInset::Draw(int x, int y)
-{
-   byte cx, cxp= 0;
-   int xp= 0, ls;
-   int asc= df_asc, des= 0;
-   bool limits = false;
-    
-   xo = x;  yo = y; 
-   if (!array || array->empty()) {
-      mathed_set_font(LM_TC_VAR, 1);
-       if (array) {
-          MathedXIter data(this);
-          data.GetPos(x, y);
-       }
-      XDrawRectangle(fl_display, pm, mathLineGC, x, y-df_asc, df_width, df_asc);
-      XFlush(fl_display);
-      return;
-   }  
-   MathedXIter data(this);
-   data.GoBegin();
-   while (data.OK()) {
-      data.GetPos(x, y);
-      cx = data.GetChar();
-      if (cx >= ' ') {
-        byte *s = data.GetString(ls);
-         drawStr(data.FCode(), size, x, y, s, ls);
-         mathed_char_height(LM_TC_CONST, size, 'y', asc, des);
-         limits = false;
-      } else {
-         if (cx == 0) break;
-        if (MathIsInset(cx)) {
-           int yy = y;
-           MathedInset *p = data.GetInset();
-           if (cx == LM_TC_UP) {
-              if (limits) {
-                 x -= (xp>p->Width()) ? p->Width()+(xp-p->Width())/2: xp;  
-                 yy -= (asc + p->Descent()+4);
-              } else
-                 yy -= (p->Descent()>asc) ? p->Descent()+4: asc;
-           } else
-           if (cx == LM_TC_DOWN) {
-              if (limits) {
-                 x -= (xp>p->Width()) ? p->Width()+(xp-p->Width())/2: xp;
-                 yy += des + p->Ascent() + 2;
-              } else
-                yy += des + p->Ascent()/2;
-           } else {
-              asc = p->Ascent();
-              des = p->Descent();
-           }
-           p->Draw(x, yy);
-           if (cx!= LM_TC_UP && cx!= LM_TC_DOWN) {
-              limits = p->GetLimits();
-              if (limits) xp = p->Width();
-           }
-           data.Next();
-        } else 
-          if (cx == LM_TC_TAB) {
-              if ((cxp == cx || cxp == LM_TC_CR || data.IsFirst())) { // && objtype == L
-                  XDrawRectangle(fl_display, pm, mathLineGC,
-                                 x, y-df_asc, df_width, df_asc);
-              }
-          
-             XFlush(fl_display);
-             data.Next();
-             limits = false;
-          } else
-           if (cx == LM_TC_CR) {
-               if (cxp == LM_TC_TAB || cxp == LM_TC_CR || data.IsFirst()) { //  && objtype == LM_OT_MATRIX) {
-                 XDrawRectangle(fl_display, pm, mathLineGC, x, y-df_asc, df_width, df_asc);
-               }
-               data.Next();
-               limits = false;
-           }
-        else {  
-                lyxerr << "GMathed Error: Unrecognized code[" << cx
-                       << "]" << endl;
-           break;
-        }
-      }
-      cxp = cx;
-   }
-   if (cxp == LM_TC_TAB || cxp == LM_TC_CR) { // && objtype == LM_OT_MATRIX) {
-      data.GetPos(x, y);
-      XDrawRectangle(fl_display, pm, mathLineGC, x, y-df_asc, df_width, df_asc);
-      XFlush(fl_display);
-   }
-}
-#endif
 
 
 void 
@@ -366,7 +245,6 @@ MathParInset::Metrics()
 }
 
 
-#ifdef USE_PAINTER
 void
 MathSqrtInset::draw(Painter & pain, int x, int y)
 { 
@@ -382,24 +260,6 @@ MathSqrtInset::draw(Painter & pain, int x, int y)
    xp[3] = x;                yp[3] = y + d - h2;
    pain.lines(xp, yp, 4, LColor::mathline);
 }
-#else
-void
-MathSqrtInset::Draw(int x, int y)
-{ 
-   MathParInset::Draw(x+hmax+2, y); 
-   int h = ascent;
-   int d = descent;
-   int h2 = Height() / 2;
-   int w2 = (Height() > 4 * hmax) ? hmax : hmax / 2; 
-   XPoint p[4];
-   p[0].x = x + hmax + wbody; p[0].y = y - h;
-   p[1].x = x + hmax;    p[1].y = y - h;
-   p[2].x = x + w2;      p[2].y = y + d;
-   p[3].x = x;         p[3].y = y + d - h2;
-   XDrawLines(fl_display, pm, mathLineGC, p, 4, CoordModeOrigin);
-   XFlush(fl_display);
-}
-#endif
 
 
 void
@@ -416,7 +276,6 @@ MathSqrtInset::Metrics()
 }
 
 
-#ifdef USE_PAINTER
 void
 MathFracInset::draw(Painter & pain, int x, int y)
 { 
@@ -432,25 +291,6 @@ MathFracInset::draw(Painter & pain, int x, int y)
            pain.line(x + 2, y - dh, x + width - 4, y - dh, LColor::mathline);
     idx = idxp;
 }
-#else
-void
-MathFracInset::Draw(int x, int y)
-{ 
-    short idxp = idx;
-    short sizex = size;
-    
-    idx = 0;
-    if (size == LM_ST_DISPLAY) ++size;
-    MathParInset::Draw(x + (width - w0) / 2, y - des0);
-    den->Draw(x + (width - w1) / 2, y + den->Ascent() + 2 - dh);
-    size = sizex;
-    if (objtype == LM_OT_FRAC)
-      XDrawLine(fl_display, pm, mathLineGC,
-               x + 2, y - dh, x + width - 4, y - dh);
-    XFlush(fl_display);
-    idx = idxp;
-}
-#endif
 
 
 void
@@ -478,7 +318,6 @@ MathFracInset::Metrics()
 }
 
 
-#ifdef USE_PAINTER
 void
 MathBigopInset::draw(Painter & pain, int x, int y)
 {
@@ -504,38 +343,8 @@ MathBigopInset::draw(Painter & pain, int x, int y)
    }
    pain.text(x, y, s, ls, mathed_get_font(t, size));
 }
-#else
-void
-MathBigopInset::Draw(int x, int y)
-{
-   int ls;
-   char c;
-   char const *s;
-   short t;
-   
-   if (sym<256 || sym == LM_oint) {
-      ls = 1;
-      c = (sym == LM_oint) ? LM_int: sym;
-      s = &c;
-      t = LM_TC_BSYM;
-   } else {
-      s = name;
-      ls = strlen(name);
-      t = LM_TC_TEXTRM;
-   }
-   mathed_set_font(t, size);
-   if (sym == LM_oint) {
-      XDrawArc(fl_display, pm, mathLineGC, x, y-5*width/4, width, width, 0, 23040);
-      XFlush(fl_display);
-      ++x;
-   }
-   XDrawString(fl_display, pm, mathGC, x, y, s, ls);
-   XFlush(fl_display);
-}
-#endif
 
 
-#ifdef USE_PAINTER
 void
 MathBigopInset::Metrics()
 {   
@@ -562,29 +371,3 @@ MathBigopInset::Metrics()
                                    ls);
        if (sym == LM_oint) width += 2;
 }
-#else
-void
-MathBigopInset::Metrics()
-{   
-   int ls;
-   char c;
-   char const *s;
-   short t;
-
-   if (sym<256 || sym == LM_oint) {
-      ls = 1;
-      c = (sym == LM_oint) ? LM_int: sym;
-      s = &c;
-      t = LM_TC_BSYM;
-   } else {
-      s = name;
-      ls = strlen(name);
-      t = LM_TC_TEXTRM;
-   }
-   mathed_set_font(t, size);
-   mathed_string_height(t, size, reinterpret_cast<const unsigned char*>(s), ls, ascent, descent);
-   width = mathed_string_width(t, size, reinterpret_cast<const unsigned char*>(s), ls);
-   if (sym == LM_oint) width += 2;
-}
-#endif
-