// 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/cairo.go:1:1
// Copyright (c) 2013-2014 Conformal Systems <info@conformal.com>
//
// This file originated from: http://opensource.conformal.com/
//
// 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 cairo implements Go bindings for Cairo.  Supports version 1.10 and
// later.
package cairo

// #cgo pkg-config: cairo cairo-gobject gobject-2.0
// #include <stdlib.h>
// #include <cairo.h>
// #include <cairo-gobject.h>
import _ "unsafe"
import (
	"unsafe"

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

func init() {
	tm := []glib.TypeMarshaler{
		// Enums
		{glib.Type(( /*line :35:14*/_Cfunc_cairo_gobject_antialias_get_type /*line :35:47*/)()), marshalAntialias},
		{glib.Type(( /*line :36:14*/_Cfunc_cairo_gobject_content_get_type /*line :36:45*/)()), marshalContent},
		{glib.Type(( /*line :37:14*/_Cfunc_cairo_gobject_fill_rule_get_type /*line :37:47*/)()), marshalFillRule},
		{glib.Type(( /*line :38:14*/_Cfunc_cairo_gobject_line_cap_get_type /*line :38:46*/)()), marshalLineCap},
		{glib.Type(( /*line :39:14*/_Cfunc_cairo_gobject_line_join_get_type /*line :39:47*/)()), marshalLineJoin},
		{glib.Type(( /*line :40:14*/_Cfunc_cairo_gobject_operator_get_type /*line :40:46*/)()), marshalOperator},
		{glib.Type(( /*line :41:14*/_Cfunc_cairo_gobject_status_get_type /*line :41:44*/)()), marshalStatus},
		{glib.Type(( /*line :42:14*/_Cfunc_cairo_gobject_surface_type_get_type /*line :42:50*/)()), marshalSurfaceType},

		// Boxed
		{glib.Type(( /*line :45:14*/_Cfunc_cairo_gobject_context_get_type /*line :45:45*/)()), marshalContext},
		{glib.Type(( /*line :46:14*/_Cfunc_cairo_gobject_surface_get_type /*line :46:45*/)()), marshalSurface},
	}
	glib.RegisterGValueMarshalers(tm)
}

// Constants

// Content is a representation of Cairo's cairo_content_t.
type Content int

const (
	CONTENT_COLOR       Content = ( /*line :57:32*/_Ciconst_CAIRO_CONTENT_COLOR /*line :57:52*/)
	CONTENT_ALPHA       Content = ( /*line :58:32*/_Ciconst_CAIRO_CONTENT_ALPHA /*line :58:52*/)
	CONTENT_COLOR_ALPHA Content = ( /*line :59:32*/_Ciconst_CAIRO_CONTENT_COLOR_ALPHA /*line :59:58*/)
)

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