Commit 70f2fd8e84e3979a1f84c12dabde83a40fade998

Thomas de Grivel 2024-12-12T14:34:10

ikc3 --trace, wip kmsg gtk4

diff --git a/gtk4/paned.c b/gtk4/paned.c
index 7ab87e4..78f8842 100644
--- a/gtk4/paned.c
+++ b/gtk4/paned.c
@@ -11,6 +11,7 @@
  * THIS SOFTWARE.
  */
 #include <libkc3/assert.h>
+#include <libkc3/s32.h>
 #include <libkc3/sym.h>
 #include "paned.h"
 
@@ -36,38 +37,58 @@ GtkWidget ** kc3_gtk4_paned_new (GtkWidget **dest,
   return dest;
 }
 
-void kc3_gtk4_paned_set_end_child (GtkPaned **paned,
-                                   GtkWidget **child)
+GtkPaned ** kc3_gtk4_paned_set_end_child (GtkPaned **paned,
+                                          GtkWidget **child)
 {
   gtk_paned_set_end_child(GTK_PANED(*paned), GTK_WIDGET(*child));
+  return paned;
 }
 
-void kc3_gtk4_paned_set_resize_end_child (GtkPaned **paned,
-                                            bool value)
+GtkPaned ** kc3_gtk4_paned_set_position (GtkPaned **paned,
+                                         s_tag *position)
+{
+  s32 p;
+  const s_sym *sym_S32;
+  if (! s32_init_cast(&p, &sym_S32, position)) {
+    err_puts("kc3_gtk4_paned_set_position: invalid position");
+    assert(! "kc3_gtk4_paned_set_position: invalid position");
+    return NULL;
+  }
+  gtk_paned_set_position(GTK_PANED(*paned), p);
+  return paned;
+}
+
+GtkPaned ** kc3_gtk4_paned_set_resize_end_child (GtkPaned **paned,
+                                                 bool value)
 {
   gtk_paned_set_resize_end_child(GTK_PANED(*paned), value);
+  return paned;
 }
 
-void kc3_gtk4_paned_set_shrink_end_child (GtkPaned **paned,
-                                            bool value)
+GtkPaned ** kc3_gtk4_paned_set_shrink_end_child (GtkPaned **paned,
+                                                 bool value)
 {
   gtk_paned_set_shrink_end_child(GTK_PANED(*paned), value);
+  return paned;
 }
 
-void kc3_gtk4_paned_set_resize_start_child (GtkPaned **paned,
-                                            bool value)
+GtkPaned ** kc3_gtk4_paned_set_resize_start_child (GtkPaned **paned,
+                                                   bool value)
 {
   gtk_paned_set_resize_start_child(GTK_PANED(*paned), value);
+  return paned;
 }
 
-void kc3_gtk4_paned_set_shrink_start_child (GtkPaned **paned,
-                                            bool value)
+GtkPaned ** kc3_gtk4_paned_set_shrink_start_child (GtkPaned **paned,
+                                                   bool value)
 {
   gtk_paned_set_shrink_start_child(GTK_PANED(*paned), value);
+  return paned;
 }
 
-void kc3_gtk4_paned_set_start_child (GtkPaned **paned,
-                                     GtkWidget **child)
+GtkPaned ** kc3_gtk4_paned_set_start_child (GtkPaned **paned,
+                                            GtkWidget **child)
 {
   gtk_paned_set_end_child(GTK_PANED(*paned), GTK_WIDGET(*child));
+  return paned;
 }
diff --git a/gtk4/paned.h b/gtk4/paned.h
index a28e1a6..6ff12c6 100644
--- a/gtk4/paned.h
+++ b/gtk4/paned.h
@@ -20,13 +20,13 @@ GtkWidget ** kc3_gtk4_paned_new (GtkWidget **widget,
                                  const s_sym * const *orientation);
 
 /* Operators. */
-void kc3_gtk4_paned_set_end_child (GtkPaned **paned,
-                                   GtkWidget **child);
-void kc3_gtk4_paned_set_resize_start_child (GtkPaned **paned,
-                                            bool value);
-void kc3_gtk4_paned_set_shrink_start_child (GtkPaned **paned,
-                                            bool value);
-void kc3_gtk4_paned_set_start_child (GtkPaned **paned,
-                                     GtkWidget **child);
+GtkPaned ** kc3_gtk4_paned_set_end_child (GtkPaned **paned,
+                                          GtkWidget **child);
+GtkPaned ** kc3_gtk4_paned_set_resize_start_child (GtkPaned **paned,
+                                                   bool value);
+GtkPaned ** kc3_gtk4_paned_set_shrink_start_child (GtkPaned **paned,
+                                                   bool value);
+GtkPaned ** kc3_gtk4_paned_set_start_child (GtkPaned **paned,
+                                            GtkWidget **child);
 
 #endif /* KC3_GTK4_PANED_H */
diff --git a/ikc3/ikc3.c b/ikc3/ikc3.c
index 3cf2854..2f0c913 100644
--- a/ikc3/ikc3.c
+++ b/ikc3/ikc3.c
@@ -146,6 +146,11 @@ int main (int argc, char **argv)
       argc -= 2;
       argv += 2;
     }
+    else if (argc > 0 && ! strcmp("--trace", *argv)) {
+      g_kc3_env->trace = true;
+      argc--;
+      argv++;
+    }
     else if (argc == 1 && ! strcmp("--quit", *argv)) {
       r = 0;
       goto clean;
diff --git a/kmsg/Makefile b/kmsg/Makefile
index d96a53e..9723d00 100644
--- a/kmsg/Makefile
+++ b/kmsg/Makefile
@@ -1,6 +1,6 @@
 
 run:
-	ikc3 --load kmsg.kc3 --quit
+	ikc3 --trace --load kmsg.kc3 --quit
 
 gdb:
 	gdb ../ikc3/.libs/ikc3_debug
diff --git a/lib/kc3/0.1/gtk4/paned.kc3 b/lib/kc3/0.1/gtk4/paned.kc3
index 8643ada..4a9a2d8 100644
--- a/lib/kc3/0.1/gtk4/paned.kc3
+++ b/lib/kc3/0.1/gtk4/paned.kc3
@@ -7,23 +7,25 @@ defmodule Gtk4.Paned do
   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,
+  def set_end_child = cfn Ptr "kc3_gtk4_paned_set_end_child" (Ptr,
     Ptr)
 
-  def set_resize_end_child =
-    cfn Void "kc3_gtk4_paned_set_resize_end_child" (Ptr, Bool)
+  def set_position = cfn Ptr "kc3_gtk4_paned_set_position" (Ptr, Tag)
 
-  def set_shrink_end_child =
-    cfn Void "kc3_gtk4_paned_set_shrink_end_child" (Ptr, Bool)
+  def set_resize_end_child =
+    cfn Ptr "kc3_gtk4_paned_set_resize_end_child" (Ptr, Bool)
 
   def set_resize_start_child =
-    cfn Void "kc3_gtk4_paned_set_resize_start_child" (Ptr, Bool)
+    cfn Ptr "kc3_gtk4_paned_set_resize_start_child" (Ptr, Bool)
+
+  def set_shrink_end_child =
+    cfn Ptr "kc3_gtk4_paned_set_shrink_end_child" (Ptr, Bool)
 
   def set_shrink_start_child =
-    cfn Void "kc3_gtk4_paned_set_shrink_start_child" (Ptr, Bool)
+    cfn Ptr "kc3_gtk4_paned_set_shrink_start_child" (Ptr, Bool)
 
   # set_start_child(paned, child)
-  def set_start_child = cfn Void "kc3_gtk4_paned_set_start_child" (Ptr,
+  def set_start_child = cfn Ptr "kc3_gtk4_paned_set_start_child" (Ptr,
     Ptr)
 
 end
diff --git a/lib/kc3/0.1/gtk4/widget.kc3 b/lib/kc3/0.1/gtk4/widget.kc3
index 942c91e..8988eac 100644
--- a/lib/kc3/0.1/gtk4/widget.kc3
+++ b/lib/kc3/0.1/gtk4/widget.kc3
@@ -2,6 +2,8 @@ defmodule Gtk4.Widget do
 
   dlopen(__DIR__ + "../gtk4.so")
 
-  # deftype Ptr
+  def set_halign = cfn Ptr "kc3_gtk4_widget_set_halign" (Ptr, Sym)
+
+  def set_size_request = cfn Ptr "kc3_gtk4_widget_set_size_request" (Ptr, Tag, Tag)
 
 end