Module:    Dylan-user	%comment -*- Mode: Dylan -*-
Synopsis:  FFI declarations translated from GTK header files.
%comment   This file is a template that is expanded to produce "library.dylan".
Copyright: (c) 1999 Functional Objects, Inc.  All rights reserved.


define library GTK-Common
  use functional-dylan;
  use C-FFI;
  use Machine-Word;
  use GLib;
  use GDK;
  export GTK-Common;
end library GTK-Common;

define module GTK-Common
  use functional-dylan;
  use C-FFI,
    export: {null-pointer, null-pointer?, pointer-address,
	     pointer-value, pointer-value-setter, size-of,
	     <C-void*>, <C-pointer>, <C-string>, <C-unicode-string>,
	     <C-string*>, <C-unicode-string*>,
	     pointer-cast, destroy,
	     pointer-value-address, c-type-cast,
	     c-callable-wrapper-definer, 
	     \with-c-string, \with-stack-structure } ;
  use Machine-Integer-User, 
    export: {%logior, %logand};
  use Glib,
    /* have to export here names that are used as structure accessors in
       both modules. */
    export: { data-value, data-value-setter,
              flags-value, flags-value-setter,
              key-value, key-value-setter,
              parent-value, parent-value-setter,
              ref-count-value, ref-count-value-setter,
              user-data-value, user-data-value-setter };
  use GDK;

%include gtkfeatures.exp
%include gtktypeutils.exp
%include gtkarg.exp
%include gtkmain.exp
%include gtkenums.exp
%include gtkrc.exp
%include gtkstyle.exp
%include gtkdata.exp
%include gtkobject.exp
%include gtkmarshal.exp
%include gtksignal.exp
%include gtkaccelgroup.exp
%include gtkbin.exp
%include gtkwindow.exp
%include gtkadjustment.exp
%include gtkcontainer.exp
%include gtkfixed.exp
%include gtkbox.exp
%include gtkhbox.exp
%include gtkvbox.exp
%include gtkwidget.exp
%include gtkmisc.exp
%include gtkthemes.exp
%include gtkdrawingarea.exp

  // Protocols from first.dylan
  export accel-group-value, accel-group-value-setter,
	 callback-value, callback-value-setter,
	 callback-data-value, callback-data-value-setter,
	 changed-value, changed-value-setter,
	 child-value, child-value-setter,
	 draw-slider-value, draw-slider-value-setter;

  // Callbacks
  export gtk-signal-connect*,
         gtk-signal-connect-object*,
         \gtk-callback-definer,
         \delete-event-callback-definer,
         \widget-callback-definer,
         \configure-callback-definer,
         \motion-callback-definer,
         \expose-callback-definer;

  // Hacks from special.dylan
  export initialize-gtk;

  // Type coercion
  export \gtk-type-cast-function-definer,
         \GTK-OBJECT,
         \GTK-CONTAINER,
         \GTK-BOX,
         \GTK-WIDGET;
end module GTK-Common;
