// Code generated by cmd/cgo; DO NOT EDIT.

//line /home/josie/.cache/paru/clone/wiiudownloader/src/pkg/mod/github.com/gotk3/gotk3@v0.6.5-0.20240618185848-ff349ae13f56/cairo/fontoptions.go:1:1
package cairo

// #include <stdlib.h>
// #include <cairo.h>
// #include <cairo-gobject.h>
import _ "unsafe"
import (
	"runtime"
	"unsafe"

	"github.com/gotk3/gotk3/glib"
)

func init() {
	tm := []glib.TypeMarshaler{
		// Enums
		{glib.Type(( /*line :17:14*/_Cfunc_cairo_gobject_subpixel_order_get_type /*line :17:52*/)()), marshalSubpixelOrder},
		{glib.Type(( /*line :18:14*/_Cfunc_cairo_gobject_hint_style_get_type /*line :18:48*/)()), marshalHintStyle},
		{glib.Type(( /*line :19:14*/_Cfunc_cairo_gobject_hint_metrics_get_type /*line :19:50*/)()), marshalHintMetrics},

		// Boxed
		{glib.Type(( /*line :22:14*/_Cfunc_cairo_gobject_font_options_get_type /*line :22:50*/)()), marshalFontOptions},
	}
	glib.RegisterGValueMarshalers(tm)
}

// SubpixelOrder is a representation of Cairo's cairo_subpixel_order_t.
type SubpixelOrder int

const (
	SUBPIXEL_ORDER_DEFAULT SubpixelOrder = ( /*line :31:41*/_Ciconst_CAIRO_SUBPIXEL_ORDER_DEFAULT /*line :31:70*/)
	SUBPIXEL_ORDER_RGB     SubpixelOrder = ( /*line :32:41*/_Ciconst_CAIRO_SUBPIXEL_ORDER_RGB /*line :32:66*/)
	SUBPIXEL_ORDER_BGR     SubpixelOrder = ( /*line :33:41*/_Ciconst_CAIRO_SUBPIXEL_ORDER_BGR /*line :33:66*/)
	SUBPIXEL_ORDER_VRGB    SubpixelOrder = ( /*line :34:41*/_Ciconst_CAIRO_SUBPIXEL_ORDER_VRGB /*line :34:67*/)
	SUBPIXEL_ORDER_VBGR    SubpixelOrder = ( /*line :35:41*/_Ciconst_CAIRO_SUBPIXEL_ORDER_VBGR /*line :35:67*/)
)

func marshalSubpixelOrder(p uintptr) (interface{}, error) {
	c := ( /*line :39:7*/_Cfunc_g_value_get_enum /*line :39:24*/)((* /*line :39:28*/_Ctype_GValue /*line :39:36*/)(unsafe.Pointer(p)))
	return SubpixelOrder(c), nil
}

// HintStyle is a representation of Cairo's cairo_hint_style_t.
type HintStyle int

const (
	HINT_STYLE_DEFAULT HintStyle = ( /*line :47:33*/_Ciconst_CAIRO_HINT_STYLE_DEFAULT /*line :47:58*/)
	HINT_STYLE_NONE    HintStyle = ( /*line :48:33*/_Ciconst_CAIRO_HINT_STYLE_NONE /*line :48:55*/)
	HINT_STYLE_SLIGHT  HintStyle = ( /*line :49:33*/_Ciconst_CAIRO_HINT_STYLE_SLIGHT /*line :49:57*/)
	HINT_STYLE_MEDIUM  HintStyle = ( /*line :50:33*/_Ciconst_CAIRO_HINT_STYLE_MEDIUM /*line :50:57*/)
	HINT_STYLE_FULL    HintStyle = ( /*line :51:33*/_Ciconst_CAIRO_HINT_STYLE_FULL /*line :51:55*/)
)

func marshalHintStyle(p uintptr) (interface{}, error) {
	c := ( /*line :55:7*/_Cfunc_g_value_get_enum /*line :55:24*/)((* /*line :55:28*/_Ctype_GValue /*line :55:36*/)(unsafe.Pointer(p)))
	return HintStyle(c), nil
}

// HintMetrics is a representation of Cairo's cairo_hint_metrics_t.
type HintMetrics int

const (
	HINT_METRICS_DEFAULT HintMetrics = ( /*line :63:37*/_Ciconst_CAIRO_HINT_METRICS_DEFAULT /*line :63:64*/)
	HINT_METRICS_OFF     HintMetrics = ( /*line :64:37*/_Ciconst_CAIRO_HINT_METRICS_OFF /*line :64:60*/)
	HINT_METRICS_ON      HintMetrics = ( /*line :65:37*/_Ciconst_CAIRO_HINT_METRICS_ON /*line :65:59*/)
)

func marshalHintMetrics(p uintptr) (interface{}, error) {
	c := ( /*line :69:7*/_Cfunc_g_value_get_enum /*line :69:24*/)((* /*line :69:28*/_Ctype_GValue /*line :69:36*/)(unsafe.Pointer(p)))
	return HintMetrics(c), nil
}

// FontOptions is a representation of Cairo's cairo_font_options_t.
type FontOptions struct {
	native * /*line :75:10*/_Ctype_cairo_font_options_t /*line :75:32*/
}

func marshalFontOptions(p uintptr) (interface{}, error) {
	c := ( /*line :79:7*/_Cfunc_g_value_get_boxed /*line :79:25*/)((* /*line :79:29*/_Ctype_GValue /*line :79:37*/)(unsafe.Pointer(p)))
	return &FontOptions{
		native: (* /*line :81:13*/_Ctype_cairo_font_options_t /*line :81:35*/)(unsafe.Pointer(c)),
	}, nil
}

// CreatFontOptions is a wrapper around cairo_font_options_create().
func CreateFontOptions() *FontOptions {
	native := ( /*line :87:12*/_Cfunc_cairo_font_options_create /*line :87:38*/)()

	opts := &FontOptions{native}
	runtime.SetFinalizer(opts, func(v *FontOptions) { glib.FinalizerStrategy(v.destroy) })

	return opts
}

func (o *FontOptions) destroy() {
	func() { _cgo0 := /*line :96:31*/o.native; _cgoCheckPointer(_cgo0, nil); /*line :96:40*/_Cfunc_cairo_font_options_destroy(_cgo0); }()
}

// Copy is a wrapper around cairo_font_options_copy().
func (o *FontOptions) Copy() *FontOptions {
	native := func() *_Ctype_struct__cairo_font_options{ _cgo0 := /*line :101:38*/o.native; _cgoCheckPointer(_cgo0, nil); return /*line :101:47*/_Cfunc_cairo_font_options_copy(_cgo0); }()

	opts := &FontOptions{native}
	runtime.SetFinalizer(opts, func(v *FontOptions) { glib.FinalizerStrategy(v.destroy) })

	return opts
}

// Status is a wrapper around cairo_font_options_status().
func (o *FontOptions) Status() Status {
	return Status(func() _Ctype_cairo_status_t{ _cgo0 := /*line :111:44*/o.native; _cgoCheckPointer(_cgo0, nil); return /*line :111:53*/_Cfunc_cairo_font_options_status(_cgo0); }())
}

// Merge is a wrapper around cairo_font_options_merge().
func (o *FontOptions) Merge(other *FontOptions) {
	func() { _cgo0 := /*line :116:29*/o.native; _cgo1 := /*line :116:39*/other.native; _cgoCheckPointer(_cgo0, nil); _cgoCheckPointer(_cgo1, nil); /*line :116:52*/_Cfunc_cairo_font_options_merge(_cgo0, _cgo1); }()
}

// Hash is a wrapper around cairo_font_options_hash().
func (o *FontOptions) Hash() uint32 {
	return uint32(func() _Ctype_ulong{ _cgo0 := /*line :121:42*/o.native; _cgoCheckPointer(_cgo0, nil); return /*line :121:51*/_Cfunc_cairo_font_options_hash(_cgo0); }())
}

// Equal is a wrapper around cairo_font_options_equal().
func (o *FontOptions) Equal(other *FontOptions) bool {
	return gobool(func() _Ctype_cairo_bool_t{ _cgo0 := /*line :126:43*/o.native; _cgo1 := /*line :126:53*/other.native; _cgoCheckPointer(_cgo0, nil); _cgoCheckPointer(_cgo1, nil); return /*line :126:66*/_Cfunc_cairo_font_options_equal(_cgo0, _cgo1); }())
}

// SetAntialias is a wrapper around cairo_font_options_set_antialias().
func (o *FontOptions) SetAntialias(antialias Antialias) {
	func() { _cgo0 := /*line :131:37*/o.native; var _cgo1 _Ctype_cairo_antialias_t = _Ctype_cairo_antialias_t /*line :131:66*/(antialias); _cgoCheckPointer(_cgo0, nil); /*line :131:78*/_Cfunc_cairo_font_options_set_antialias(_cgo0, _cgo1); }()
}

// GetAntialias is a wrapper around cairo_font_options_get_antialias().
func (o *FontOptions) GetAntialias() Antialias {
	return Antialias(func() _Ctype_cairo_antialias_t{ _cgo0 := /*line :136:54*/o.native; _cgoCheckPointer(_cgo0, nil); return /*line :136:63*/_Cfunc_cairo_font_options_get_antialias(_cgo0); }())
}

// SetSubpixelOrder is a wrapper around cairo_font_options_set_subpixel_order().
func (o *FontOptions) SetSubpixelOrder(subpixelOrder SubpixelOrder) {
	func() { _cgo0 := /*line :141:42*/o.native; var _cgo1 _Ctype_cairo_subpixel_order_t = _Ctype_cairo_subpixel_order_t /*line :141:76*/(subpixelOrder); _cgoCheckPointer(_cgo0, nil); /*line :141:92*/_Cfunc_cairo_font_options_set_subpixel_order(_cgo0, _cgo1); }()
}

// GetSubpixelOrder is a wrapper around cairo_font_options_get_subpixel_order().
func (o *FontOptions) GetSubpixelOrder() SubpixelOrder {
	return SubpixelOrder(func() _Ctype_cairo_subpixel_order_t{ _cgo0 := /*line :146:63*/o.native; _cgoCheckPointer(_cgo0, nil); return /*line :146:72*/_Cfunc_cairo_font_options_get_subpixel_order(_cgo0); }())
}

// SetHintStyle is a wrapper around cairo_font_options_set_hint_style().
func (o *FontOptions) SetHintStyle(hintStyle HintStyle) {
	func() { _cgo0 := /*line :151:38*/o.native; var _cgo1 _Ctype_cairo_hint_style_t = _Ctype_cairo_hint_style_t /*line :151:68*/(hintStyle); _cgoCheckPointer(_cgo0, nil); /*line :151:80*/_Cfunc_cairo_font_options_set_hint_style(_cgo0, _cgo1); }()
}

// GetHintStyle is a wrapper around cairo_font_options_get_hint_style().
func (o *FontOptions) GetHintStyle() HintStyle {
	return HintStyle(func() _Ctype_cairo_hint_style_t{ _cgo0 := /*line :156:55*/o.native; _cgoCheckPointer(_cgo0, nil); return /*line :156:64*/_Cfunc_cairo_font_options_get_hint_style(_cgo0); }())
}

// SetHintMetrics is a wrapper around cairo_font_options_set_hint_metrics().
func (o *FontOptions) SetHintMetrics(hintMetrics HintMetrics) {
	func() { _cgo0 := /*line :161:40*/o.native; var _cgo1 _Ctype_cairo_hint_metrics_t = _Ctype_cairo_hint_metrics_t /*line :161:72*/(hintMetrics); _cgoCheckPointer(_cgo0, nil); /*line :161:86*/_Cfunc_cairo_font_options_set_hint_metrics(_cgo0, _cgo1); }()
}

// GetHintMetrics is a wrapper around cairo_font_options_get_hint_metrics().
func (o *FontOptions) GetHintMetrics() HintMetrics {
	return HintMetrics(func() _Ctype_cairo_hint_metrics_t{ _cgo0 := /*line :166:59*/o.native; _cgoCheckPointer(_cgo0, nil); return /*line :166:68*/_Cfunc_cairo_font_options_get_hint_metrics(_cgo0); }())
}
