- removed more inconsistencies between fl_draw and fl_measure (STR #1408)
- made the Tooltip hide code a little bit smarter - Added subwindow test case to Fl_Tabs git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@5378 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
parent
ba8bb3d8c2
commit
00ec9da8f5
2
CHANGES
2
CHANGES
@ -1,5 +1,7 @@
|
||||
CHANGES IN FLTK 1.1.8
|
||||
|
||||
- Fixed more inconsistencies between fl_draw
|
||||
and fl_measure (STR #1408)
|
||||
- Fixed fl_measure which mistook a trailing '@@'
|
||||
for a symbol (STR #1406)
|
||||
- Fixed GLUT behavior on window creation (STR #1403)
|
||||
|
@ -194,7 +194,7 @@ Fl_Tooltip::exit_(Fl_Widget *w) {
|
||||
widget_ = 0;
|
||||
Fl::remove_timeout(tooltip_timeout);
|
||||
Fl::remove_timeout(recent_timeout);
|
||||
if (window) window->hide();
|
||||
if (window && window->visible()) window->hide();
|
||||
if (recent_tooltip) {
|
||||
if (Fl::event_state() & FL_BUTTONS) recent_tooltip = 0;
|
||||
else Fl::add_timeout(Fl_Tooltip::hoverdelay(), recent_timeout);
|
||||
@ -233,11 +233,11 @@ Fl_Tooltip::enter_area(Fl_Widget* wid, int x,int y,int w,int h, const char* t)
|
||||
#ifdef WIN32
|
||||
// possible fix for the Windows titlebar, it seems to want the
|
||||
// window to be destroyed, moving it messes up the parenting:
|
||||
if (window) window->hide();
|
||||
if (window && window->visible()) window->hide();
|
||||
#endif // WIN32
|
||||
tooltip_timeout(0);
|
||||
} else {
|
||||
if (window) window->hide();
|
||||
if (window && window->visible()) window->hide();
|
||||
Fl::add_timeout(Fl_Tooltip::delay(), tooltip_timeout);
|
||||
}
|
||||
|
||||
|
@ -158,15 +158,13 @@ void fl_draw(
|
||||
|
||||
symtotal = symwidth[0] + symwidth[1];
|
||||
|
||||
if (str) {
|
||||
for (p = str, lines=0; p;) {
|
||||
e = expand(p, buf, w - symtotal, buflen, width, align&FL_ALIGN_WRAP,
|
||||
draw_symbols);
|
||||
lines++;
|
||||
if (!*e || (*e == '@' && e[1] != '@' && draw_symbols)) break;
|
||||
p = e;
|
||||
}
|
||||
} else lines = 0;
|
||||
for (p = str, lines=0; p;) {
|
||||
e = expand(p, buf, w - symtotal, buflen, width, align&FL_ALIGN_WRAP,
|
||||
draw_symbols);
|
||||
lines++;
|
||||
if (!*e || (*e == '@' && e[1] != '@' && draw_symbols)) break;
|
||||
p = e;
|
||||
}
|
||||
|
||||
if ((symwidth[0] || symwidth[1]) && lines) {
|
||||
if (symwidth[0]) symwidth[0] = lines * fl_height();
|
||||
@ -295,19 +293,21 @@ void fl_measure(const char* str, int& w, int& h, int draw_symbols) {
|
||||
symbol[1][0] = '\0';
|
||||
symwidth[1] = 0;
|
||||
|
||||
if (str && str[0] == '@' && str[1] && str[1] != '@') {
|
||||
// Start with a symbol...
|
||||
for (symptr = symbol[0];
|
||||
*str && !isspace(*str) && symptr < (symbol[0] + sizeof(symbol[0]) - 1);
|
||||
*symptr++ = *str++);
|
||||
*symptr = '\0';
|
||||
if (isspace(*str)) str++;
|
||||
symwidth[0] = h;
|
||||
}
|
||||
if (draw_symbols) {
|
||||
if (str && str[0] == '@' && str[1] && str[1] != '@') {
|
||||
// Start with a symbol...
|
||||
for (symptr = symbol[0];
|
||||
*str && !isspace(*str) && symptr < (symbol[0] + sizeof(symbol[0]) - 1);
|
||||
*symptr++ = *str++);
|
||||
*symptr = '\0';
|
||||
if (isspace(*str)) str++;
|
||||
symwidth[0] = min(w,h);
|
||||
}
|
||||
|
||||
if (str && (p = strrchr(str, '@')) != NULL && p > (str + 1) && p[-1]!='@') {
|
||||
strlcpy(symbol[1], p, sizeof(symbol[1]));
|
||||
symwidth[1] = h;
|
||||
if (str && (p = strrchr(str, '@')) != NULL && p > (str + 1) && p[-1]!='@') {
|
||||
strlcpy(symbol[1], p, sizeof(symbol[1]));
|
||||
symwidth[1] = min(w,h);
|
||||
}
|
||||
}
|
||||
|
||||
symtotal = symwidth[0] + symwidth[1];
|
||||
|
21
test/tabs.fl
21
test/tabs.fl
@ -1,18 +1,18 @@
|
||||
# data file for the Fltk User Interface Designer (fluid)
|
||||
version 1.0107
|
||||
version 1.0108
|
||||
header_name {.h}
|
||||
code_name {.cxx}
|
||||
Function {} {open
|
||||
} {
|
||||
Fl_Window foo_window {open
|
||||
xywh {561 88 320 331} type Double resizable visible
|
||||
xywh {423 205 320 331} type Double resizable visible
|
||||
} {
|
||||
Fl_Tabs {} {open
|
||||
tooltip {the various index cards test different aspects of the Fl_Tabs widget} xywh {10 10 300 200} selection_color 4 labelcolor 7 resizable
|
||||
} {
|
||||
Fl_Group {} {
|
||||
label Label1 open
|
||||
tooltip {this Tab tests correct keyboard navigation between text input fields} xywh {10 30 300 180} selection_color 1 hide resizable
|
||||
label Label1 open selected
|
||||
tooltip {this Tab tests correct keyboard navigation between text input fields} xywh {10 30 300 180} selection_color 1 resizable
|
||||
} {
|
||||
Fl_Input {} {
|
||||
label {input:}
|
||||
@ -28,8 +28,8 @@ Function {} {open
|
||||
}
|
||||
}
|
||||
Fl_Group {} {
|
||||
label tab2 open selected
|
||||
tooltip {tab2 tests among other things the cooperation of modal windows and tabs} xywh {10 30 300 180} selection_color 2
|
||||
label tab2 open
|
||||
tooltip {tab2 tests among other things the cooperation of modal windows and tabs} xywh {10 30 300 180} selection_color 2 hide
|
||||
} {
|
||||
Fl_Button {} {
|
||||
label button1
|
||||
@ -93,16 +93,21 @@ Function {} {open
|
||||
} {
|
||||
Fl_Button {} {
|
||||
label button2
|
||||
tooltip {button2 has a different tooltp than tab5} xywh {20 80 60 80}
|
||||
tooltip {button2 has a different tooltp than tab5} xywh {20 45 60 80}
|
||||
}
|
||||
Fl_Button {} {
|
||||
label button
|
||||
xywh {90 90 60 80}
|
||||
xywh {90 45 60 80}
|
||||
}
|
||||
Fl_Clock {} {
|
||||
label {Make sure this clock does not use processor time when this tab is hidden or window is iconized}
|
||||
xywh {160 50 100 100} box OSHADOW_BOX color 238 selection_color 0 labelfont 8 labelsize 10 align 130
|
||||
}
|
||||
Fl_Group {} {
|
||||
label subwindow open
|
||||
xywh {20 135 130 65} box THIN_DOWN_BOX color 167 align 16
|
||||
class Fl_Window
|
||||
} {}
|
||||
}
|
||||
}
|
||||
Fl_Input {} {
|
||||
|
Loading…
Reference in New Issue
Block a user