diff options
| author | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2023-11-04 11:30:45 +0100 |
|---|---|---|
| committer | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2023-11-05 19:42:55 +0100 |
| commit | 0ae927a00e9ecd45a45edf004e939ab2e5ce4813 (patch) | |
| tree | d2d585d0d6088494b23529fc43dde9a7cdf330b3 /src/Fl_Window.cxx | |
| parent | a31409f7bbe7db51f63c79b16358d64ae6e2d4bb (diff) | |
Add Fl_Window::maximize() and Fl_Window::un_maximize()
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); +} |
