Index: uspace/lib/ui/private/wdecor.h
===================================================================
--- uspace/lib/ui/private/wdecor.h	(revision d68239a1866f9eae07514ac5246d8925006600dd)
+++ uspace/lib/ui/private/wdecor.h	(revision ea9024d78ce545bc372a25f19c1d363dc0cb8c73)
@@ -1,4 +1,4 @@
 /*
- * Copyright (c) 2020 Jiri Svoboda
+ * Copyright (c) 2022 Jiri Svoboda
  * All rights reserved.
  *
@@ -63,4 +63,8 @@
 	/** Window is active */
 	bool active;
+	/** Window is maximized */
+	bool maximized;
+	/** Maximize button */
+	struct ui_pbutton *btn_max;
 	/** Close button */
 	struct ui_pbutton *btn_close;
@@ -76,4 +80,6 @@
 	/** Title bar rectangle */
 	gfx_rect_t title_bar_rect;
+	/** Maximize button rectangle */
+	gfx_rect_t btn_max_rect;
 	/** Close button rectangle */
 	gfx_rect_t btn_close_rect;
@@ -82,4 +88,6 @@
 } ui_wdecor_geom_t;
 
+extern void ui_wdecor_maximize(ui_wdecor_t *);
+extern void ui_wdecor_unmaximize(ui_wdecor_t *);
 extern void ui_wdecor_close(ui_wdecor_t *);
 extern void ui_wdecor_move(ui_wdecor_t *, gfx_coord2_t *);
Index: uspace/lib/ui/private/window.h
===================================================================
--- uspace/lib/ui/private/window.h	(revision d68239a1866f9eae07514ac5246d8925006600dd)
+++ uspace/lib/ui/private/window.h	(revision ea9024d78ce545bc372a25f19c1d363dc0cb8c73)
@@ -1,4 +1,4 @@
 /*
- * Copyright (c) 2021 Jiri Svoboda
+ * Copyright (c) 2022 Jiri Svoboda
  * All rights reserved.
  *
@@ -77,4 +77,6 @@
 	/** Window rectangle */
 	gfx_rect_t rect;
+	/** Normal window rectangle (when not maximized) */
+	gfx_rect_t normal_rect;
 	/** Display position (if fullscreen mode) */
 	gfx_coord2_t dpos;
@@ -99,5 +101,17 @@
 };
 
+/** Size change operation */
+typedef enum {
+	/** Resize window */
+	ui_wsc_resize,
+	/** Maximize window */
+	ui_wsc_maximize,
+	/** Unmaximize window */
+	ui_wsc_unmaximize
+} ui_wnd_sc_op_t;
+
 extern display_stock_cursor_t wnd_dcursor_from_cursor(ui_stock_cursor_t);
+extern void ui_window_send_maximize(ui_window_t *);
+extern void ui_window_send_unmaximize(ui_window_t *);
 extern void ui_window_send_close(ui_window_t *);
 extern void ui_window_send_focus(ui_window_t *);
@@ -106,4 +120,6 @@
 extern void ui_window_send_pos(ui_window_t *, pos_event_t *);
 extern void ui_window_send_unfocus(ui_window_t *);
+extern errno_t ui_window_size_change(ui_window_t *, gfx_rect_t *,
+    ui_wnd_sc_op_t);
 
 #endif
