From df8016354cc3b15968043e347de73609180e5c9e Mon Sep 17 00:00:00 2001 From: Michael R Sweet Date: Mon, 19 Apr 1999 14:01:23 +0000 Subject: Updated documentation version & edition. FLUID makefile referenced LDFLAGS, but we only define CFLAGS and CXXFLAGS. Fl_Browser::item_height() didn't handle blank lines (returned 2 for the height). Also, didn't use textfont() when figuring out text height. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.0@551 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- src/Fl_Browser.cxx | 61 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 35 insertions(+), 26 deletions(-) (limited to 'src') 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 $". // -- cgit v1.2.3