1// Package gtk was automatically generated by github.com/bnema/puregotk DO NOT EDIT
2package gtk
3
4import (
5 "unsafe"
6
7 "github.com/ebitengine/purego"
8
9 "github.com/bnema/puregotk/pkg/core"
10 "github.com/bnema/puregotk/v4/gdk"
11 "github.com/bnema/puregotk/v4/glib"
12 "github.com/bnema/puregotk/v4/gobject"
13 "github.com/bnema/puregotk/v4/gobject/types"
14)
15
16// The available modes for [property@Gtk.CellRendererAccel:accel-mode].
17type CellRendererAccelMode int
18
19var xCellRendererAccelModeGLibType func() types.GType
20
21func CellRendererAccelModeGLibType() types.GType {
22 return xCellRendererAccelModeGLibType()
23}
24
25const (
26
27 // GTK accelerators mode
28 CellRendererAccelModeGtkValue CellRendererAccelMode = 0
29 // Other accelerator mode
30 CellRendererAccelModeOtherValue CellRendererAccelMode = 1
31)
32
33// Renders a keyboard accelerator in a cell
34//
35// `GtkCellRendererAccel` displays a keyboard accelerator (i.e. a key
36// combination like `Control + a`). If the cell renderer is editable,
37// the accelerator can be changed by simply typing the new combination.
38type CellRendererAccel struct {
39 CellRendererText
40}
41
42var xCellRendererAccelGLibType func() types.GType
43
44func CellRendererAccelGLibType() types.GType {
45 return xCellRendererAccelGLibType()
46}
47
48func CellRendererAccelNewFromInternalPtr(ptr uintptr) *CellRendererAccel {
49 cls := &CellRendererAccel{}
50 cls.Ptr = ptr
51 return cls
52}
53
54var xNewCellRendererAccel func() uintptr
55
56// Creates a new `GtkCellRendererAccel`.
57func NewCellRendererAccel() *CellRendererAccel {
58 var cls *CellRendererAccel
59
60 cret := xNewCellRendererAccel()
61
62 if cret == 0 {
63 return nil
64 }
65 gobject.IncreaseRef(cret)
66 cls = &CellRendererAccel{}
67 cls.Ptr = cret
68 return cls
69}
70
71func (c *CellRendererAccel) GoPointer() uintptr {
72 if c == nil {
73 return 0
74 }
75 return c.Ptr
76}
77
78func (c *CellRendererAccel) SetGoPointer(ptr uintptr) {
79 c.Ptr = ptr
80}
81
82// SetPropertyAccelKey sets the "accel-key" property.
83// The keyval of the accelerator.
84func (x *CellRendererAccel) SetPropertyAccelKey(value uint) {
85 var v gobject.Value
86 v.Init(gobject.TypeUintVal)
87 v.SetUint(value)
88 x.SetProperty("accel-key", &v)
89}
90
91// GetPropertyAccelKey gets the "accel-key" property.
92// The keyval of the accelerator.
93func (x *CellRendererAccel) GetPropertyAccelKey() uint {
94 var v gobject.Value
95 x.GetProperty("accel-key", &v)
96 return v.GetUint()
97}
98
99// SetPropertyKeycode sets the "keycode" property.
100// The hardware keycode of the accelerator. Note that the hardware keycode is
101// only relevant if the key does not have a keyval. Normally, the keyboard
102// configuration should assign keyvals to all keys.
103func (x *CellRendererAccel) SetPropertyKeycode(value uint) {
104 var v gobject.Value
105 v.Init(gobject.TypeUintVal)
106 v.SetUint(value)
107 x.SetProperty("keycode", &v)
108}
109
110// GetPropertyKeycode gets the "keycode" property.
111// The hardware keycode of the accelerator. Note that the hardware keycode is
112// only relevant if the key does not have a keyval. Normally, the keyboard
113// configuration should assign keyvals to all keys.
114func (x *CellRendererAccel) GetPropertyKeycode() uint {
115 var v gobject.Value
116 x.GetProperty("keycode", &v)
117 return v.GetUint()
118}
119
120// Gets emitted when the user has removed the accelerator.
121func (x *CellRendererAccel) ConnectAccelCleared(cb *func(CellRendererAccel, string)) uint {
122 cbPtr := uintptr(unsafe.Pointer(cb))
123 if cbRefPtr, ok := glib.GetCallback(cbPtr); ok {
124 handlerID := gobject.SignalConnect(x.GoPointer(), "accel-cleared", cbRefPtr)
125 glib.SaveHandlerMapping(handlerID, cbPtr)
126 return handlerID
127 }
128
129 fcb := func(clsPtr uintptr, PathStringVarp uintptr) {
130 fa := CellRendererAccel{}
131 fa.Ptr = clsPtr
132 cbFn := *cb
133
134 cbFn(fa, core.GoString(PathStringVarp))
135
136 }
137 cbRefPtr := purego.NewCallback(fcb)
138 glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
139 handlerID := gobject.SignalConnect(x.GoPointer(), "accel-cleared", cbRefPtr)
140 glib.SaveHandlerMapping(handlerID, cbPtr)
141 return handlerID
142}
143
144// Gets emitted when the user has selected a new accelerator.
145func (x *CellRendererAccel) ConnectAccelEdited(cb *func(CellRendererAccel, string, uint, gdk.ModifierType, uint)) uint {
146 cbPtr := uintptr(unsafe.Pointer(cb))
147 if cbRefPtr, ok := glib.GetCallback(cbPtr); ok {
148 handlerID := gobject.SignalConnect(x.GoPointer(), "accel-edited", cbRefPtr)
149 glib.SaveHandlerMapping(handlerID, cbPtr)
150 return handlerID
151 }
152
153 fcb := func(clsPtr uintptr, PathStringVarp uintptr, AccelKeyVarp uint, AccelModsVarp gdk.ModifierType, HardwareKeycodeVarp uint) {
154 fa := CellRendererAccel{}
155 fa.Ptr = clsPtr
156 cbFn := *cb
157
158 cbFn(fa, core.GoString(PathStringVarp), AccelKeyVarp, AccelModsVarp, HardwareKeycodeVarp)
159
160 }
161 cbRefPtr := purego.NewCallback(fcb)
162 glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
163 handlerID := gobject.SignalConnect(x.GoPointer(), "accel-edited", cbRefPtr)
164 glib.SaveHandlerMapping(handlerID, cbPtr)
165 return handlerID
166}
167
168func init() {
169 core.SetPackageName("GTK", "gtk4")
170 core.SetSharedLibraries("GTK", []string{"libgtk-4.so.1"})
171 var libs []uintptr
172 for _, libPath := range core.GetPaths("GTK") {
173 lib, err := purego.Dlopen(libPath, purego.RTLD_NOW|purego.RTLD_GLOBAL)
174 if err != nil {
175 panic(err)
176 }
177 libs = append(libs, lib)
178 }
179
180 core.PuregoSafeRegister(&xCellRendererAccelModeGLibType, libs, "gtk_cell_renderer_accel_mode_get_type")
181
182 core.PuregoSafeRegister(&xCellRendererAccelGLibType, libs, "gtk_cell_renderer_accel_get_type")
183
184 core.PuregoSafeRegister(&xNewCellRendererAccel, libs, "gtk_cell_renderer_accel_new")
185
186}