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 Glib
  use functional-dylan;
  use C-FFI;
  use Machine-Word;
  export Glib;
end library Glib;

define module Glib
  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};

%include acconfig.exp
%include config.exp
%include glib.exp
%include glibconfig.exp
%include gmodule.exp
%include gmoduleconf.exp

  // Useful extensions from first.dylan
  export \open-accessor-definer;

  // Protocols from first.dylan
  export area-value, area-value-setter,
         background-value, background-value-setter,
         bg-gc-value, bg-gc-value-setter,
	 bin-value, bin-value-setter,
	 button-value, button-value-setter,
	 children-value, children-value-setter,
	 colormap-value, colormap-value-setter,
	 configure-event-value, configure-event-value-setter,
	 container-value, container-value-setter,
	 cursor-value, cursor-value-setter,
	 data-value, data-value-setter,
	 depth-value, depth-value-setter,
	 destroy-value, destroy-value-setter,
         fg-gc-value, fg-gc-value-setter,
	 fill-value, fill-value-setter,
	 flags-value, flags-value-setter,
	 focus-value, focus-value-setter,
	 font-value, font-value-setter,
	 foreground-value, foreground-value-setter,
	 func-value, func-value-setter,
	 height-value, height-value-setter,
	 key-value, key-value-setter,
         index-value, index-value-setter,
	 length-value, length-value-setter,
	 max-width-value, max-width-value-setter,
	 min-width-value, min-width-value-setter,
	 motion-value, motion-value-setter,
	 name-value, name-value-setter,
	 parent-value, parent-value-setter,
	 parent-class-value, parent-class-value-setter,
	 position-value, position-value-setter,
	 property-value, property-value-setter,
	 ref-count-value, ref-count-value-setter,
	 selection-value, selection-value-setter,
	 seq-id-value, seq-id-value-setter,
	 spacing-value, spacing-value-setter,
	 state-value, state-value-setter,
	 style-value, style-value-setter,
	 target-value, target-value-setter,
	 text-value, text-value-setter,
         text-end-value, text-end-value-setter,
	 title-value, title-value-setter,
	 type-value, type-value-setter,
	 user-data-value, user-data-value-setter,
	 value-value, value-value-setter,
	 widget-value, widget-value-setter,
	 width-value, width-value-setter,
	 window-value, window-value-setter,
	 wmclass-class-value, wmclass-class-value-setter,
	 wmclass-name-value, wmclass-name-value-setter,
	 x-value, x-value-setter,
	 y-value, y-value-setter;
  
  // Hacks from special.dylan
  export <C-string**>,
         <gchar***>;

  export $GLIB-SYSDEF-POLLIN,
         $GLIB-SYSDEF-POLLOUT,
         $GLIB-SYSDEF-POLLPRI,
         $GLIB-SYSDEF-POLLERR,
         $GLIB-SYSDEF-POLLHUP,
         $GLIB-SYSDEF-POLLNVAL;

  export <GAllocator*>, <GAllocator**>,
         <GCache*>, <GCache**>,
         <GCond*>, <GCond**>,
         <GData*>, <GData**>,
         <GHashTable*>, <GHashTable**>,
         <GMainLoop*>, <GMainLoop**>,
         <GMemChunk*>, <GMemChunk**>,
         <GModule*>, <GModule**>,
         <GMutex*>, <GMutex**>,
         <GPrivate*>, <GPrivate**>,
         <GRelation*>, <GRelation**>,
         <GStringChunk*>, <GStringChunk**>,
         <GTimer*>, <GTimer**>,
         <GTree*>, <GTree**>;
end module Glib;
