You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
120 lines
4.1 KiB
120 lines
4.1 KiB
NOTE: this is most probably broken, better keep hands off here. |
|
|
|
--- TEWidget.C Wed May 6 19:05:54 1998 |
|
+++ TEWidget.C-withANY_FONT Wed May 6 19:02:21 1998 |
|
@@ -184,6 +184,9 @@ |
|
QPainter paint; |
|
setUpdatesEnabled(FALSE); |
|
paint.begin( this ); |
|
+#ifdef ANY_FONT |
|
+ paint.setBackgroundMode( TransparentMode ); |
|
+#endif |
|
|
|
QPoint tL = contentsRect().topLeft(); |
|
int tLx = tL.x(); |
|
@@ -225,6 +228,14 @@ |
|
disstr[len] = ext[x+len].c; |
|
} |
|
//printf("draw: %d %d %d\n",y,x,len); |
|
+#ifdef ANY_FONT |
|
+ cb = ext[x].b; |
|
+ if (!pm || cb != DEFAULT_BACK_COLOR) |
|
+ paint.fillRect(blX+tLx+font_w*x,bY+tLy+font_h*y,font_w*len,font_h, |
|
+ color_table[cb]); |
|
+ else |
|
+ erase(blX+tLx+font_w*x,bY+tLy+font_h*y,font_w*len,font_h); |
|
+#else |
|
if (ext[x].b != cb) |
|
{ |
|
cb = ext[x].b; |
|
@@ -238,12 +249,23 @@ |
|
} |
|
if (pm && cb == DEFAULT_BACK_COLOR) |
|
erase(blX+tLx+font_w*x,bY+tLy+font_h*y,font_w*len,font_h); |
|
- paint.drawText(blX+tLx+font_w*x,bY+tLy+font_a+font_h*y, disstr,len); |
|
- if (cr & RE_BOLD) |
|
- paint.drawText(blX+tLx+font_w*x+1,bY+tLy+font_a+font_h*y, disstr,len); |
|
- if (cr & RE_UNDERLINE) |
|
- paint.drawLine(blX+tLx+font_w*x, bY+tLy+font_a+font_h*y+1, |
|
- blX+tLx+font_w*(x+len),bY+tLy+font_a+font_h*y+1 ); |
|
+#endif |
|
+#ifdef ANY_FONT |
|
+ if (fixed_font) |
|
+ { |
|
+#endif |
|
+ paint.drawText(blX+tLx+font_w*x,bY+tLy+font_a+font_h*y, disstr,len); |
|
+ if (cr & RE_BOLD) |
|
+ paint.drawText(blX+tLx+font_w*x+1,bY+tLy+font_a+font_h*y, disstr,len); |
|
+ if (cr & RE_UNDERLINE) |
|
+ paint.drawLine(blX+tLx+font_w*x, bY+tLy+font_a+font_h*y+1, |
|
+ blX+tLx+font_w*(x+len),bY+tLy+font_a+font_h*y+1 ); |
|
+#ifdef ANY_FONT |
|
+ } |
|
+ else // proportional font |
|
+ for (int i = 0; i < len; i++) |
|
+ paint.drawText(blX+tLx+font_w*(x+i),bY+tLy+font_a+font_h*y, disstr+i,1); |
|
+#endif |
|
x += len - 1; |
|
} |
|
} |
|
@@ -310,6 +332,13 @@ |
|
{ |
|
disstr[len] = image[loc(x+len,y)].c; len += 1; |
|
} |
|
+#ifdef ANY_FONT |
|
+ if (!pm || cb != DEFAULT_BACK_COLOR) |
|
+ paint.fillRect(blX+tLx+font_w*x,bY+tLy+font_h*y,font_w*len,font_h, |
|
+ color_table[cb]); |
|
+ else |
|
+ erase(blX+tLx+font_w*x,bY+tLy+font_h*y,font_w*len,font_h); |
|
+#else |
|
if (!pm || cb != DEFAULT_BACK_COLOR) |
|
{ |
|
if (blinking) |
|
@@ -326,14 +355,25 @@ |
|
paint.setBackgroundMode( TransparentMode ); |
|
erase(blX+tLx+font_w*x,bY+tLy+font_h*y,font_w*len,font_h); |
|
} |
|
+#endif |
|
if (!blinking || !(cr & RE_BLINK)) |
|
{ |
|
- paint.drawText(blX+tLx+font_w*x,bY+tLy+font_a+font_h*y, disstr,len); |
|
- if (cr & RE_BOLD) |
|
- paint.drawText(blX+tLx+font_w*x+1,bY+tLy+font_a+font_h*y, disstr,len); |
|
- if (cr & RE_UNDERLINE) |
|
- paint.drawLine(blX+tLx+font_w*x, bY+tLy+font_a+font_h*y+1, |
|
- blX+tLx+font_w*(x+len),bY+tLy+font_a+font_h*y+1 ); |
|
+#ifdef ANY_FONT |
|
+ if (fixed_font) |
|
+ { |
|
+#endif |
|
+ paint.drawText(blX+tLx+font_w*x,bY+tLy+font_a+font_h*y, disstr,len); |
|
+ if (cr & RE_BOLD) |
|
+ paint.drawText(blX+tLx+font_w*x+1,bY+tLy+font_a+font_h*y, disstr,len); |
|
+ if (cr & RE_UNDERLINE) |
|
+ paint.drawLine(blX+tLx+font_w*x, bY+tLy+font_a+font_h*y+1, |
|
+ blX+tLx+font_w*(x+len),bY+tLy+font_a+font_h*y+1 ); |
|
+#ifdef ANY_FONT |
|
+ } |
|
+ else // proportional font |
|
+ for (int i = 0; i < len; i++) |
|
+ paint.drawText(blX+tLx+font_w*(x+i),bY+tLy+font_a+font_h*y, disstr+i,1); |
|
+#endif |
|
} |
|
x += len - 1; |
|
} |
|
@@ -458,6 +498,14 @@ |
|
font_h = fontMetrics().height(); |
|
font_w = fontMetrics().maxWidth(); |
|
font_a = fontMetrics().ascent(); |
|
+#ifdef ANY_FONT |
|
+ //FIXME: this is broken. QT returns false for "9x15"! |
|
+ // anyway, the option is deactivated by default |
|
+ // and the bug will only harm a speed penalty. |
|
+ fixed_font = fontInfo().fixedPitch(); |
|
+#else |
|
+ fixed_font = TRUE; |
|
+#endif |
|
|
|
setMinimumSize(blX+brX+5*font_w,2*bY+5*font_h); |
|
|
|
|