diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/Fl_Browser.cxx | 61 |
1 files changed, 35 insertions, 26 deletions
diff --git a/src/Fl_Browser.cxx b/src/Fl_Browser.cxx index 18848c2d6..6d2bea829 100644 --- a/src/Fl_Browser.cxx +++ b/src/Fl_Browser.cxx @@ -1,5 +1,5 @@ // -// "$Id: Fl_Browser.cxx,v 1.9.2.3 1999/03/13 20:35:33 bill Exp $" +// "$Id: Fl_Browser.cxx,v 1.9.2.4 1999/04/19 14:01:23 mike Exp $" // // Browser widget for the Fast Light Tool Kit (FLTK). // @@ -208,31 +208,40 @@ int Fl_Browser::item_height(void* lv) const { if (l->flags & NOTDISPLAYED) return 0; int hmax = 2; // use 2 to insure we don't return a zero! - // do each column sepeartely as they may all set different fonts: - for (char* str = l->txt; *str; str++) { - Fl_Font font = Fl_Font(0); // default font - int size = textsize(); // default size - while (*str==format_char()) { - str++; - switch (*str++) { - case 'l': case 'L': size = 24; break; - case 'm': case 'M': size = 18; break; - case 's': size = 11; break; - case 'b': font = (Fl_Font)(font|FL_BOLD); break; - case 'i': font = (Fl_Font)(font|FL_ITALIC); break; - case 'f': case 't': font = FL_COURIER; break; - case 'S': size = strtol(str,&str,10); break; - case 'F': font = (Fl_Font)strtol(str,&str,10); break; - case 0: case '@': str--; - case '.': goto END_FORMAT; + + if (!l->txt[0]) { + // For blank lines set the height to exactly 1 line! + fl_font(textfont(), textsize()); + int h = fl_height(); + if (h > hmax) hmax = h; + } + else { + // do each column separately as they may all set different fonts: + for (char* str = l->txt; *str; str++) { + Fl_Font font = textfont(); // default font + int size = textsize(); // default size + while (*str==format_char()) { + str++; + switch (*str++) { + case 'l': case 'L': size = 24; break; + case 'm': case 'M': size = 18; break; + case 's': size = 11; break; + case 'b': font = (Fl_Font)(font|FL_BOLD); break; + case 'i': font = (Fl_Font)(font|FL_ITALIC); break; + case 'f': case 't': font = FL_COURIER; break; + case 'S': size = strtol(str,&str,10); break; + case 'F': font = (Fl_Font)strtol(str,&str,10); break; + case 0: case '@': str--; + case '.': goto END_FORMAT; + } + } + END_FORMAT: + char* ptr = str; + for(;*str && (*str!=column_char()); str++) ; + if (ptr < str) { + fl_font(font, size); int h = fl_height(); + if (h > hmax) hmax = h; } - } - END_FORMAT: - char* ptr = str; - for(;*str && (*str!=column_char()); str++) ; - if (ptr < str) { - fl_font(font, size); int h = fl_height(); - if (h > hmax) hmax = h; } } @@ -475,5 +484,5 @@ int Fl_Browser::value() const { } // -// End of "$Id: Fl_Browser.cxx,v 1.9.2.3 1999/03/13 20:35:33 bill Exp $". +// End of "$Id: Fl_Browser.cxx,v 1.9.2.4 1999/04/19 14:01:23 mike Exp $". // |
