## Documentation

Table of Contents
Class Inheritance Tree
Widget Screenshots
Package groups

1.     -----------------------------------------------------------------------

2.     --          GtkAda - Ada95 binding for the Gimp Toolkit              --

3.     --                                                                   --

4.     --                        Copyright (C) 2000                         --

5.     --        Emmanuel Briot, Joel Brobecker and Arnaud Charlet          --

6.     --                                                                   --

7.     -- This library is free software; you can redistribute it and/or     --

8.     -- modify it under the terms of the GNU General Public               --

9.     -- License as published by the Free Software Foundation; either      --

10.     -- version 2 of the License, or (at your option) any later version.  --

11.     --                                                                   --

12.     -- This library is distributed in the hope that it will be useful,   --

13.     -- but WITHOUT ANY WARRANTY; without even the implied warranty of    --

14.     -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU --

15.     -- General Public License for more details.                          --

16.     --                                                                   --

17.     -- You should have received a copy of the GNU General Public         --

18.     -- License along with this library; if not, write to the             --

19.     -- Free Software Foundation, Inc., 59 Temple Place - Suite 330,      --

20.     -- Boston, MA 02111-1307, USA.                                       --

21.     --                                                                   --

22.     -- As a special exception, if other files instantiate generics from  --

23.     -- this unit, or you link this unit with other files to produce an   --

24.     -- executable, this  unit  does not  by itself cause  the resulting  --

25.     -- executable to be covered by the GNU General Public License. This  --

26.     -- exception does not however invalidate any other reasons why the   --

27.     -- executable file  might be covered by the  GNU Public License.     --

28.     -----------------------------------------------------------------------

30.     --  <description>

31.     --  This package provides wrapper code for dynamic module loading

32.     --  </description>

33.     --  <group>Glib, the general-purpose library</group>

35.     package Glib.ModuleTo API docTo specTo body is

36.        pragma Preelaborate;

38.        type Module_Flags is mod 2 ** 32;

39.        Module_Bind_Lazy : constant Module_FlagsTo API docTo spec := 2 ** 0;

40.        Module_Bind_Mask : constant Module_FlagsTo API docTo spec := 16#1#;

42.        type G_Module is new C_ProxyTo API docTo spec;

44.        function Module_SupportedTo API docTo body return Boolean;

45.        --  Return True if dynamic module loading is supported

47.        function Module_OpenTo API docTo body

48.          (File_Name : String;

49.           Flags     : Module_FlagsTo API docTo spec := Module_Bind_LazyTo API docTo spec) return G_ModuleTo API docTo spec;

50.        --  Open a module `file_name' and return handle, which is null on error.

52.        function Module_CloseTo API docTo body (Module : G_ModuleTo API docTo spec) return Boolean;

53.        --  Close a previously opened module, return True on success.

55.        procedure Module_Make_ResidentTo API docTo body (Module : G_ModuleTo API docTo spec);

56.        --  Make a module resident so Module_Close on it will be ignored

58.        function Module_ErrorTo API docTo body return String;

59.        --  Query the last module error as a string

61.        generic

62.           type Pointer is private;

63.           --  This is typically a pointer to procedure/function.

65.        procedure Generic_Module_SymbolTo API docTo body

66.          (Module      : G_ModuleTo API docTo spec;

67.           Symbol_Name : String;

68.           Symbol      : out PointerTo API docTo spec;

69.           Success     : out Boolean);

70.        --  Retrieve a symbol pointer from `module'.

71.        --  Success is set to True on success.

73.        function Module_NameTo API docTo body (Module : G_ModuleTo API docTo spec) return String;

74.        --  Retrieve the file name from an existing module

76.        function Module_Build_PathTo API docTo body

77.          (Directory   : String;

78.           Module_Name : String) return String;

79.        --  Build the actual file name containing a module.

80.        --  `directory' is the directory where the module file is supposed to be, or

81.        --  the null string in which case it should either be in the current

82.        --  directory or, on some operating systems, in some standard place, for

83.        --  instance on the PATH. Hence, to be absolutely sure to get the correct

84.        --  module, always pass in a directory. The file name consists of the

85.        --  directory, if supplied, and `module_name' suitably decorated accoring to

86.        --  the operating system's conventions (for instance lib*.so or *.dll).

87.        --

88.        --  No checks are made that the file exists, or is of correct type.

90.     private

91.        pragma Import (C, Module_Make_ResidentTo API docTo spec, "g_module_make_resident");

92.     end Glib.ModuleTo API docTo specTo body;