## PangoEngineLang PangoEngineLang — Rendering-system independent script engines |

## Stability Level

Unstable, unless otherwise indicated

## Functions

#define | PANGO_ENGINE_LANG_DEFINE_TYPE()

## Types and Values

| PangoEngineLang
struct | PangoEngineLangClass
#define | PANGO_ENGINE_TYPE_LANG

## Object Hierarchy

        GObject
        ╰── PangoEngine
            ╰── PangoEngineLang

## Description

The language engines are rendering-system independent engines that determine line, word, and character breaks for character strings. These engines are used in `pango_break()`.

## Functions

### PANGO_ENGINE_LANG_DEFINE_TYPE()

    #define             PANGO_ENGINE_LANG_DEFINE_TYPE(name, prefix, class_init, instance_init)

`PANGO_ENGINE_LANG_DEFINE_TYPE` has been deprecated since version 1.38 and should not be used in newly-written code.

Outputs the necessary code for GObject type registration for a PangoEngineLang class defined in a module. Two static symbols are defined.

     static GType prefix_type;
     static void prefix_register_type (GTypeModule module);

The ``prefix``_register_type()`` function should be called in your `script_engine_init()` function for each type that your module implements, and then your `script_engine_create()` function can create instances of the object as follows:

    1
    PangoEngine *engine = g_object_new (<em class="replaceable"><code>prefix</code></em>_type, NULL);

#### Parameters

name | Name of the the type to register (for example:, `ArabicEngineFc` |
prefix | Prefix for symbols that will be defined (for example:, `arabic_engine_fc` |
class_init | Class initialization function for the new type, or `NULL`. | [nullable]
instance_init | Instance initialization function for the new type, or `NULL`. | [nullable]

## Types and Values

### PangoEngineLang

    typedef struct _PangoEngineLang PangoEngineLang;

`PangoEngineLang` has been deprecated since version 1.38 and should not be used in newly-written code.

The PangoEngineLang class is implemented by engines that customize the rendering-system independent part of the Pango pipeline for a particular script or language. For instance, a custom PangoEngineLang could be provided for Thai to implement the dictionary-based word boundary lookups needed for that language.

### struct PangoEngineLangClass

    struct PangoEngineLangClass {
      void (*script_break) (PangoEngineLang *engine,
    			const char    *text,
    			int            len,
    			PangoAnalysis *analysis,
    			PangoLogAttr  *attrs,
    			int            attrs_len);
    };

`PangoEngineLangClass` has been deprecated since version 1.38 and should not be used in newly-written code.

Class structure for PangoEngineLang

#### Members

`script_break` () | Provides a custom implementation of `pango_break()`. If `NULL`, `pango_default_break()` is used instead. If not `NULL`, for Pango versions before 1.16 (module interface version before 1.6.0), this was called instead of `pango_default_break()`, but in newer versions, `pango_default_break()` is always called and this is called after that to allow tailoring the breaking results. | [nullable]

### PANGO_ENGINE_TYPE_LANG

    #define PANGO_ENGINE_TYPE_LANG "PangoEngineLang"

`PANGO_ENGINE_TYPE_LANG` has been deprecated since version 1.38 and should not be used in newly-written code.

A string constant defining the engine type for language engines. These engines derive from PangoEngineLang.