[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