mirror of https://github.com/subgraph/fw-daemon
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
707 lines
25 KiB
707 lines
25 KiB
/*
|
|
* Copyright (c) 2015- terrak <terrak1975@gmail.com>
|
|
*
|
|
* This file originated from: http://www.terrak.net/
|
|
*
|
|
* Permission to use, copy, modify, and distribute this software for any
|
|
* purpose with or without fee is hereby granted, provided that the above
|
|
* copyright notice and this permission notice appear in all copies.
|
|
*
|
|
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
*/
|
|
|
|
package pango
|
|
|
|
// #cgo pkg-config: pango
|
|
// #include <pango/pango.h>
|
|
// #include "pango.go.h"
|
|
import "C"
|
|
import (
|
|
// "github.com/andre-hub/gotk3/glib"
|
|
// "github.com/andre-hub/gotk3/cairo"
|
|
"unsafe"
|
|
|
|
"github.com/gotk3/gotk3/glib"
|
|
)
|
|
|
|
func init() {
|
|
tm := []glib.TypeMarshaler{
|
|
// Enums
|
|
// Objects/Interfaces
|
|
{glib.Type(C.pango_font_description_get_type()), marshalFontDescription},
|
|
}
|
|
glib.RegisterGValueMarshalers(tm)
|
|
}
|
|
|
|
// FontDescription is a representation of PangoFontDescription.
|
|
type FontDescription struct {
|
|
pangoFontDescription *C.PangoFontDescription
|
|
}
|
|
|
|
// Native returns a pointer to the underlying PangoLayout.
|
|
func (v *FontDescription) Native() uintptr {
|
|
return uintptr(unsafe.Pointer(v.native()))
|
|
}
|
|
|
|
func (v *FontDescription) native() *C.PangoFontDescription {
|
|
return (*C.PangoFontDescription)(unsafe.Pointer(v.pangoFontDescription))
|
|
}
|
|
|
|
// FontMetrics is a representation of PangoFontMetrics.
|
|
type FontMetrics struct {
|
|
pangoFontMetrics *C.PangoFontMetrics
|
|
}
|
|
|
|
// Native returns a pointer to the underlying PangoLayout.
|
|
func (v *FontMetrics) Native() uintptr {
|
|
return uintptr(unsafe.Pointer(v.native()))
|
|
}
|
|
|
|
func (v *FontMetrics) native() *C.PangoFontMetrics {
|
|
return (*C.PangoFontMetrics)(unsafe.Pointer(v.pangoFontMetrics))
|
|
}
|
|
|
|
const (
|
|
PANGO_SCALE = C.PANGO_SCALE
|
|
)
|
|
|
|
type Style int
|
|
|
|
const (
|
|
STYLE_NORMAL Style = C.PANGO_STYLE_NORMAL
|
|
STYLE_OBLIQUE Style = C.PANGO_STYLE_OBLIQUE
|
|
STYLE_ITALIC Style = C.PANGO_STYLE_ITALIC
|
|
)
|
|
|
|
type Variant int
|
|
|
|
const (
|
|
VARIANT_NORMAL Variant = C.PANGO_VARIANT_NORMAL
|
|
VARIANT_SMALL_CAPS Variant = C.PANGO_VARIANT_SMALL_CAPS
|
|
)
|
|
|
|
type Weight int
|
|
|
|
const (
|
|
WEIGHT_THIN Weight = C.PANGO_WEIGHT_THIN /* 100 */
|
|
WEIGHT_ULTRALIGHT Weight = C.PANGO_WEIGHT_ULTRALIGHT /* 200 */
|
|
WEIGHT_LIGHT Weight = C.PANGO_WEIGHT_LIGHT /* 300 */
|
|
WEIGHT_SEMILIGHT Weight = 350 /* 350 */
|
|
WEIGHT_BOOK Weight = C.PANGO_WEIGHT_BOOK /* 380 */
|
|
WEIGHT_NORMAL Weight = C.PANGO_WEIGHT_NORMAL /* 400 */
|
|
WEIGHT_MEDIUM Weight = C.PANGO_WEIGHT_MEDIUM /* 500 */
|
|
WEIGHT_SEMIBOLD Weight = C.PANGO_WEIGHT_SEMIBOLD /* 600 */
|
|
WEIGHT_BOLD Weight = C.PANGO_WEIGHT_BOLD /* 700 */
|
|
WEIGHT_ULTRABOLD Weight = C.PANGO_WEIGHT_ULTRABOLD /* 800 */
|
|
WEIGHT_HEAVY Weight = C.PANGO_WEIGHT_HEAVY /* 900 */
|
|
WEIGHT_ULTRAHEAVY Weight = C.PANGO_WEIGHT_ULTRAHEAVY /* 1000 */
|
|
|
|
)
|
|
|
|
type Stretch int
|
|
|
|
const (
|
|
STRETCH_ULTRA_CONDENSED Stretch = C.PANGO_STRETCH_ULTRA_CONDENSED
|
|
STRETCH_EXTRA_CONDENSEDStretch Stretch = C.PANGO_STRETCH_EXTRA_CONDENSED
|
|
STRETCH_CONDENSEDStretch Stretch = C.PANGO_STRETCH_CONDENSED
|
|
STRETCH_SEMI_CONDENSEDStretch Stretch = C.PANGO_STRETCH_SEMI_CONDENSED
|
|
STRETCH_NORMALStretch Stretch = C.PANGO_STRETCH_NORMAL
|
|
STRETCH_SEMI_EXPANDEDStretch Stretch = C.PANGO_STRETCH_SEMI_EXPANDED
|
|
STRETCH_EXPANDEDStretch Stretch = C.PANGO_STRETCH_EXPANDED
|
|
STRETCH_EXTRA_EXPANDEDStretch Stretch = C.PANGO_STRETCH_EXTRA_EXPANDED
|
|
STRETCH_ULTRA_EXPANDEDStretch Stretch = C.PANGO_STRETCH_ULTRA_EXPANDED
|
|
)
|
|
|
|
type FontMask int
|
|
|
|
const (
|
|
FONT_MASK_FAMILY FontMask = C.PANGO_FONT_MASK_FAMILY /* 1 << 0 */
|
|
FONT_MASK_STYLEFontMask FontMask = C.PANGO_FONT_MASK_STYLE /* 1 << 1 */
|
|
FONT_MASK_VARIANTFontMask FontMask = C.PANGO_FONT_MASK_VARIANT /* 1 << 2 */
|
|
FONT_MASK_WEIGHTFontMask FontMask = C.PANGO_FONT_MASK_WEIGHT /* 1 << 3 */
|
|
FONT_MASK_STRETCHFontMask FontMask = C.PANGO_FONT_MASK_STRETCH /* 1 << 4 */
|
|
FONT_MASK_SIZEFontMask FontMask = C.PANGO_FONT_MASK_SIZE /* 1 << 5 */
|
|
FONT_MASK_GRAVITYFontMask FontMask = C.PANGO_FONT_MASK_GRAVITY /* 1 << 6 */
|
|
)
|
|
|
|
type Scale float64
|
|
|
|
const (
|
|
SCALE_XX_SMALL Scale = /* C.PANGO_SCALE_XX_SMALL */ 0.5787037037037
|
|
SCALE_X_SMALL Scale = /*C.PANGO_SCALE_X_SMALL */ 0.6444444444444
|
|
SCALE_SMALL Scale = /*C.PANGO_SCALE_SMALL */ 0.8333333333333
|
|
SCALE_MEDIUM Scale = /*C.PANGO_SCALE_MEDIUM */ 1.0
|
|
SCALE_LARGE Scale = /*C.PANGO_SCALE_LARGE */ 1.2
|
|
SCALE_X_LARGE Scale = /*C.PANGO_SCALE_X_LARGE */ 1.4399999999999
|
|
SCALE_XX_LARGE Scale = /*C.PANGO_SCALE_XX_LARGE */ 1.728
|
|
)
|
|
|
|
/*
|
|
* PangoFontDescription
|
|
*/
|
|
|
|
func marshalFontDescription(p uintptr) (interface{}, error) {
|
|
c := C.g_value_get_boxed((*C.GValue)(unsafe.Pointer(p)))
|
|
c2 := (*C.PangoFontDescription)(unsafe.Pointer(c))
|
|
return wrapFontDescription(c2), nil
|
|
}
|
|
|
|
func wrapFontDescription(obj *C.PangoFontDescription) *FontDescription {
|
|
return &FontDescription{obj}
|
|
}
|
|
|
|
//PangoFontDescription *pango_font_description_new (void);
|
|
func FontDescriptionNew() *FontDescription {
|
|
c := C.pango_font_description_new()
|
|
v := new(FontDescription)
|
|
v.pangoFontDescription = c
|
|
return v
|
|
}
|
|
|
|
//PangoFontDescription *pango_font_description_copy (const PangoFontDescription *desc);
|
|
func (v *FontDescription) Copy() *FontDescription {
|
|
c := C.pango_font_description_copy(v.native())
|
|
v2 := new(FontDescription)
|
|
v2.pangoFontDescription = c
|
|
return v2
|
|
}
|
|
|
|
//PangoFontDescription *pango_font_description_copy_static (const PangoFontDescription *desc);
|
|
func (v *FontDescription) CopyStatic() *FontDescription {
|
|
c := C.pango_font_description_copy_static(v.native())
|
|
v2 := new(FontDescription)
|
|
v2.pangoFontDescription = c
|
|
return v2
|
|
}
|
|
|
|
//guint pango_font_description_hash (const PangoFontDescription *desc) G_GNUC_PURE;
|
|
func (v *FontDescription) Hash() uint {
|
|
c := C.pango_font_description_hash(v.native())
|
|
return uint(c)
|
|
}
|
|
|
|
//gboolean pango_font_description_equal (const PangoFontDescription *desc1,
|
|
// const PangoFontDescription *desc2) G_GNUC_PURE;
|
|
func (v *FontDescription) Equal(v2 *FontDescription) bool {
|
|
c := C.pango_font_description_equal(v.native(), v2.native())
|
|
return gobool(c)
|
|
}
|
|
|
|
//void pango_font_description_free (PangoFontDescription *desc);
|
|
func (v *FontDescription) Free() {
|
|
C.pango_font_description_free(v.native())
|
|
}
|
|
|
|
//void pango_font_descriptions_free (PangoFontDescription **descs,
|
|
// int n_descs);
|
|
//func (v *FontDescription) FontDescriptionsFree(n_descs int) {
|
|
// C.pango_font_descriptions_free(v.native(), C.int(n_descs))
|
|
//}
|
|
|
|
//void pango_font_description_set_family (PangoFontDescription *desc,
|
|
// const char *family);
|
|
func (v *FontDescription) SetFamily(family string) {
|
|
cstr := C.CString(family)
|
|
defer C.free(unsafe.Pointer(cstr))
|
|
C.pango_font_description_set_family(v.native(), (*C.char)(cstr))
|
|
}
|
|
|
|
//void pango_font_description_set_family_static (PangoFontDescription *desc,
|
|
// const char *family);
|
|
func (v *FontDescription) SetFamilyStatic(family string) {
|
|
cstr := C.CString(family)
|
|
defer C.free(unsafe.Pointer(cstr))
|
|
C.pango_font_description_set_family_static(v.native(), (*C.char)(cstr))
|
|
}
|
|
|
|
//const char *pango_font_description_get_family (const PangoFontDescription *desc) G_GNUC_PURE;
|
|
func (v *FontDescription) GetFamily() string {
|
|
c := C.pango_font_description_get_family(v.native())
|
|
return C.GoString((*C.char)(c))
|
|
}
|
|
|
|
//void pango_font_description_set_style (PangoFontDescription *desc,
|
|
// PangoStyle style);
|
|
func (v *FontDescription) SetStyle(style Style) {
|
|
C.pango_font_description_set_style(v.native(), (C.PangoStyle)(style))
|
|
}
|
|
|
|
//PangoStyle pango_font_description_get_style (const PangoFontDescription *desc) G_GNUC_PURE;
|
|
func (v *FontDescription) GetStyle() Style {
|
|
c := C.pango_font_description_get_style(v.native())
|
|
return Style(c)
|
|
}
|
|
|
|
//void pango_font_description_set_variant (PangoFontDescription *desc,
|
|
// PangoVariant variant);
|
|
//PangoVariant pango_font_description_get_variant (const PangoFontDescription *desc) G_GNUC_PURE;
|
|
|
|
//void pango_font_description_set_weight (PangoFontDescription *desc,
|
|
// PangoWeight weight);
|
|
func (v *FontDescription) SetWeight(weight Weight) {
|
|
C.pango_font_description_set_weight(v.native(), (C.PangoWeight)(weight))
|
|
}
|
|
|
|
//PangoWeight pango_font_description_get_weight (const PangoFontDescription *desc) G_GNUC_PURE;
|
|
func (v *FontDescription) GetWeight() Weight {
|
|
c := C.pango_font_description_get_weight(v.native())
|
|
return Weight(c)
|
|
}
|
|
|
|
//void pango_font_description_set_stretch (PangoFontDescription *desc,
|
|
// PangoStretch stretch);
|
|
func (v *FontDescription) SetStretch(stretch Stretch) {
|
|
C.pango_font_description_set_stretch(v.native(), (C.PangoStretch)(stretch))
|
|
}
|
|
|
|
//PangoStretch pango_font_description_get_stretch (const PangoFontDescription *desc) G_GNUC_PURE;
|
|
func (v *FontDescription) GetStretch() Stretch {
|
|
c := C.pango_font_description_get_stretch(v.native())
|
|
return Stretch(c)
|
|
}
|
|
|
|
//void pango_font_description_set_size (PangoFontDescription *desc,
|
|
// gint size);
|
|
func (v *FontDescription) SetSize(size int) {
|
|
C.pango_font_description_set_size(v.native(), (C.gint)(size))
|
|
}
|
|
|
|
//gint pango_font_description_get_size (const PangoFontDescription *desc) G_GNUC_PURE;
|
|
func (v *FontDescription) GetSize() int {
|
|
c := C.pango_font_description_get_size(v.native())
|
|
return int(c)
|
|
}
|
|
|
|
//void pango_font_description_set_absolute_size (PangoFontDescription *desc,
|
|
// double size);
|
|
func (v *FontDescription) SetAbsoluteSize(size float64) {
|
|
C.pango_font_description_set_absolute_size(v.native(), (C.double)(size))
|
|
}
|
|
|
|
//gboolean pango_font_description_get_size_is_absolute (const PangoFontDescription *desc) G_GNUC_PURE;
|
|
func (v *FontDescription) GetSizeIsAbsolute() bool {
|
|
c := C.pango_font_description_get_size_is_absolute(v.native())
|
|
return gobool(c)
|
|
}
|
|
|
|
//void pango_font_description_set_gravity (PangoFontDescription *desc,
|
|
// PangoGravity gravity);
|
|
func (v *FontDescription) SetGravity(gravity Gravity) {
|
|
C.pango_font_description_set_gravity(v.native(), (C.PangoGravity)(gravity))
|
|
}
|
|
|
|
//PangoGravity pango_font_description_get_gravity (const PangoFontDescription *desc) G_GNUC_PURE;
|
|
func (v *FontDescription) GetGravity() Gravity {
|
|
c := C.pango_font_description_get_gravity(v.native())
|
|
return Gravity(c)
|
|
}
|
|
|
|
//PangoFontMask pango_font_description_get_set_fields (const PangoFontDescription *desc) G_GNUC_PURE;
|
|
func (v *FontDescription) GetSetFields() FontMask {
|
|
c := C.pango_font_description_get_set_fields(v.native())
|
|
return FontMask(c)
|
|
}
|
|
|
|
//void pango_font_description_unset_fields (PangoFontDescription *desc,
|
|
// PangoFontMask to_unset);
|
|
func (v *FontDescription) GetUnsetFields(to_unset FontMask) {
|
|
C.pango_font_description_unset_fields(v.native(), (C.PangoFontMask)(to_unset))
|
|
}
|
|
|
|
//void pango_font_description_merge (PangoFontDescription *desc,
|
|
// const PangoFontDescription *desc_to_merge,
|
|
// gboolean replace_existing);
|
|
func (v *FontDescription) Merge(desc_to_merge *FontDescription, replace_existing bool) {
|
|
C.pango_font_description_merge(v.native(), desc_to_merge.native(), gbool(replace_existing))
|
|
}
|
|
|
|
//void pango_font_description_merge_static (PangoFontDescription *desc,
|
|
// const PangoFontDescription *desc_to_merge,
|
|
// gboolean replace_existing);
|
|
func (v *FontDescription) MergeStatic(desc_to_merge *FontDescription, replace_existing bool) {
|
|
C.pango_font_description_merge_static(v.native(), desc_to_merge.native(), gbool(replace_existing))
|
|
}
|
|
|
|
//gboolean pango_font_description_better_match (const PangoFontDescription *desc,
|
|
// const PangoFontDescription *old_match,
|
|
// const PangoFontDescription *new_match) G_GNUC_PURE;
|
|
func (v *FontDescription) BetterMatch(old_match, new_match *FontDescription) bool {
|
|
c := C.pango_font_description_better_match(v.native(), old_match.native(), new_match.native())
|
|
return gobool(c)
|
|
}
|
|
|
|
//PangoFontDescription *pango_font_description_from_string (const char *str);
|
|
func FontDescriptionFromString(str string) *FontDescription {
|
|
cstr := C.CString(str)
|
|
defer C.free(unsafe.Pointer(cstr))
|
|
c := C.pango_font_description_from_string((*C.char)(cstr))
|
|
v := new(FontDescription)
|
|
v.pangoFontDescription = c
|
|
return v
|
|
}
|
|
|
|
//char * pango_font_description_to_string (const PangoFontDescription *desc);
|
|
func (v *FontDescription) ToString() string {
|
|
c := C.pango_font_description_to_string(v.native())
|
|
return C.GoString((*C.char)(c))
|
|
}
|
|
|
|
//char * pango_font_description_to_filename (const PangoFontDescription *desc);
|
|
func (v *FontDescription) ToFilename() string {
|
|
c := C.pango_font_description_to_filename(v.native())
|
|
return C.GoString((*C.char)(c))
|
|
}
|
|
|
|
///*
|
|
// * PangoFontMetrics
|
|
// */
|
|
//
|
|
///**
|
|
// * PANGO_TYPE_FONT_METRICS:
|
|
// *
|
|
// * The #GObject type for #PangoFontMetrics.
|
|
// */
|
|
//#define PANGO_TYPE_FONT_METRICS (pango_font_metrics_get_type ())
|
|
//GType pango_font_metrics_get_type (void) G_GNUC_CONST;
|
|
//PangoFontMetrics *pango_font_metrics_ref (PangoFontMetrics *metrics);
|
|
//void pango_font_metrics_unref (PangoFontMetrics *metrics);
|
|
//int pango_font_metrics_get_ascent (PangoFontMetrics *metrics) G_GNUC_PURE;
|
|
//int pango_font_metrics_get_descent (PangoFontMetrics *metrics) G_GNUC_PURE;
|
|
//int pango_font_metrics_get_approximate_char_width (PangoFontMetrics *metrics) G_GNUC_PURE;
|
|
//int pango_font_metrics_get_approximate_digit_width (PangoFontMetrics *metrics) G_GNUC_PURE;
|
|
//int pango_font_metrics_get_underline_position (PangoFontMetrics *metrics) G_GNUC_PURE;
|
|
//int pango_font_metrics_get_underline_thickness (PangoFontMetrics *metrics) G_GNUC_PURE;
|
|
//int pango_font_metrics_get_strikethrough_position (PangoFontMetrics *metrics) G_GNUC_PURE;
|
|
//int pango_font_metrics_get_strikethrough_thickness (PangoFontMetrics *metrics) G_GNUC_PURE;
|
|
//
|
|
//#ifdef PANGO_ENABLE_BACKEND
|
|
//
|
|
//PangoFontMetrics *pango_font_metrics_new (void);
|
|
//
|
|
//struct _PangoFontMetrics
|
|
//{
|
|
// guint ref_count;
|
|
//
|
|
// int ascent;
|
|
// int descent;
|
|
// int approximate_char_width;
|
|
// int approximate_digit_width;
|
|
// int underline_position;
|
|
// int underline_thickness;
|
|
// int strikethrough_position;
|
|
// int strikethrough_thickness;
|
|
//};
|
|
//
|
|
//#endif /* PANGO_ENABLE_BACKEND */
|
|
//
|
|
///*
|
|
// * PangoFontFamily
|
|
// */
|
|
//
|
|
///**
|
|
// * PANGO_TYPE_FONT_FAMILY:
|
|
// *
|
|
// * The #GObject type for #PangoFontFamily.
|
|
// */
|
|
///**
|
|
// * PANGO_FONT_FAMILY:
|
|
// * @object: a #GObject.
|
|
// *
|
|
// * Casts a #GObject to a #PangoFontFamily.
|
|
// */
|
|
///**
|
|
// * PANGO_IS_FONT_FAMILY:
|
|
// * @object: a #GObject.
|
|
// *
|
|
// * Returns: %TRUE if @object is a #PangoFontFamily.
|
|
// */
|
|
//#define PANGO_TYPE_FONT_FAMILY (pango_font_family_get_type ())
|
|
//#define PANGO_FONT_FAMILY(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_TYPE_FONT_FAMILY, PangoFontFamily))
|
|
//#define PANGO_IS_FONT_FAMILY(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_TYPE_FONT_FAMILY))
|
|
//
|
|
//typedef struct _PangoFontFamily PangoFontFamily;
|
|
//typedef struct _PangoFontFace PangoFontFace;
|
|
//
|
|
//GType pango_font_family_get_type (void) G_GNUC_CONST;
|
|
//
|
|
//void pango_font_family_list_faces (PangoFontFamily *family,
|
|
// PangoFontFace ***faces,
|
|
// int *n_faces);
|
|
//const char *pango_font_family_get_name (PangoFontFamily *family) G_GNUC_PURE;
|
|
//gboolean pango_font_family_is_monospace (PangoFontFamily *family) G_GNUC_PURE;
|
|
//
|
|
//#ifdef PANGO_ENABLE_BACKEND
|
|
//
|
|
//#define PANGO_FONT_FAMILY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PANGO_TYPE_FONT_FAMILY, PangoFontFamilyClass))
|
|
//#define PANGO_IS_FONT_FAMILY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PANGO_TYPE_FONT_FAMILY))
|
|
//#define PANGO_FONT_FAMILY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PANGO_TYPE_FONT_FAMILY, PangoFontFamilyClass))
|
|
//
|
|
//typedef struct _PangoFontFamilyClass PangoFontFamilyClass;
|
|
//
|
|
//
|
|
///**
|
|
// * PangoFontFamily:
|
|
// *
|
|
// * The #PangoFontFamily structure is used to represent a family of related
|
|
// * font faces. The faces in a family share a common design, but differ in
|
|
// * slant, weight, width and other aspects.
|
|
// */
|
|
//struct _PangoFontFamily
|
|
//{
|
|
// GObject parent_instance;
|
|
//};
|
|
//
|
|
//struct _PangoFontFamilyClass
|
|
//{
|
|
// GObjectClass parent_class;
|
|
//
|
|
// /*< public >*/
|
|
//
|
|
// void (*list_faces) (PangoFontFamily *family,
|
|
// PangoFontFace ***faces,
|
|
// int *n_faces);
|
|
// const char * (*get_name) (PangoFontFamily *family);
|
|
// gboolean (*is_monospace) (PangoFontFamily *family);
|
|
//
|
|
// /*< private >*/
|
|
//
|
|
// /* Padding for future expansion */
|
|
// void (*_pango_reserved2) (void);
|
|
// void (*_pango_reserved3) (void);
|
|
// void (*_pango_reserved4) (void);
|
|
//};
|
|
//
|
|
//#endif /* PANGO_ENABLE_BACKEND */
|
|
//
|
|
///*
|
|
// * PangoFontFace
|
|
// */
|
|
//
|
|
///**
|
|
// * PANGO_TYPE_FONT_FACE:
|
|
// *
|
|
// * The #GObject type for #PangoFontFace.
|
|
// */
|
|
///**
|
|
// * PANGO_FONT_FACE:
|
|
// * @object: a #GObject.
|
|
// *
|
|
// * Casts a #GObject to a #PangoFontFace.
|
|
// */
|
|
///**
|
|
// * PANGO_IS_FONT_FACE:
|
|
// * @object: a #GObject.
|
|
// *
|
|
// * Returns: %TRUE if @object is a #PangoFontFace.
|
|
// */
|
|
//#define PANGO_TYPE_FONT_FACE (pango_font_face_get_type ())
|
|
//#define PANGO_FONT_FACE(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_TYPE_FONT_FACE, PangoFontFace))
|
|
//#define PANGO_IS_FONT_FACE(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_TYPE_FONT_FACE))
|
|
//
|
|
//GType pango_font_face_get_type (void) G_GNUC_CONST;
|
|
//
|
|
//PangoFontDescription *pango_font_face_describe (PangoFontFace *face);
|
|
//const char *pango_font_face_get_face_name (PangoFontFace *face) G_GNUC_PURE;
|
|
//void pango_font_face_list_sizes (PangoFontFace *face,
|
|
// int **sizes,
|
|
// int *n_sizes);
|
|
//gboolean pango_font_face_is_synthesized (PangoFontFace *face) G_GNUC_PURE;
|
|
//
|
|
//#ifdef PANGO_ENABLE_BACKEND
|
|
//
|
|
//#define PANGO_FONT_FACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PANGO_TYPE_FONT_FACE, PangoFontFaceClass))
|
|
//#define PANGO_IS_FONT_FACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PANGO_TYPE_FONT_FACE))
|
|
//#define PANGO_FONT_FACE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PANGO_TYPE_FONT_FACE, PangoFontFaceClass))
|
|
//
|
|
//typedef struct _PangoFontFaceClass PangoFontFaceClass;
|
|
//
|
|
///**
|
|
// * PangoFontFace:
|
|
// *
|
|
// * The #PangoFontFace structure is used to represent a group of fonts with
|
|
// * the same family, slant, weight, width, but varying sizes.
|
|
// */
|
|
//struct _PangoFontFace
|
|
//{
|
|
// GObject parent_instance;
|
|
//};
|
|
//
|
|
//struct _PangoFontFaceClass
|
|
//{
|
|
// GObjectClass parent_class;
|
|
//
|
|
// /*< public >*/
|
|
//
|
|
// const char * (*get_face_name) (PangoFontFace *face);
|
|
// PangoFontDescription * (*describe) (PangoFontFace *face);
|
|
// void (*list_sizes) (PangoFontFace *face,
|
|
// int **sizes,
|
|
// int *n_sizes);
|
|
// gboolean (*is_synthesized) (PangoFontFace *face);
|
|
//
|
|
// /*< private >*/
|
|
//
|
|
// /* Padding for future expansion */
|
|
// void (*_pango_reserved3) (void);
|
|
// void (*_pango_reserved4) (void);
|
|
//};
|
|
//
|
|
//#endif /* PANGO_ENABLE_BACKEND */
|
|
//
|
|
///*
|
|
// * PangoFont
|
|
// */
|
|
//
|
|
///**
|
|
// * PANGO_TYPE_FONT:
|
|
// *
|
|
// * The #GObject type for #PangoFont.
|
|
// */
|
|
///**
|
|
// * PANGO_FONT:
|
|
// * @object: a #GObject.
|
|
// *
|
|
// * Casts a #GObject to a #PangoFont.
|
|
// */
|
|
///**
|
|
// * PANGO_IS_FONT:
|
|
// * @object: a #GObject.
|
|
// *
|
|
// * Returns: %TRUE if @object is a #PangoFont.
|
|
// */
|
|
//#define PANGO_TYPE_FONT (pango_font_get_type ())
|
|
//#define PANGO_FONT(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_TYPE_FONT, PangoFont))
|
|
//#define PANGO_IS_FONT(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_TYPE_FONT))
|
|
//
|
|
//GType pango_font_get_type (void) G_GNUC_CONST;
|
|
//
|
|
//PangoFontDescription *pango_font_describe (PangoFont *font);
|
|
//PangoFontDescription *pango_font_describe_with_absolute_size (PangoFont *font);
|
|
//PangoCoverage * pango_font_get_coverage (PangoFont *font,
|
|
// PangoLanguage *language);
|
|
//PangoEngineShape * pango_font_find_shaper (PangoFont *font,
|
|
// PangoLanguage *language,
|
|
// guint32 ch);
|
|
//PangoFontMetrics * pango_font_get_metrics (PangoFont *font,
|
|
// PangoLanguage *language);
|
|
//void pango_font_get_glyph_extents (PangoFont *font,
|
|
// PangoGlyph glyph,
|
|
// PangoRectangle *ink_rect,
|
|
// PangoRectangle *logical_rect);
|
|
//PangoFontMap *pango_font_get_font_map (PangoFont *font);
|
|
//
|
|
//#ifdef PANGO_ENABLE_BACKEND
|
|
//
|
|
//#define PANGO_FONT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PANGO_TYPE_FONT, PangoFontClass))
|
|
//#define PANGO_IS_FONT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PANGO_TYPE_FONT))
|
|
//#define PANGO_FONT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PANGO_TYPE_FONT, PangoFontClass))
|
|
//
|
|
//typedef struct _PangoFontClass PangoFontClass;
|
|
//
|
|
///**
|
|
// * PangoFont:
|
|
// *
|
|
// * The #PangoFont structure is used to represent
|
|
// * a font in a rendering-system-independent matter.
|
|
// * To create an implementation of a #PangoFont,
|
|
// * the rendering-system specific code should allocate
|
|
// * a larger structure that contains a nested
|
|
// * #PangoFont, fill in the <structfield>klass</structfield> member of
|
|
// * the nested #PangoFont with a pointer to
|
|
// * a appropriate #PangoFontClass, then call
|
|
// * pango_font_init() on the structure.
|
|
// *
|
|
// * The #PangoFont structure contains one member
|
|
// * which the implementation fills in.
|
|
// */
|
|
//struct _PangoFont
|
|
//{
|
|
// GObject parent_instance;
|
|
//};
|
|
//
|
|
//struct _PangoFontClass
|
|
//{
|
|
// GObjectClass parent_class;
|
|
//
|
|
// /*< public >*/
|
|
//
|
|
// PangoFontDescription *(*describe) (PangoFont *font);
|
|
// PangoCoverage * (*get_coverage) (PangoFont *font,
|
|
// PangoLanguage *lang);
|
|
// PangoEngineShape * (*find_shaper) (PangoFont *font,
|
|
// PangoLanguage *lang,
|
|
// guint32 ch);
|
|
// void (*get_glyph_extents) (PangoFont *font,
|
|
// PangoGlyph glyph,
|
|
// PangoRectangle *ink_rect,
|
|
// PangoRectangle *logical_rect);
|
|
// PangoFontMetrics * (*get_metrics) (PangoFont *font,
|
|
// PangoLanguage *language);
|
|
// PangoFontMap * (*get_font_map) (PangoFont *font);
|
|
// PangoFontDescription *(*describe_absolute) (PangoFont *font);
|
|
// /*< private >*/
|
|
//
|
|
// /* Padding for future expansion */
|
|
// void (*_pango_reserved1) (void);
|
|
// void (*_pango_reserved2) (void);
|
|
//};
|
|
//
|
|
///* used for very rare and miserable situtations that we cannot even
|
|
// * draw a hexbox
|
|
// */
|
|
//#define PANGO_UNKNOWN_GLYPH_WIDTH 10
|
|
//#define PANGO_UNKNOWN_GLYPH_HEIGHT 14
|
|
//
|
|
//#endif /* PANGO_ENABLE_BACKEND */
|
|
//
|
|
///**
|
|
// * PANGO_GLYPH_EMPTY:
|
|
// *
|
|
// * The %PANGO_GLYPH_EMPTY macro represents a #PangoGlyph value that has a
|
|
// * special meaning, which is a zero-width empty glyph. This is useful for
|
|
// * example in shaper modules, to use as the glyph for various zero-width
|
|
// * Unicode characters (those passing pango_is_zero_width()).
|
|
// */
|
|
///**
|
|
// * PANGO_GLYPH_INVALID_INPUT:
|
|
// *
|
|
// * The %PANGO_GLYPH_INVALID_INPUT macro represents a #PangoGlyph value that has a
|
|
// * special meaning of invalid input. #PangoLayout produces one such glyph
|
|
// * per invalid input UTF-8 byte and such a glyph is rendered as a crossed
|
|
// * box.
|
|
// *
|
|
// * Note that this value is defined such that it has the %PANGO_GLYPH_UNKNOWN_FLAG
|
|
// * on.
|
|
// *
|
|
// * Since: 1.20
|
|
// */
|
|
///**
|
|
// * PANGO_GLYPH_UNKNOWN_FLAG:
|
|
// *
|
|
// * The %PANGO_GLYPH_UNKNOWN_FLAG macro is a flag value that can be added to
|
|
// * a #gunichar value of a valid Unicode character, to produce a #PangoGlyph
|
|
// * value, representing an unknown-character glyph for the respective #gunichar.
|
|
// */
|
|
///**
|
|
// * PANGO_GET_UNKNOWN_GLYPH:
|
|
// * @wc: a Unicode character
|
|
// *
|
|
// * The way this unknown glyphs are rendered is backend specific. For example,
|
|
// * a box with the hexadecimal Unicode code-point of the character written in it
|
|
// * is what is done in the most common backends.
|
|
// *
|
|
// * Returns: a #PangoGlyph value that means no glyph was found for @wc.
|
|
// */
|
|
//#define PANGO_GLYPH_EMPTY ((PangoGlyph)0x0FFFFFFF)
|
|
//#define PANGO_GLYPH_INVALID_INPUT ((PangoGlyph)0xFFFFFFFF)
|
|
//#define PANGO_GLYPH_UNKNOWN_FLAG ((PangoGlyph)0x10000000)
|
|
//#define PANGO_GET_UNKNOWN_GLYPH(wc) ((PangoGlyph)(wc)|PANGO_GLYPH_UNKNOWN_FLAG)
|
|
//
|
|
//
|