// Code generated by girgen. DO NOT EDIT.

package adw

import (
	"fmt"
	"unsafe"

	coreglib "github.com/diamondburned/gotk4/pkg/core/glib"
)

// #include <stdlib.h>
// #include <adwaita.h>
// #include <glib-object.h>
import "C"

// GType values.
var (
	GTypeResponseAppearance = coreglib.Type(C.adw_response_appearance_get_type())
)

func init() {
	coreglib.RegisterGValueMarshalers([]coreglib.TypeMarshaler{
		coreglib.TypeMarshaler{T: GTypeResponseAppearance, F: marshalResponseAppearance},
	})
}

// ResponseAppearance describes the possible styles of alertdialog response
// buttons.
//
// See alertdialog.SetResponseAppearance.
type ResponseAppearance C.gint

const (
	// ResponseDefault: default appearance.
	ResponseDefault ResponseAppearance = iota
	// ResponseSuggested: used to denote important responses such as the
	// affirmative action.
	ResponseSuggested
	// ResponseDestructive: used to draw attention to the potentially damaging
	// consequences of using the response. This appearance acts as a warning to
	// the user.
	ResponseDestructive
)

func marshalResponseAppearance(p uintptr) (interface{}, error) {
	return ResponseAppearance(coreglib.ValueFromNative(unsafe.Pointer(p)).Enum()), nil
}

// String returns the name in string for ResponseAppearance.
func (r ResponseAppearance) String() string {
	switch r {
	case ResponseDefault:
		return "Default"
	case ResponseSuggested:
		return "Suggested"
	case ResponseDestructive:
		return "Destructive"
	default:
		return fmt.Sprintf("ResponseAppearance(%d)", r)
	}
}
