[Gd-chatter] r11356 - in branches/opendylan-melange: gtk-c-ffi melange

hannes at gwydiondylan.org hannes at gwydiondylan.org
Wed May 16 01:21:15 CEST 2007


Author: hannes
Date: Wed May 16 01:21:13 2007
New Revision: 11356

Modified:
   branches/opendylan-melange/gtk-c-ffi/gtk-2-10-win32.dylan
   branches/opendylan-melange/gtk-c-ffi/gtk-2-10-win32.intr
   branches/opendylan-melange/gtk-c-ffi/gtk-module-2-10-win32.dylan
   branches/opendylan-melange/melange/c-decl-write-c-ffi.dylan
Log:
Job: fd
improve class hierarchy, if "typdef struct _GdkDrawable GdkWindow" is encountered, emit a
C-subtype _Gdkwindow (_GdkDrawable and a constant GdkWindow = _GdkWindow to
have a _GdkWindow type for instantiation

Modified: branches/opendylan-melange/gtk-c-ffi/gtk-2-10-win32.dylan
==============================================================================
--- branches/opendylan-melange/gtk-c-ffi/gtk-2-10-win32.dylan	(original)
+++ branches/opendylan-melange/gtk-c-ffi/gtk-2-10-win32.dylan	Wed May 16 01:21:13 2007
@@ -21,7 +21,9 @@
 define C-pointer-type <GData> => <_GData>;
 
 define C-subtype <_GObject> (<_GTypeInstance>) end;
-define constant <GInitiallyUnowned> = <_GObject>;
+define C-subtype <_GInitiallyUnowned> (<_GObject>) end;
+
+define constant <GInitiallyUnowned> = <_GInitiallyUnowned>;
 
 define constant <guint32> = <C-unsigned-int>;
 
@@ -34,8 +36,7 @@
 
 define constant <gchar> = <C-signed-char>;
 
-define constant <gchar*> = <C-String>;
-//define C-pointer-type <gchar*> => <gchar>;
+define constant <gchar*> = <C-string>;
 define constant <GObject> = <_GObject>;
 
 define C-struct <_GdkColor>
@@ -81,7 +82,9 @@
 define C-pointer-type <GdkGC*> => <GdkGC>;
 define constant <GdkGC<@5>> = <GdkGC*>;
 define C-subtype <_GdkDrawable> (<_GObject>) end;
-define constant <GdkPixmap> = <_GdkDrawable>;
+define C-subtype <_GdkPixmap> (<_GdkDrawable>) end;
+
+define constant <GdkPixmap> = <_GdkPixmap>;
 
 define C-pointer-type <GdkPixmap*> => <GdkPixmap>;
 define constant <GdkPixmap<@5>> = <GdkPixmap*>;
@@ -145,7 +148,9 @@
 
 define constant <GtkAllocation> = <GdkRectangle>;
 
-define constant <GdkWindow> = <_GdkDrawable>;
+define C-subtype <_GdkWindow> (<_GdkDrawable>) end;
+
+define constant <GdkWindow> = <_GdkWindow>;
 
 define C-subtype <_GtkWidget> (<_GtkObject>, <_AtkImplementorIface>) end;
 define constant <GtkWidget> = <_GtkWidget>;
@@ -183,8 +188,6 @@
 define constant $GDK-SUPER-MASK = 67108864;
 define constant $GDK-HYPER-MASK = 134217728;
 define constant $GDK-META-MASK = 268435456;
-//define constant $GDK-RELEASE-MASK = #ex0000000040000000;
-//define constant $GDK-MODIFIER-MASK = #ex000000005C001FFF;
 
 define constant <GdkGC<@32>> = <GdkGC*>;
 define C-struct <_cairo-font-options>
@@ -1932,7 +1935,9 @@
 
 define C-pointer-type <GtkWidgetAuxInfo> => <_GtkWidgetAuxInfo>;
 
-define constant <GdkBitmap> = <_GdkDrawable>;
+define C-subtype <_GdkBitmap> (<_GdkDrawable>) end;
+
+define constant <GdkBitmap> = <_GdkBitmap>;
 
 define C-struct <_GtkWidgetShapeInfo>
   slot GtkWidgetShapeInfo-offset-x :: <C-signed-short>;
@@ -4405,11 +4410,8 @@
 
 //define constant $UINT-MAX = #ex00000000FFFFFFFF;
 
-//define constant $LONG-MIN = #exFFFFFFFF80000000;
 
-//define constant $LONG-MAX = #ex000000007FFFFFFF;
 
-//define constant $ULONG-MAX = #ex00000000FFFFFFFF;
 
 define constant $_POSIX-ARG-MAX = 4096;
 
@@ -6333,7 +6335,6 @@
   c-name: "g_once_impl";
 end;
 
-//define constant $G-MUTEX-DEBUG-MAGIC = #ex00000000F8E18AD7;
 
 define C-function g-atomic-int-exchange-and-add
   input parameter arg1 :: <gint*>;
@@ -12154,7 +12155,6 @@
 define C-pointer-type <_HEAPINFO> => <_heapinfo>;
 
  /* Ignoring declaration for {instance of <variable-declaration>} "_amblksiz"*/
-//define constant $_HEAP-MAXREQ = #ex00000000FFFFFFE0;
 
 define constant $_HEAPEMPTY = -1;
 

Modified: branches/opendylan-melange/gtk-c-ffi/gtk-2-10-win32.intr
==============================================================================
--- branches/opendylan-melange/gtk-c-ffi/gtk-2-10-win32.intr	(original)
+++ branches/opendylan-melange/gtk-c-ffi/gtk-2-10-win32.intr	Wed May 16 01:21:13 2007
@@ -278,11 +278,10 @@
       "_gtk_window_reposition",
       "_gtk_window_internal_set_focus"
   	},
-    map: { "gchar*" => <byte-string>,
-           "char*" => <byte-string>,
-           "GCallback" => <function>},
-    rename: { "gtk_init" => %gtk-init },
-    equate: { "gchar*" => <C-string> },
+    map: {"gchar*" => <byte-string>,
+          "char*" => <byte-string>,
+          "GCallback" => <function>},
+    rename: {"gtk_init" => %gtk-init },
     name-mapper: gtk-name-mapping;
 
   struct "struct _GTypeInstance",

Modified: branches/opendylan-melange/gtk-c-ffi/gtk-module-2-10-win32.dylan
==============================================================================
--- branches/opendylan-melange/gtk-c-ffi/gtk-module-2-10-win32.dylan	(original)
+++ branches/opendylan-melange/gtk-c-ffi/gtk-module-2-10-win32.dylan	Wed May 16 01:21:13 2007
@@ -1036,7 +1036,6 @@
     $GDK-MODE-DISABLED,
     $GDK-MODE-SCREEN,
     $GDK-MODE-WINDOW,
-    $GDK-MODIFIER-MASK,
     $GDK-MOTION-NOTIFY,
     $GDK-MOUSE,
     $GDK-MSB-FIRST,
@@ -1100,7 +1099,6 @@
     $GDK-PROXIMITY-OUT,
     $GDK-PROXIMITY-OUT-MASK,
     $GDK-QUESTION-ARROW,
-    $GDK-RELEASE-MASK,
     $GDK-RGB-DITHER-MAX,
     $GDK-RGB-DITHER-NONE,
     $GDK-RGB-DITHER-NORMAL,
@@ -3570,6 +3568,7 @@
     <_GIConv>,
     <_GIOChannel>,
     <_GIOFuncs>,
+    <_GInitiallyUnowned>,
     <_GInterfaceInfo>,
     <_GKeyFile>,
     <_GList>,
@@ -3662,6 +3661,7 @@
     <_GValue>,
     <_GValueArray>,
     <_GdkAtom>,
+    <_GdkBitmap>,
     <_GdkColor>,
     <_GdkColormap>,
     <_GdkColormapClass>,
@@ -3723,6 +3723,7 @@
     <_GdkPixbufLoaderClass>,
     <_GdkPixbufSimpleAnim>,
     <_GdkPixbufSimpleAnimClass>,
+    <_GdkPixmap>,
     <_GdkPixmapObject>,
     <_GdkPixmapObjectClass>,
     <_GdkPoint>,
@@ -3738,6 +3739,7 @@
     <_GdkTrapezoid>,
     <_GdkVisual>,
     <_GdkVisualClass>,
+    <_GdkWindow>,
     <_GdkWindowAttr>,
     <_GdkWindowObject>,
     <_GdkWindowObjectClass>,

Modified: branches/opendylan-melange/melange/c-decl-write-c-ffi.dylan
==============================================================================
--- branches/opendylan-melange/melange/c-decl-write-c-ffi.dylan	(original)
+++ branches/opendylan-melange/melange/c-decl-write-c-ffi.dylan	Wed May 16 01:21:13 2007
@@ -40,11 +40,26 @@
   // form "typedef struct foo foo".
   if (~decl.equated? 
         & decl.simple-name ~= decl.type.simple-name)
-    if (~ instance?(decl.type, <struct-declaration>) | decl.type.superclasses)
-      format(stream, "define constant %s = %s;\n\n",
-             decl.dylan-name, decl.type.dylan-name);
+    if (instance?(decl.type, <struct-declaration>))
+      if (decl.type.superclasses)
+        if (copy-sequence(decl.dylan-name, start: 1) ~= copy-sequence(decl.type.dylan-name, start: 2))
+          let underscore-name = concatenate("<", copy-sequence(decl.dylan-name));
+          underscore-name[1] := '_';
+          format(stream, "define C-subtype %s (%s) end;\n\n",
+                 underscore-name, decl.type.dylan-name);
+          register-written-name(back-end.written-names, underscore-name, decl);
+          format(stream, "define constant %s = %s;\n\n",
+                 decl.dylan-name, underscore-name);
+        else
+          format(stream, "define constant %s = %s;\n\n",
+                 decl.dylan-name, decl.type.dylan-name);
+        end;
+      else
+        format(stream, "define C-pointer-type %s => %s;\n\n",
+               decl.dylan-name, decl.type.dylan-name);
+      end;
     else
-      format(stream, "define C-pointer-type %s => %s;\n\n",
+      format(stream, "define constant %s = %s;\n\n",
              decl.dylan-name, decl.type.dylan-name);
     end;
     register-written-name(back-end.written-names, decl.dylan-name, decl);



More information about the chatter mailing list