diff -r 069fca2a47c2 -r 07055fcc5e2c ui/motif/container.c
--- a/ui/motif/container.c	Fri Feb 28 21:42:38 2025 +0100
+++ b/ui/motif/container.c	Sat Mar 01 22:21:08 2025 +0100
@@ -586,7 +586,43 @@
     ui_reset_layout(ctn->layout);
 }
 
+/* -------------------- ScrolledWindow -------------------- */
 
+Widget ui_scrolledwindow_prepare(UiContainerPrivate *ctn, Arg *args, int *n) {
+    return ctn->widget;
+}
+
+void ui_scrolledwindow_add(UiContainerPrivate *ctn, Widget widget) {
+    
+}
+
+static UiContainerX* ui_scrolledwindow_container(UiObject *obj, Widget scrolledwindow) {
+    UiContainerPrivate *ctn = ui_malloc(obj->ctx, sizeof(UiContainerPrivate));
+    memset(ctn, 0, sizeof(UiContainerPrivate));
+    ctn->prepare = ui_scrolledwindow_prepare;
+    ctn->add = ui_scrolledwindow_add;
+    ctn->widget = scrolledwindow;
+    return (UiContainerX*)ctn;
+}
+
+UIWIDGET ui_scrolledwindow_create(UiObject* obj, UiFrameArgs args) {
+    UiContainerPrivate *ctn = ui_obj_container(obj);
+    UI_APPLY_LAYOUT(ctn->layout, args);
+    
+    Arg xargs[16];
+    int n = 0;
+    
+    XtSetArg(xargs[n], XmNscrollingPolicy, XmAUTOMATIC); n++;
+    
+    Widget parent = ctn->prepare(ctn, xargs, &n);
+    Widget scrolledwindow = XmCreateScrolledWindow(parent, "scrolledwindow", xargs, n);
+    ctn->add(ctn, scrolledwindow);
+    
+    UiContainerX *container = ui_scrolledwindow_container(obj, scrolledwindow);
+    uic_object_push_container(obj, container);
+    
+    return scrolledwindow;
+}
 
 /* -------------------- Container Helper Functions -------------------- */