summaryrefslogtreecommitdiff
path: root/src/Fl_Window.cxx
diff options
context:
space:
mode:
authorManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2023-11-04 11:30:45 +0100
committerManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2023-11-05 19:42:55 +0100
commit0ae927a00e9ecd45a45edf004e939ab2e5ce4813 (patch)
treed2d585d0d6088494b23529fc43dde9a7cdf330b3 /src/Fl_Window.cxx
parenta31409f7bbe7db51f63c79b16358d64ae6e2d4bb (diff)
Add Fl_Window::maximize() and Fl_Window::un_maximize()
Diffstat (limited to 'src/Fl_Window.cxx')
-rw-r--r--src/Fl_Window.cxx30
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);
+}