func (_this *PaintRenderingContext2D) ShadowOffsetX() float64 {
	var ret float64
	value := _this.Value_JS.Get("shadowOffsetX")
	ret = (value).Float()
	return ret
}
ShadowOffsetX returning attribute 'shadowOffsetX' with
type float64 (idl: unrestricted double).
package paint
import "syscall/js"
import (
	"github.com/gowebapi/webapi/core/jsarray"
	"github.com/gowebapi/webapi/dom/geometry"
	"github.com/gowebapi/webapi/html/canvas"
	"github.com/gowebapi/webapi/webidl"
	"github.com/gowebapi/webapi/worklets"
)
func unused(value interface{}) {
}
type Union struct {
	Value js.Value
}
func (u *Union) JSValue() js.Value {
	return u.Value
}
func UnionFromJS(value js.Value) *Union {
	return &Union{Value: value}
}
type PaintRenderingContext2DSettings struct {
	Alpha bool
}
func (_this *PaintRenderingContext2DSettings) JSValue() js.Value {
	out := js.Global().Get("Object").New()
	value0 := _this.Alpha
	out.Set("alpha", value0)
	return out
}
func PaintRenderingContext2DSettingsFromJS(value js.Wrapper) *PaintRenderingContext2DSettings {
	input := value.JSValue()
	var out PaintRenderingContext2DSettings
	var (
		value0 bool  
	)
	value0 = (input.Get("alpha")).Bool()
	out.Alpha = value0
	return &out
}
type PaintRenderingContext2D struct {
	Value_JS js.Value
}
func (_this *PaintRenderingContext2D) JSValue() js.Value {
	return _this.Value_JS
}
func PaintRenderingContext2DFromJS(value js.Wrapper) *PaintRenderingContext2D {
	input := value.JSValue()
	if typ := input.Type(); typ == js.TypeNull || typ == js.TypeUndefined {
		return nil
	}
	ret := &PaintRenderingContext2D{}
	ret.Value_JS = input
	return ret
}
func (_this *PaintRenderingContext2D) GlobalAlpha() float64 {
	var ret float64
	value := _this.Value_JS.Get("globalAlpha")
	ret = (value).Float()
	return ret
}
func (_this *PaintRenderingContext2D) SetGlobalAlpha(value float64) {
	input := value
	_this.Value_JS.Set("globalAlpha", input)
}
func (_this *PaintRenderingContext2D) GlobalCompositeOperation() string {
	var ret string
	value := _this.Value_JS.Get("globalCompositeOperation")
	ret = (value).String()
	return ret
}
func (_this *PaintRenderingContext2D) SetGlobalCompositeOperation(value string) {
	input := value
	_this.Value_JS.Set("globalCompositeOperation", input)
}
func (_this *PaintRenderingContext2D) ImageSmoothingEnabled() bool {
	var ret bool
	value := _this.Value_JS.Get("imageSmoothingEnabled")
	ret = (value).Bool()
	return ret
}
func (_this *PaintRenderingContext2D) SetImageSmoothingEnabled(value bool) {
	input := value
	_this.Value_JS.Set("imageSmoothingEnabled", input)
}
func (_this *PaintRenderingContext2D) ImageSmoothingQuality() canvas.ImageSmoothingQuality {
	var ret canvas.ImageSmoothingQuality
	value := _this.Value_JS.Get("imageSmoothingQuality")
	ret = canvas.ImageSmoothingQualityFromJS(value)
	return ret
}
func (_this *PaintRenderingContext2D) SetImageSmoothingQuality(value canvas.ImageSmoothingQuality) {
	input := value.JSValue()
	_this.Value_JS.Set("imageSmoothingQuality", input)
}
func (_this *PaintRenderingContext2D) StrokeStyle() *Union {
	var ret *Union
	value := _this.Value_JS.Get("strokeStyle")
	ret = UnionFromJS(value)
	return ret
}
func (_this *PaintRenderingContext2D) SetStrokeStyle(value *Union) {
	input := value.JSValue()
	_this.Value_JS.Set("strokeStyle", input)
}
func (_this *PaintRenderingContext2D) FillStyle() *Union {
	var ret *Union
	value := _this.Value_JS.Get("fillStyle")
	ret = UnionFromJS(value)
	return ret
}
func (_this *PaintRenderingContext2D) SetFillStyle(value *Union) {
	input := value.JSValue()
	_this.Value_JS.Set("fillStyle", input)
}