mirror of
https://github.com/mappu/miqt.git
synced 2024-12-23 01:18:37 +00:00
239 lines
5.5 KiB
Go
239 lines
5.5 KiB
Go
package qt
|
|
|
|
/*
|
|
|
|
#include "gen_qpen.h"
|
|
#include <stdlib.h>
|
|
|
|
*/
|
|
import "C"
|
|
|
|
import (
|
|
"runtime"
|
|
"unsafe"
|
|
)
|
|
|
|
type QPen struct {
|
|
h *C.QPen
|
|
}
|
|
|
|
func (this *QPen) cPointer() *C.QPen {
|
|
if this == nil {
|
|
return nil
|
|
}
|
|
return this.h
|
|
}
|
|
|
|
func (this *QPen) UnsafePointer() unsafe.Pointer {
|
|
if this == nil {
|
|
return nil
|
|
}
|
|
return unsafe.Pointer(this.h)
|
|
}
|
|
|
|
func newQPen(h *C.QPen) *QPen {
|
|
if h == nil {
|
|
return nil
|
|
}
|
|
return &QPen{h: h}
|
|
}
|
|
|
|
func UnsafeNewQPen(h unsafe.Pointer) *QPen {
|
|
return newQPen((*C.QPen)(h))
|
|
}
|
|
|
|
// NewQPen constructs a new QPen object.
|
|
func NewQPen() *QPen {
|
|
ret := C.QPen_new()
|
|
return newQPen(ret)
|
|
}
|
|
|
|
// NewQPen2 constructs a new QPen object.
|
|
func NewQPen2(param1 PenStyle) *QPen {
|
|
ret := C.QPen_new2((C.int)(param1))
|
|
return newQPen(ret)
|
|
}
|
|
|
|
// NewQPen3 constructs a new QPen object.
|
|
func NewQPen3(color *QColor) *QPen {
|
|
ret := C.QPen_new3(color.cPointer())
|
|
return newQPen(ret)
|
|
}
|
|
|
|
// NewQPen4 constructs a new QPen object.
|
|
func NewQPen4(brush *QBrush, width float64) *QPen {
|
|
ret := C.QPen_new4(brush.cPointer(), (C.double)(width))
|
|
return newQPen(ret)
|
|
}
|
|
|
|
// NewQPen5 constructs a new QPen object.
|
|
func NewQPen5(pen *QPen) *QPen {
|
|
ret := C.QPen_new5(pen.cPointer())
|
|
return newQPen(ret)
|
|
}
|
|
|
|
// NewQPen6 constructs a new QPen object.
|
|
func NewQPen6(brush *QBrush, width float64, s PenStyle) *QPen {
|
|
ret := C.QPen_new6(brush.cPointer(), (C.double)(width), (C.int)(s))
|
|
return newQPen(ret)
|
|
}
|
|
|
|
// NewQPen7 constructs a new QPen object.
|
|
func NewQPen7(brush *QBrush, width float64, s PenStyle, c PenCapStyle) *QPen {
|
|
ret := C.QPen_new7(brush.cPointer(), (C.double)(width), (C.int)(s), (C.int)(c))
|
|
return newQPen(ret)
|
|
}
|
|
|
|
// NewQPen8 constructs a new QPen object.
|
|
func NewQPen8(brush *QBrush, width float64, s PenStyle, c PenCapStyle, j PenJoinStyle) *QPen {
|
|
ret := C.QPen_new8(brush.cPointer(), (C.double)(width), (C.int)(s), (C.int)(c), (C.int)(j))
|
|
return newQPen(ret)
|
|
}
|
|
|
|
func (this *QPen) OperatorAssign(pen *QPen) {
|
|
C.QPen_OperatorAssign(this.h, pen.cPointer())
|
|
}
|
|
|
|
func (this *QPen) Swap(other *QPen) {
|
|
C.QPen_Swap(this.h, other.cPointer())
|
|
}
|
|
|
|
func (this *QPen) Style() PenStyle {
|
|
return (PenStyle)(C.QPen_Style(this.h))
|
|
}
|
|
|
|
func (this *QPen) SetStyle(style PenStyle) {
|
|
C.QPen_SetStyle(this.h, (C.int)(style))
|
|
}
|
|
|
|
func (this *QPen) DashPattern() []float64 {
|
|
var _ma *C.struct_miqt_array = C.QPen_DashPattern(this.h)
|
|
_ret := make([]float64, int(_ma.len))
|
|
_outCast := (*[0xffff]C.double)(unsafe.Pointer(_ma.data)) // hey ya
|
|
for i := 0; i < int(_ma.len); i++ {
|
|
_ret[i] = (float64)(_outCast[i])
|
|
}
|
|
C.free(unsafe.Pointer(_ma))
|
|
return _ret
|
|
}
|
|
|
|
func (this *QPen) SetDashPattern(pattern []float64) {
|
|
// For the C ABI, malloc a C array of raw pointers
|
|
pattern_CArray := (*[0xffff]C.double)(C.malloc(C.size_t(8 * len(pattern))))
|
|
defer C.free(unsafe.Pointer(pattern_CArray))
|
|
for i := range pattern {
|
|
pattern_CArray[i] = (C.double)(pattern[i])
|
|
}
|
|
pattern_ma := &C.struct_miqt_array{len: C.size_t(len(pattern)), data: unsafe.Pointer(pattern_CArray)}
|
|
defer runtime.KeepAlive(unsafe.Pointer(pattern_ma))
|
|
C.QPen_SetDashPattern(this.h, pattern_ma)
|
|
}
|
|
|
|
func (this *QPen) DashOffset() float64 {
|
|
return (float64)(C.QPen_DashOffset(this.h))
|
|
}
|
|
|
|
func (this *QPen) SetDashOffset(doffset float64) {
|
|
C.QPen_SetDashOffset(this.h, (C.double)(doffset))
|
|
}
|
|
|
|
func (this *QPen) MiterLimit() float64 {
|
|
return (float64)(C.QPen_MiterLimit(this.h))
|
|
}
|
|
|
|
func (this *QPen) SetMiterLimit(limit float64) {
|
|
C.QPen_SetMiterLimit(this.h, (C.double)(limit))
|
|
}
|
|
|
|
func (this *QPen) WidthF() float64 {
|
|
return (float64)(C.QPen_WidthF(this.h))
|
|
}
|
|
|
|
func (this *QPen) SetWidthF(width float64) {
|
|
C.QPen_SetWidthF(this.h, (C.double)(width))
|
|
}
|
|
|
|
func (this *QPen) Width() int {
|
|
return (int)(C.QPen_Width(this.h))
|
|
}
|
|
|
|
func (this *QPen) SetWidth(width int) {
|
|
C.QPen_SetWidth(this.h, (C.int)(width))
|
|
}
|
|
|
|
func (this *QPen) Color() *QColor {
|
|
_ret := C.QPen_Color(this.h)
|
|
_goptr := newQColor(_ret)
|
|
_goptr.GoGC() // Qt uses pass-by-value semantics for this type. Mimic with finalizer
|
|
return _goptr
|
|
}
|
|
|
|
func (this *QPen) SetColor(color *QColor) {
|
|
C.QPen_SetColor(this.h, color.cPointer())
|
|
}
|
|
|
|
func (this *QPen) Brush() *QBrush {
|
|
_ret := C.QPen_Brush(this.h)
|
|
_goptr := newQBrush(_ret)
|
|
_goptr.GoGC() // Qt uses pass-by-value semantics for this type. Mimic with finalizer
|
|
return _goptr
|
|
}
|
|
|
|
func (this *QPen) SetBrush(brush *QBrush) {
|
|
C.QPen_SetBrush(this.h, brush.cPointer())
|
|
}
|
|
|
|
func (this *QPen) IsSolid() bool {
|
|
return (bool)(C.QPen_IsSolid(this.h))
|
|
}
|
|
|
|
func (this *QPen) CapStyle() PenCapStyle {
|
|
return (PenCapStyle)(C.QPen_CapStyle(this.h))
|
|
}
|
|
|
|
func (this *QPen) SetCapStyle(pcs PenCapStyle) {
|
|
C.QPen_SetCapStyle(this.h, (C.int)(pcs))
|
|
}
|
|
|
|
func (this *QPen) JoinStyle() PenJoinStyle {
|
|
return (PenJoinStyle)(C.QPen_JoinStyle(this.h))
|
|
}
|
|
|
|
func (this *QPen) SetJoinStyle(pcs PenJoinStyle) {
|
|
C.QPen_SetJoinStyle(this.h, (C.int)(pcs))
|
|
}
|
|
|
|
func (this *QPen) IsCosmetic() bool {
|
|
return (bool)(C.QPen_IsCosmetic(this.h))
|
|
}
|
|
|
|
func (this *QPen) SetCosmetic(cosmetic bool) {
|
|
C.QPen_SetCosmetic(this.h, (C.bool)(cosmetic))
|
|
}
|
|
|
|
func (this *QPen) OperatorEqual(p *QPen) bool {
|
|
return (bool)(C.QPen_OperatorEqual(this.h, p.cPointer()))
|
|
}
|
|
|
|
func (this *QPen) OperatorNotEqual(p *QPen) bool {
|
|
return (bool)(C.QPen_OperatorNotEqual(this.h, p.cPointer()))
|
|
}
|
|
|
|
func (this *QPen) IsDetached() bool {
|
|
return (bool)(C.QPen_IsDetached(this.h))
|
|
}
|
|
|
|
// Delete this object from C++ memory.
|
|
func (this *QPen) Delete() {
|
|
C.QPen_Delete(this.h)
|
|
}
|
|
|
|
// GoGC adds a Go Finalizer to this pointer, so that it will be deleted
|
|
// from C++ memory once it is unreachable from Go memory.
|
|
func (this *QPen) GoGC() {
|
|
runtime.SetFinalizer(this, func(this *QPen) {
|
|
this.Delete()
|
|
runtime.KeepAlive(this.h)
|
|
})
|
|
}
|