diff --git a/gtk4/frame.c b/gtk4/frame.c
new file mode 100644
index 0000000..e2ec152
--- /dev/null
+++ b/gtk4/frame.c
@@ -0,0 +1,29 @@
+/* kc3
+ * Copyright 2022,2023,2024 kmx.io <contact@kmx.io>
+ *
+ * Permission is hereby granted to use this software granted the above
+ * copyright notice and this permission paragraph are included in all
+ * copies and substantial portions of this software.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS-IS" WITHOUT ANY GUARANTEE OF
+ * PURPOSE AND PERFORMANCE. IN NO EVENT WHATSOEVER SHALL THE
+ * AUTHOR BE CONSIDERED LIABLE FOR THE USE AND PERFORMANCE OF
+ * THIS SOFTWARE.
+ */
+#include <libkc3/alloc.h>
+#include <libkc3/assert.h>
+#include "frame.h"
+
+void kc3_gtk4_frame_delete (GtkFrame **frame)
+{
+ g_object_unref(*frame);
+}
+
+GtkWidget ** kc3_gtk4_frame_new (GtkWidget **dest)
+{
+ GtkWidget *tmp;
+ if (! (tmp = gtk_frame_new(NULL)))
+ return NULL;
+ *dest = tmp;
+ return dest;
+}
diff --git a/gtk4/frame.h b/gtk4/frame.h
new file mode 100644
index 0000000..99658bb
--- /dev/null
+++ b/gtk4/frame.h
@@ -0,0 +1,25 @@
+/* kc3
+ * Copyright 2022,2023,2024 kmx.io <contact@kmx.io>
+ *
+ * Permission is hereby granted to use this software granted the above
+ * copyright notice and this permission paragraph are included in all
+ * copies and substantial portions of this software.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS-IS" WITHOUT ANY GUARANTEE OF
+ * PURPOSE AND PERFORMANCE. IN NO EVENT WHATSOEVER SHALL THE
+ * AUTHOR BE CONSIDERED LIABLE FOR THE USE AND PERFORMANCE OF
+ * THIS SOFTWARE.
+ */
+#ifndef KC3_GTK4_FRAME_H
+#define KC3_GTK4_FRAME_H
+
+#include "types.h"
+
+/* Heap-allocation functions, call kc3_gtk4_frame_delete
+ after use. */
+void kc3_gtk4_frame_delete (GtkFrame **app);
+GtkWidget ** kc3_gtk4_frame_new (GtkWidget **dest);
+
+/* Operators. */
+
+#endif /* KC3_GTK4_FRAME_H */
diff --git a/gtk4/paned.c b/gtk4/paned.c
index 5a3edb6..7ab87e4 100644
--- a/gtk4/paned.c
+++ b/gtk4/paned.c
@@ -14,8 +14,8 @@
#include <libkc3/sym.h>
#include "paned.h"
-GtkWidget ** kc3_gtk4_paned_new (const s_sym * const *orientation,
- GtkWidget **dest)
+GtkWidget ** kc3_gtk4_paned_new (GtkWidget **dest,
+ const s_sym * const *orientation)
{
GtkOrientation o;
GtkWidget *tmp;
diff --git a/gtk4/paned.h b/gtk4/paned.h
index 82a9a18..a28e1a6 100644
--- a/gtk4/paned.h
+++ b/gtk4/paned.h
@@ -16,8 +16,8 @@
#include "types.h"
/* Heap-allocation functions. */
-GtkWidget ** kc3_gtk4_paned_new (const s_sym * const *orientation,
- GtkWidget **dest);
+GtkWidget ** kc3_gtk4_paned_new (GtkWidget **widget,
+ const s_sym * const *orientation);
/* Operators. */
void kc3_gtk4_paned_set_end_child (GtkPaned **paned,
diff --git a/gtk4/sources.mk b/gtk4/sources.mk
index 1cff123..5169931 100644
--- a/gtk4/sources.mk
+++ b/gtk4/sources.mk
@@ -3,6 +3,7 @@ HEADERS = \
"application.h" \
"application_window.h" \
"entry_buffer.h" \
+ "frame.h" \
"kc3_glib.h" \
"kc3_gtk4.h" \
"paned.h" \
@@ -14,6 +15,7 @@ SOURCES = \
"application.c" \
"application_window.c" \
"entry_buffer.c" \
+ "frame.c" \
"kc3_glib.c" \
"paned.c" \
"text.c" \
diff --git a/gtk4/sources.sh b/gtk4/sources.sh
index d5c36e4..18b9f08 100644
--- a/gtk4/sources.sh
+++ b/gtk4/sources.sh
@@ -1,3 +1,3 @@
# sources.sh generated by update_sources
-HEADERS='application.h application_window.h entry_buffer.h kc3_glib.h kc3_gtk4.h paned.h text.h types.h window.h '
-SOURCES='application.c application_window.c entry_buffer.c kc3_glib.c paned.c text.c window.c '
+HEADERS='application.h application_window.h entry_buffer.h frame.h kc3_glib.h kc3_gtk4.h paned.h text.h types.h window.h '
+SOURCES='application.c application_window.c entry_buffer.c frame.c kc3_glib.c paned.c text.c window.c '
diff --git a/lib/kc3/0.1/gtk4/frame.kc3 b/lib/kc3/0.1/gtk4/frame.kc3
new file mode 100644
index 0000000..8a2c7b2
--- /dev/null
+++ b/lib/kc3/0.1/gtk4/frame.kc3
@@ -0,0 +1,5 @@
+defmodule Gtk4.Frame do
+
+ def new = cfn Ptr "kc3_gtk4_frame_new" (Result, Str)
+
+end
diff --git a/lib/kc3/0.1/gtk4/paned.kc3 b/lib/kc3/0.1/gtk4/paned.kc3
index ef38578..6822394 100644
--- a/lib/kc3/0.1/gtk4/paned.kc3
+++ b/lib/kc3/0.1/gtk4/paned.kc3
@@ -2,7 +2,7 @@ defmodule Gtk4.Paned do
# new(:horizontal)
# new(:vertical)
- def new = cfn Ptr "kc3_gtk4_paned_new" (Sym, Result)
+ def new = cfn Ptr "kc3_gtk4_paned_new" (Result, Sym)
# set_end_child(paned, child)
def set_end_child = cfn Void "kc3_gtk4_paned_set_end_child" (Ptr,