1 /*
2  * Distributed under the Boost Software License, Version 1.0.
3  *    (See accompanying file LICENSE_1_0.txt or copy at
4  *          http://www.boost.org/LICENSE_1_0.txt)
5  */
6 module pango.c.modules;
7 
8 version (Backend)
9 {
10     import pango.c.engine;
11     import pango.c.language;
12     import pango.c.script;
13 
14     import glib;
15     import gobject;
16 
17     extern(C):
18 
19     struct PangoMap;
20     struct PangoMapEntry;
21 
22     /**
23      * PangoIncludedModule:
24      * @list: a function that lists the engines defined in this module.
25      * @init: a function to initialize the module.
26      * @exit: a function to finalize the module.
27      * @create: a function to create an engine, given the engine name.
28      *
29      * The #PangoIncludedModule structure for a statically linked module
30      * contains the functions that would otherwise be loaded from a dynamically
31      * loaded module.
32      */
33     struct PangoIncludedModule
34     {
35       void function (PangoEngineInfo **engines,
36 		    int              *n_engines) list;
37       void function (GTypeModule      *mod) init;
38       void function () exit;
39       PangoEngine *function (const char       *id) create;
40     }
41 
42     PangoMap *     pango_find_map        (PangoLanguage       *language,
43 				          guint                engine_type_id,
44 				          guint                render_type_id);
45     PangoEngine *  pango_map_get_engine  (PangoMap            *map,
46 				          PangoScript          script);
47     void           pango_map_get_engines (PangoMap            *map,
48 				          PangoScript          script,
49 				          GSList             **exact_engines,
50 				          GSList             **fallback_engines);
51     void           pango_module_register (PangoIncludedModule *mod);
52 
53 }