Index: uspace/lib/ui/include/types/ui/wdecor.h
===================================================================
--- uspace/lib/ui/include/types/ui/wdecor.h	(revision 86fff9712bf6c2a6891033ebd6d851fba27dd6ca)
+++ uspace/lib/ui/include/types/ui/wdecor.h	(revision 35cffeac21acf1766c2acbf62f162a7a62c130f7)
@@ -1,4 +1,4 @@
 /*
- * Copyright (c) 2020 Jiri Svoboda
+ * Copyright (c) 2022 Jiri Svoboda
  * All rights reserved.
  *
@@ -51,8 +51,10 @@
 	/** Window has a title bar */
 	ui_wds_titlebar = 0x2,
+	/** Window has a maximize button */
+	ui_wds_maximize_btn = 0x4,
 	/** Window has a close button */
-	ui_wds_close_btn = 0x4,
+	ui_wds_close_btn = 0x8,
 	/** Window is resizable */
-	ui_wds_resizable = 0x8,
+	ui_wds_resizable = 0x10,
 	/** Window is decorated (default decoration) */
 	ui_wds_decorated = ui_wds_frame | ui_wds_titlebar | ui_wds_close_btn
@@ -76,4 +78,6 @@
 /** Window decoration callbacks */
 typedef struct ui_wdecor_cb {
+	void (*maximize)(ui_wdecor_t *, void *);
+	void (*unmaximize)(ui_wdecor_t *, void *);
 	void (*close)(ui_wdecor_t *, void *);
 	void (*move)(ui_wdecor_t *, void *, gfx_coord2_t *);
Index: uspace/lib/ui/include/types/ui/window.h
===================================================================
--- uspace/lib/ui/include/types/ui/window.h	(revision 86fff9712bf6c2a6891033ebd6d851fba27dd6ca)
+++ uspace/lib/ui/include/types/ui/window.h	(revision 35cffeac21acf1766c2acbf62f162a7a62c130f7)
@@ -1,4 +1,4 @@
 /*
- * Copyright (c) 2020 Jiri Svoboda
+ * Copyright (c) 2022 Jiri Svoboda
  * All rights reserved.
  *
@@ -87,4 +87,6 @@
 /** Window callbacks */
 typedef struct ui_window_cb {
+	void (*maximize)(ui_window_t *, void *);
+	void (*unmaximize)(ui_window_t *, void *);
 	void (*close)(ui_window_t *, void *);
 	void (*focus)(ui_window_t *, void *);
Index: uspace/lib/ui/include/ui/paint.h
===================================================================
--- uspace/lib/ui/include/ui/paint.h	(revision 86fff9712bf6c2a6891033ebd6d851fba27dd6ca)
+++ uspace/lib/ui/include/ui/paint.h	(revision 35cffeac21acf1766c2acbf62f162a7a62c130f7)
@@ -65,4 +65,8 @@
 extern errno_t ui_paint_cross(gfx_context_t *, gfx_coord2_t *, gfx_coord_t,
     gfx_coord_t, gfx_coord_t);
+extern errno_t ui_paint_maxicon(ui_resource_t *, gfx_coord2_t *, gfx_coord_t,
+    gfx_coord_t);
+extern errno_t ui_paint_unmaxicon(ui_resource_t *, gfx_coord2_t *, gfx_coord_t,
+    gfx_coord_t, gfx_coord_t, gfx_coord_t);
 extern errno_t ui_paint_text_box(ui_resource_t *, gfx_rect_t *,
     ui_box_style_t, gfx_color_t *);
Index: uspace/lib/ui/include/ui/wdecor.h
===================================================================
--- uspace/lib/ui/include/ui/wdecor.h	(revision 86fff9712bf6c2a6891033ebd6d851fba27dd6ca)
+++ uspace/lib/ui/include/ui/wdecor.h	(revision 35cffeac21acf1766c2acbf62f162a7a62c130f7)
@@ -1,4 +1,4 @@
 /*
- * Copyright (c) 2021 Jiri Svoboda
+ * Copyright (c) 2022 Jiri Svoboda
  * All rights reserved.
  *
@@ -51,4 +51,5 @@
 extern void ui_wdecor_set_rect(ui_wdecor_t *, gfx_rect_t *);
 extern void ui_wdecor_set_active(ui_wdecor_t *, bool);
+extern void ui_wdecor_set_maximized(ui_wdecor_t *, bool);
 extern errno_t ui_wdecor_set_caption(ui_wdecor_t *, const char *);
 extern errno_t ui_wdecor_paint(ui_wdecor_t *);
Index: uspace/lib/ui/include/ui/window.h
===================================================================
--- uspace/lib/ui/include/ui/window.h	(revision 86fff9712bf6c2a6891033ebd6d851fba27dd6ca)
+++ uspace/lib/ui/include/ui/window.h	(revision 35cffeac21acf1766c2acbf62f162a7a62c130f7)
@@ -1,4 +1,4 @@
 /*
- * Copyright (c) 2021 Jiri Svoboda
+ * Copyright (c) 2022 Jiri Svoboda
  * All rights reserved.
  *
@@ -65,4 +65,6 @@
 extern void ui_window_set_ctl_cursor(ui_window_t *, ui_stock_cursor_t);
 extern errno_t ui_window_paint(ui_window_t *);
+extern errno_t ui_window_def_maximize(ui_window_t *);
+extern errno_t ui_window_def_unmaximize(ui_window_t *);
 extern ui_evclaim_t ui_window_def_kbd(ui_window_t *, kbd_event_t *);
 extern errno_t ui_window_def_paint(ui_window_t *);
