diff options
| author | Bill Spitzak <spitzak@gmail.com> | 2000-05-13 20:03:20 +0000 |
|---|---|---|
| committer | Bill Spitzak <spitzak@gmail.com> | 2000-05-13 20:03:20 +0000 |
| commit | d5b47034a7575151963f1fc85a4630f68208e73a (patch) | |
| tree | 023ff7f35eeda76f2343cd895b4e2ea2101319b8 /src/Fl.cxx | |
| parent | 2d826eb564160432259480504537e5797eced931 (diff) | |
Added Fl::first_window(window) to change which window is at the top of
the window list. This window is used as the "parent" of any modal
windows you create so it is a good idea to be able to change it.
Normally it is whatever window got the last event.
Fixed Fl_Menu::global handler to use first_window so if a modal window
pops up in response it is parented to the window containing the
menubar rather than the current top window. This was an annoying bug!
Copied fl_line_style() and the line_style demo over from fltk 2.0
because I am tired of mailing this code to people. Better to advertise this
as "added fl_line_style() function to set line thickness, dash patterns,
and end caps".
Fixed the documentation for these changes.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.0@1117 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src/Fl.cxx')
| -rw-r--r-- | src/Fl.cxx | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/src/Fl.cxx b/src/Fl.cxx index c2252a923..62b504eba 100644 --- a/src/Fl.cxx +++ b/src/Fl.cxx @@ -1,6 +1,6 @@ #include <stdio.h> // -// "$Id: Fl.cxx,v 1.24.2.20 2000/05/11 21:58:09 bill Exp $" +// "$Id: Fl.cxx,v 1.24.2.21 2000/05/13 20:03:17 bill Exp $" // // Main event handling code for the Fast Light Tool Kit (FLTK). // @@ -272,14 +272,24 @@ Fl_Window* fl_find(Window xid) { return 0; } -void Fl::redraw() { - for (Fl_X* x = Fl_X::first; x; x = x->next) x->w->redraw(); +Fl_Window* Fl::first_window() { + Fl_X* x = Fl_X::first; + return x ? x->w : 0; } -Fl_Window* Fl::first_window() {Fl_X* x = Fl_X::first; return x ? x->w : 0;} - Fl_Window* Fl::next_window(const Fl_Window* w) { - Fl_X* x = Fl_X::i(w)->next; return x ? x->w : 0;} + Fl_X* x = Fl_X::i(w)->next; + return x ? x->w : 0; +} + +void Fl::first_window(Fl_Window* window) { + if (!window || !window->shown()) return; + fl_find(fl_xid(window)); +} + +void Fl::redraw() { + for (Fl_X* x = Fl_X::first; x; x = x->next) x->w->redraw(); +} //////////////////////////////////////////////////////////////// // Event handlers: @@ -696,5 +706,5 @@ void Fl_Window::flush() { } // -// End of "$Id: Fl.cxx,v 1.24.2.20 2000/05/11 21:58:09 bill Exp $". +// End of "$Id: Fl.cxx,v 1.24.2.21 2000/05/13 20:03:17 bill Exp $". // |
