Fix rendering of background color in table cells.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@1983 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
parent
c2221d5552
commit
394286265a
2
CHANGES
2
CHANGES
@ -1,5 +1,7 @@
|
|||||||
CHANGES IN FLTK 1.1.0b12
|
CHANGES IN FLTK 1.1.0b12
|
||||||
|
|
||||||
|
- Fl_Help_View didn't keep track of the background color
|
||||||
|
of cells properly.
|
||||||
- Fl_Browser::item_width() didn't compute the width of
|
- Fl_Browser::item_width() didn't compute the width of
|
||||||
the item properly when column_widths() was set.
|
the item properly when column_widths() was set.
|
||||||
- Fl_Button didn't check to see if the widget could
|
- Fl_Button didn't check to see if the widget could
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
//
|
//
|
||||||
// "$Id: Fl_Help_View.H,v 1.1.2.8 2002/02/20 13:02:25 easysw Exp $"
|
// "$Id: Fl_Help_View.H,v 1.1.2.9 2002/03/05 11:26:41 easysw Exp $"
|
||||||
//
|
//
|
||||||
// Help Viewer widget definitions.
|
// Help Viewer widget definitions.
|
||||||
//
|
//
|
||||||
@ -56,6 +56,7 @@ struct Fl_Help_Block
|
|||||||
const char *start, // Start of text
|
const char *start, // Start of text
|
||||||
*end; // End of text
|
*end; // End of text
|
||||||
uchar border; // Draw border?
|
uchar border; // Draw border?
|
||||||
|
Fl_Color bgcolor; // Background color
|
||||||
int x, // Indentation/starting X coordinate
|
int x, // Indentation/starting X coordinate
|
||||||
y, // Starting Y coordinate
|
y, // Starting Y coordinate
|
||||||
w, // Width
|
w, // Width
|
||||||
@ -186,5 +187,5 @@ class Fl_Help_View : public Fl_Group //// Help viewer widget
|
|||||||
#endif // !Fl_Help_View_H
|
#endif // !Fl_Help_View_H
|
||||||
|
|
||||||
//
|
//
|
||||||
// End of "$Id: Fl_Help_View.H,v 1.1.2.8 2002/02/20 13:02:25 easysw Exp $".
|
// End of "$Id: Fl_Help_View.H,v 1.1.2.9 2002/03/05 11:26:41 easysw Exp $".
|
||||||
//
|
//
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
//
|
//
|
||||||
// "$Id: Fl_Help_View.cxx,v 1.1.2.28 2002/03/04 21:48:50 easysw Exp $"
|
// "$Id: Fl_Help_View.cxx,v 1.1.2.29 2002/03/05 11:26:41 easysw Exp $"
|
||||||
//
|
//
|
||||||
// Fl_Help_View widget routines.
|
// Fl_Help_View widget routines.
|
||||||
//
|
//
|
||||||
@ -137,11 +137,11 @@ static Fl_Pixmap broken_image(broken_xpm);
|
|||||||
|
|
||||||
Fl_Help_Block * // O - Pointer to new block
|
Fl_Help_Block * // O - Pointer to new block
|
||||||
Fl_Help_View::add_block(const char *s, // I - Pointer to start of block text
|
Fl_Help_View::add_block(const char *s, // I - Pointer to start of block text
|
||||||
int xx, // I - X position of block
|
int xx, // I - X position of block
|
||||||
int yy, // I - Y position of block
|
int yy, // I - Y position of block
|
||||||
int ww, // I - Right margin of block
|
int ww, // I - Right margin of block
|
||||||
int hh, // I - Height of block
|
int hh, // I - Height of block
|
||||||
unsigned char border) // I - Draw border?
|
unsigned char border) // I - Draw border?
|
||||||
{
|
{
|
||||||
Fl_Help_Block *temp; // New block
|
Fl_Help_Block *temp; // New block
|
||||||
|
|
||||||
@ -161,13 +161,14 @@ Fl_Help_View::add_block(const char *s, // I - Pointer to start of block text
|
|||||||
|
|
||||||
temp = blocks_ + nblocks_;
|
temp = blocks_ + nblocks_;
|
||||||
memset(temp, 0, sizeof(Fl_Help_Block));
|
memset(temp, 0, sizeof(Fl_Help_Block));
|
||||||
temp->start = s;
|
temp->start = s;
|
||||||
temp->end = s;
|
temp->end = s;
|
||||||
temp->x = xx;
|
temp->x = xx;
|
||||||
temp->y = yy;
|
temp->y = yy;
|
||||||
temp->w = ww;
|
temp->w = ww;
|
||||||
temp->h = hh;
|
temp->h = hh;
|
||||||
temp->border = border;
|
temp->border = border;
|
||||||
|
temp->bgcolor = bgcolor_;
|
||||||
nblocks_ ++;
|
nblocks_ ++;
|
||||||
|
|
||||||
return (temp);
|
return (temp);
|
||||||
@ -329,7 +330,6 @@ Fl_Help_View::draw()
|
|||||||
needspace; // Do we need whitespace?
|
needspace; // Do we need whitespace?
|
||||||
Fl_Boxtype b = box() ? box() : FL_DOWN_BOX;
|
Fl_Boxtype b = box() ? box() : FL_DOWN_BOX;
|
||||||
// Box to draw...
|
// Box to draw...
|
||||||
Fl_Color tc, rc, c; // Table/row/cell background color
|
|
||||||
|
|
||||||
|
|
||||||
// Draw the scrollbar(s) and box first...
|
// Draw the scrollbar(s) and box first...
|
||||||
@ -361,8 +361,6 @@ Fl_Help_View::draw()
|
|||||||
fl_push_clip(x() + 4, y() + 4, ww - 8, hh - 8);
|
fl_push_clip(x() + 4, y() + 4, ww - 8, hh - 8);
|
||||||
fl_color(textcolor_);
|
fl_color(textcolor_);
|
||||||
|
|
||||||
tc = rc = c = bgcolor_;
|
|
||||||
|
|
||||||
// Draw all visible blocks...
|
// Draw all visible blocks...
|
||||||
for (i = 0, block = blocks_; i < nblocks_; i ++, block ++)
|
for (i = 0, block = blocks_; i < nblocks_; i ++, block ++)
|
||||||
if ((block->y + block->h) >= topline_ && block->y < (topline_ + h()))
|
if ((block->y + block->h) >= topline_ && block->y < (topline_ + h()))
|
||||||
@ -549,10 +547,6 @@ Fl_Help_View::draw()
|
|||||||
else if (strcasecmp(buf, "B") == 0 ||
|
else if (strcasecmp(buf, "B") == 0 ||
|
||||||
strcasecmp(buf, "STRONG") == 0)
|
strcasecmp(buf, "STRONG") == 0)
|
||||||
pushfont(font |= FL_BOLD, size);
|
pushfont(font |= FL_BOLD, size);
|
||||||
else if (strcasecmp(buf, "TABLE") == 0)
|
|
||||||
tc = rc = get_color(get_attr(attrs, "BGCOLOR", attr, sizeof(attr)), bgcolor_);
|
|
||||||
else if (strcasecmp(buf, "TR") == 0)
|
|
||||||
rc = get_color(get_attr(attrs, "BGCOLOR", attr, sizeof(attr)), tc);
|
|
||||||
else if (strcasecmp(buf, "TD") == 0 ||
|
else if (strcasecmp(buf, "TD") == 0 ||
|
||||||
strcasecmp(buf, "TH") == 0)
|
strcasecmp(buf, "TH") == 0)
|
||||||
{
|
{
|
||||||
@ -563,8 +557,6 @@ Fl_Help_View::draw()
|
|||||||
else
|
else
|
||||||
pushfont(font = textfont_, size);
|
pushfont(font = textfont_, size);
|
||||||
|
|
||||||
c = get_color(get_attr(attrs, "BGCOLOR", attr, sizeof(attr)), rc);
|
|
||||||
|
|
||||||
tx = block->x - 4 - leftline_;
|
tx = block->x - 4 - leftline_;
|
||||||
ty = block->y - topline_ - size - 3;
|
ty = block->y - topline_ - size - 3;
|
||||||
tw = block->w - block->x + 7;
|
tw = block->w - block->x + 7;
|
||||||
@ -585,11 +577,9 @@ Fl_Help_View::draw()
|
|||||||
tx += x();
|
tx += x();
|
||||||
ty += y();
|
ty += y();
|
||||||
|
|
||||||
// printf("%s: %d,%d - %dx%d\n", buf, tx, ty, tw, th);
|
if (block->bgcolor != bgcolor_)
|
||||||
|
|
||||||
if (c != bgcolor_)
|
|
||||||
{
|
{
|
||||||
fl_color(c);
|
fl_color(block->bgcolor);
|
||||||
fl_rectf(tx, ty, tw, th);
|
fl_rectf(tx, ty, tw, th);
|
||||||
fl_color(textcolor_);
|
fl_color(textcolor_);
|
||||||
}
|
}
|
||||||
@ -622,11 +612,6 @@ Fl_Help_View::draw()
|
|||||||
strcasecmp(buf, "/KBD") == 0 ||
|
strcasecmp(buf, "/KBD") == 0 ||
|
||||||
strcasecmp(buf, "/VAR") == 0)
|
strcasecmp(buf, "/VAR") == 0)
|
||||||
popfont(font, size);
|
popfont(font, size);
|
||||||
else if (strcasecmp(buf, "/TABLE") == 0)
|
|
||||||
tc = rc = c = bgcolor_;
|
|
||||||
else if (strcasecmp(buf, "/TD") == 0 ||
|
|
||||||
strcasecmp(buf, "/TH") == 0)
|
|
||||||
c = rc;
|
|
||||||
else if (strcasecmp(buf, "/PRE") == 0)
|
else if (strcasecmp(buf, "/PRE") == 0)
|
||||||
{
|
{
|
||||||
popfont(font, size);
|
popfont(font, size);
|
||||||
@ -804,6 +789,7 @@ Fl_Help_View::format()
|
|||||||
int column, // Current table column number
|
int column, // Current table column number
|
||||||
columns[MAX_COLUMNS];
|
columns[MAX_COLUMNS];
|
||||||
// Column widths
|
// Column widths
|
||||||
|
Fl_Color tc, rc, c; // Table/row/cell background color
|
||||||
|
|
||||||
|
|
||||||
// Reset document width...
|
// Reset document width...
|
||||||
@ -822,6 +808,8 @@ Fl_Help_View::format()
|
|||||||
textcolor_ = textcolor();
|
textcolor_ = textcolor();
|
||||||
linkcolor_ = selection_color();
|
linkcolor_ = selection_color();
|
||||||
|
|
||||||
|
tc = rc = c = bgcolor_;
|
||||||
|
|
||||||
strcpy(title_, "Untitled");
|
strcpy(title_, "Untitled");
|
||||||
|
|
||||||
if (!value_)
|
if (!value_)
|
||||||
@ -1033,6 +1021,8 @@ Fl_Help_View::format()
|
|||||||
else
|
else
|
||||||
border = 0;
|
border = 0;
|
||||||
|
|
||||||
|
tc = rc = get_color(get_attr(attrs, "BGCOLOR", attr, sizeof(attr)), bgcolor_);
|
||||||
|
|
||||||
block->h += size + 2;
|
block->h += size + 2;
|
||||||
|
|
||||||
format_table(&table_width, columns, start);
|
format_table(&table_width, columns, start);
|
||||||
@ -1189,6 +1179,8 @@ Fl_Help_View::format()
|
|||||||
needspace = 0;
|
needspace = 0;
|
||||||
column = 0;
|
column = 0;
|
||||||
line = 0;
|
line = 0;
|
||||||
|
|
||||||
|
rc = get_color(get_attr(attrs, "BGCOLOR", attr, sizeof(attr)), tc);
|
||||||
}
|
}
|
||||||
else if (strcasecmp(buf, "/TR") == 0 && row)
|
else if (strcasecmp(buf, "/TR") == 0 && row)
|
||||||
{
|
{
|
||||||
@ -1268,6 +1260,9 @@ Fl_Help_View::format()
|
|||||||
cells[column] = block - blocks_;
|
cells[column] = block - blocks_;
|
||||||
|
|
||||||
column += colspan;
|
column += colspan;
|
||||||
|
|
||||||
|
block->bgcolor = get_color(get_attr(attrs, "BGCOLOR", attr,
|
||||||
|
sizeof(attr)), rc);
|
||||||
}
|
}
|
||||||
else if ((strcasecmp(buf, "/TD") == 0 ||
|
else if ((strcasecmp(buf, "/TD") == 0 ||
|
||||||
strcasecmp(buf, "/TH") == 0) && row)
|
strcasecmp(buf, "/TH") == 0) && row)
|
||||||
@ -2629,5 +2624,5 @@ hscrollbar_callback(Fl_Widget *s, void *)
|
|||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// End of "$Id: Fl_Help_View.cxx,v 1.1.2.28 2002/03/04 21:48:50 easysw Exp $".
|
// End of "$Id: Fl_Help_View.cxx,v 1.1.2.29 2002/03/05 11:26:41 easysw Exp $".
|
||||||
//
|
//
|
||||||
|
Loading…
Reference in New Issue
Block a user