summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Fl_Browser.cxx61
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 $".
//