pangomm 2.54.0
Public Member Functions | Static Public Member Functions | Protected Attributes | Related Symbols | List of all members
Pango::Language Class Reference

A Pango::Language is used to represent a language. More...

#include <pangomm/language.h>

Public Member Functions

 Language (PangoLanguage *gobject, bool make_a_copy=true)
 
 Language (const Language &other)
 
Languageoperator= (const Language &other)
 
 Language (Language &&other) noexcept
 
Languageoperator= (Language &&other) noexcept
 
 ~Language () noexcept
 
void swap (Language &other) noexcept
 
PangoLanguagegobj ()
 Provides access to the underlying C instance.
 
const PangoLanguagegobj () const
 Provides access to the underlying C instance.
 
PangoLanguagegobj_copy () const
 Provides access to the underlying C instance. The caller is responsible for freeing it. Use when directly setting fields in structs.
 
 Language ()
 Constructs an empty language tag.
 
 Language (const Glib::ustring &language)
 Constructs a Pango::Language object from a RFC-3066 format language tag.
 
Glib::ustring get_string () const
 Gets a RFC-3066 format string representing the given language tag.
 
bool matches (const Glib::ustring &range_list) const
 Checks if a language tag matches one of the elements in a list of language ranges.
 
bool includes_script (Script script) const
 Determines if script is one of the scripts used to write language.
 
std::vector< Scriptget_scripts () const
 Determines the scripts used to write this language.
 

Static Public Member Functions

static GType get_type ()
 Get the GType for this class, for use with the underlying GObject type system.
 

Protected Attributes

PangoLanguagegobject_
 

Related Symbols

(Note that these are not member symbols.)

void swap (Language &lhs, Language &rhs) noexcept
 
Pango::Language wrap (PangoLanguage *object, bool take_copy=false)
 A Glib::wrap() method for this object.
 

Detailed Description

A Pango::Language is used to represent a language.

Constructor & Destructor Documentation

◆ Language() [1/5]

Pango::Language::Language ( PangoLanguage gobject,
bool  make_a_copy = true 
)
explicit

◆ Language() [2/5]

Pango::Language::Language ( const Language other)

◆ Language() [3/5]

Pango::Language::Language ( Language &&  other)
noexcept

◆ ~Language()

Pango::Language::~Language ( )
noexcept

◆ Language() [4/5]

Pango::Language::Language ( )

Constructs an empty language tag.

◆ Language() [5/5]

Pango::Language::Language ( const Glib::ustring &  language)

Constructs a Pango::Language object from a RFC-3066 format language tag.

This function first canonicalizes the string by converting it to lowercase, mapping '_' to '-', and stripping all characters other than letters and '-'.

Member Function Documentation

◆ get_scripts()

std::vector< Script > Pango::Language::get_scripts ( ) const

Determines the scripts used to write this language.

If nothing is known about the language tag then an empty vector is returned. The list of scripts returned starts with the script that the language uses most and continues to the one it uses least.

Most languages use only one script for writing, but there are some that use two (Latin and Cyrillic for example), and a few use three (Japanese for example). Applications should not make any assumptions on the maximum number of scripts returned though, except that it is a small number.

The includes_script() function uses this function internally.

Note
While the return value is declared as Pango::Script, the returned values are from the GUnicodeScript enumeration, which may have more values. Callers need to handle unknown values.
Returns
A vector of Script values.
Since pangomm 2.14:

◆ get_string()

Glib::ustring Pango::Language::get_string ( ) const

Gets a RFC-3066 format string representing the given language tag.

Returns
A string representing the language tag. An empty string is returned if the language tag is empty.

◆ get_type()

static GType Pango::Language::get_type ( )
static

Get the GType for this class, for use with the underlying GObject type system.

◆ gobj() [1/2]

PangoLanguage * Pango::Language::gobj ( )
inline

Provides access to the underlying C instance.

◆ gobj() [2/2]

const PangoLanguage * Pango::Language::gobj ( ) const
inline

Provides access to the underlying C instance.

◆ gobj_copy()

PangoLanguage * Pango::Language::gobj_copy ( ) const

Provides access to the underlying C instance. The caller is responsible for freeing it. Use when directly setting fields in structs.

◆ includes_script()

bool Pango::Language::includes_script ( Script  script) const

Determines if script is one of the scripts used to write language.

The returned value is conservative; if nothing is known about the language tag language, true will be returned, since, as far as Pango knows, script might be used to write language.

This routine is used in Pango's itemization process when determining if a supplied language tag is relevant to a particular section of text. It probably is not useful for applications in most circumstances.

This function uses get_scripts() internally.

Since pangomm 1.4:
Parameters
scriptA Pango::Script.
Returns
true if script is one of the scripts used to write language or if nothing is known about language (including the case that language is nullptr), false otherwise.

◆ matches()

bool Pango::Language::matches ( const Glib::ustring &  range_list) const

Checks if a language tag matches one of the elements in a list of language ranges.

A language tag is considered to match a range in the list if the range is '*', the range is exactly the tag, or the range is a prefix of the tag, and the character after it in the tag is '-'.

Parameters
range_listA list of language ranges, separated by ';', ':', ',', or space characters. Each element must either be '*', or a RFC 3066 language range canonicalized as by from_string().
Returns
true if a match was found.

◆ operator=() [1/2]

Language & Pango::Language::operator= ( const Language other)

◆ operator=() [2/2]

Language & Pango::Language::operator= ( Language &&  other)
noexcept

◆ swap()

void Pango::Language::swap ( Language other)
noexcept

Friends And Related Symbol Documentation

◆ swap()

void swap ( Language lhs,
Language rhs 
)
related
Parameters
lhsThe left-hand side
rhsThe right-hand side

◆ wrap()

Pango::Language wrap ( PangoLanguage object,
bool  take_copy = false 
)
related

A Glib::wrap() method for this object.

Parameters
objectThe C instance.
take_copyFalse if the result should take ownership of the C instance. True if it should take a new copy or ref.
Returns
A C++ instance that wraps this C instance.

Member Data Documentation

◆ gobject_

PangoLanguage* Pango::Language::gobject_
protected