diff options
Diffstat (limited to 'src/Fl_Window.cxx')
| -rw-r--r-- | src/Fl_Window.cxx | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/Fl_Window.cxx b/src/Fl_Window.cxx index f2d527485..18c01151b 100644 --- a/src/Fl_Window.cxx +++ b/src/Fl_Window.cxx @@ -922,3 +922,33 @@ bool Fl_Window::is_a_rescale() {return Fl_Window_Driver::is_a_rescale_;} \li other platforms: 0. */ fl_uintptr_t Fl_Window::os_id() { return pWindowDriver->os_id();} + +/** + Maximizes a top-level window to its current screen. + + This function is effective only with a show()'n, resizable, top-level window. + Bordered and borderless windows can be used. + \see Fl_Window::un_maximize(), Fl_Window::maximize_active() + */ +void Fl_Window::maximize() { + if (!shown() || parent() || !resizable() || maximize_active()) return; + set_flag(MAXIMIZED); + if (border()) pWindowDriver->maximize(); + else pWindowDriver->Fl_Window_Driver::maximize(); +} + +/** + Returns a previously maximized top-level window to its previous size. + \see Fl_Window::maximize() +*/ +void Fl_Window::un_maximize() { + if (!shown() || parent() || !resizable() || !maximize_active()) return; + clear_flag(MAXIMIZED); + if (border()) pWindowDriver->un_maximize(); + else pWindowDriver->Fl_Window_Driver::un_maximize(); +} + +void Fl_Window::is_maximized_(bool b) { + if (b) set_flag(MAXIMIZED); + else clear_flag(MAXIMIZED); +} |
