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/glib"
11 "github.com/bnema/puregotk/v4/gobject"
12 "github.com/bnema/puregotk/v4/gobject/types"
13)
14
15// Renders a toggle button in a cell
16//
17// `GtkCellRendererToggle` renders a toggle button in a cell. The
18// button is drawn as a radio or a checkbutton, depending on the
19// `GtkCellRendererToggle:radio` property.
20// When activated, it emits the `GtkCellRendererToggle::toggled` signal.
21type CellRendererToggle struct {
22 CellRenderer
23}
24
25var xCellRendererToggleGLibType func() types.GType
26
27func CellRendererToggleGLibType() types.GType {
28 return xCellRendererToggleGLibType()
29}
30
31func CellRendererToggleNewFromInternalPtr(ptr uintptr) *CellRendererToggle {
32 cls := &CellRendererToggle{}
33 cls.Ptr = ptr
34 return cls
35}
36
37var xNewCellRendererToggle func() uintptr
38
39// Creates a new `GtkCellRendererToggle`. Adjust rendering
40// parameters using object properties. Object properties can be set
41// globally (with g_object_set()). Also, with `GtkTreeViewColumn`, you
42// can bind a property to a value in a `GtkTreeModel`. For example, you
43// can bind the “active” property on the cell renderer to a boolean value
44// in the model, thus causing the check button to reflect the state of
45// the model.
46func NewCellRendererToggle() *CellRendererToggle {
47 var cls *CellRendererToggle
48
49 cret := xNewCellRendererToggle()
50
51 if cret == 0 {
52 return nil
53 }
54 gobject.IncreaseRef(cret)
55 cls = &CellRendererToggle{}
56 cls.Ptr = cret
57 return cls
58}
59
60var xCellRendererToggleGetActivatable func(uintptr) bool
61
62// Returns whether the cell renderer is activatable. See
63// gtk_cell_renderer_toggle_set_activatable().
64func (x *CellRendererToggle) GetActivatable() bool {
65
66 cret := xCellRendererToggleGetActivatable(x.GoPointer())
67 return cret
68}
69
70var xCellRendererToggleGetActive func(uintptr) bool
71
72// Returns whether the cell renderer is active. See
73// gtk_cell_renderer_toggle_set_active().
74func (x *CellRendererToggle) GetActive() bool {
75
76 cret := xCellRendererToggleGetActive(x.GoPointer())
77 return cret
78}
79
80var xCellRendererToggleGetRadio func(uintptr) bool
81
82// Returns whether we’re rendering radio toggles rather than checkboxes.
83func (x *CellRendererToggle) GetRadio() bool {
84
85 cret := xCellRendererToggleGetRadio(x.GoPointer())
86 return cret
87}
88
89var xCellRendererToggleSetActivatable func(uintptr, bool)
90
91// Makes the cell renderer activatable.
92func (x *CellRendererToggle) SetActivatable(SettingVar bool) {
93
94 xCellRendererToggleSetActivatable(x.GoPointer(), SettingVar)
95
96}
97
98var xCellRendererToggleSetActive func(uintptr, bool)
99
100// Activates or deactivates a cell renderer.
101func (x *CellRendererToggle) SetActive(SettingVar bool) {
102
103 xCellRendererToggleSetActive(x.GoPointer(), SettingVar)
104
105}
106
107var xCellRendererToggleSetRadio func(uintptr, bool)
108
109// If @radio is %TRUE, the cell renderer renders a radio toggle
110// (i.e. a toggle in a group of mutually-exclusive toggles).
111// If %FALSE, it renders a check toggle (a standalone boolean option).
112// This can be set globally for the cell renderer, or changed just
113// before rendering each cell in the model (for `GtkTreeView`, you set
114// up a per-row setting using `GtkTreeViewColumn` to associate model
115// columns with cell renderer properties).
116func (x *CellRendererToggle) SetRadio(RadioVar bool) {
117
118 xCellRendererToggleSetRadio(x.GoPointer(), RadioVar)
119
120}
121
122func (c *CellRendererToggle) GoPointer() uintptr {
123 if c == nil {
124 return 0
125 }
126 return c.Ptr
127}
128
129func (c *CellRendererToggle) SetGoPointer(ptr uintptr) {
130 c.Ptr = ptr
131}
132
133// SetPropertyActivatable sets the "activatable" property.
134func (x *CellRendererToggle) SetPropertyActivatable(value bool) {
135 var v gobject.Value
136 v.Init(gobject.TypeBooleanVal)
137 v.SetBoolean(value)
138 x.SetProperty("activatable", &v)
139}
140
141// GetPropertyActivatable gets the "activatable" property.
142func (x *CellRendererToggle) GetPropertyActivatable() bool {
143 var v gobject.Value
144 x.GetProperty("activatable", &v)
145 return v.GetBoolean()
146}
147
148// SetPropertyActive sets the "active" property.
149func (x *CellRendererToggle) SetPropertyActive(value bool) {
150 var v gobject.Value
151 v.Init(gobject.TypeBooleanVal)
152 v.SetBoolean(value)
153 x.SetProperty("active", &v)
154}
155
156// GetPropertyActive gets the "active" property.
157func (x *CellRendererToggle) GetPropertyActive() bool {
158 var v gobject.Value
159 x.GetProperty("active", &v)
160 return v.GetBoolean()
161}
162
163// SetPropertyInconsistent sets the "inconsistent" property.
164func (x *CellRendererToggle) SetPropertyInconsistent(value bool) {
165 var v gobject.Value
166 v.Init(gobject.TypeBooleanVal)
167 v.SetBoolean(value)
168 x.SetProperty("inconsistent", &v)
169}
170
171// GetPropertyInconsistent gets the "inconsistent" property.
172func (x *CellRendererToggle) GetPropertyInconsistent() bool {
173 var v gobject.Value
174 x.GetProperty("inconsistent", &v)
175 return v.GetBoolean()
176}
177
178// SetPropertyRadio sets the "radio" property.
179func (x *CellRendererToggle) SetPropertyRadio(value bool) {
180 var v gobject.Value
181 v.Init(gobject.TypeBooleanVal)
182 v.SetBoolean(value)
183 x.SetProperty("radio", &v)
184}
185
186// GetPropertyRadio gets the "radio" property.
187func (x *CellRendererToggle) GetPropertyRadio() bool {
188 var v gobject.Value
189 x.GetProperty("radio", &v)
190 return v.GetBoolean()
191}
192
193// The ::toggled signal is emitted when the cell is toggled.
194//
195// It is the responsibility of the application to update the model
196// with the correct value to store at @path. Often this is simply the
197// opposite of the value currently stored at @path.
198func (x *CellRendererToggle) ConnectToggled(cb *func(CellRendererToggle, string)) uint {
199 cbPtr := uintptr(unsafe.Pointer(cb))
200 if cbRefPtr, ok := glib.GetCallback(cbPtr); ok {
201 handlerID := gobject.SignalConnect(x.GoPointer(), "toggled", cbRefPtr)
202 glib.SaveHandlerMapping(handlerID, cbPtr)
203 return handlerID
204 }
205
206 fcb := func(clsPtr uintptr, PathVarp uintptr) {
207 fa := CellRendererToggle{}
208 fa.Ptr = clsPtr
209 cbFn := *cb
210
211 cbFn(fa, core.GoString(PathVarp))
212
213 }
214 cbRefPtr := purego.NewCallback(fcb)
215 glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
216 handlerID := gobject.SignalConnect(x.GoPointer(), "toggled", cbRefPtr)
217 glib.SaveHandlerMapping(handlerID, cbPtr)
218 return handlerID
219}
220
221func init() {
222 core.SetPackageName("GTK", "gtk4")
223 core.SetSharedLibraries("GTK", []string{"libgtk-4.so.1"})
224 var libs []uintptr
225 for _, libPath := range core.GetPaths("GTK") {
226 lib, err := purego.Dlopen(libPath, purego.RTLD_NOW|purego.RTLD_GLOBAL)
227 if err != nil {
228 panic(err)
229 }
230 libs = append(libs, lib)
231 }
232
233 core.PuregoSafeRegister(&xCellRendererToggleGLibType, libs, "gtk_cell_renderer_toggle_get_type")
234
235 core.PuregoSafeRegister(&xNewCellRendererToggle, libs, "gtk_cell_renderer_toggle_new")
236
237 core.PuregoSafeRegister(&xCellRendererToggleGetActivatable, libs, "gtk_cell_renderer_toggle_get_activatable")
238 core.PuregoSafeRegister(&xCellRendererToggleGetActive, libs, "gtk_cell_renderer_toggle_get_active")
239 core.PuregoSafeRegister(&xCellRendererToggleGetRadio, libs, "gtk_cell_renderer_toggle_get_radio")
240 core.PuregoSafeRegister(&xCellRendererToggleSetActivatable, libs, "gtk_cell_renderer_toggle_set_activatable")
241 core.PuregoSafeRegister(&xCellRendererToggleSetActive, libs, "gtk_cell_renderer_toggle_set_active")
242 core.PuregoSafeRegister(&xCellRendererToggleSetRadio, libs, "gtk_cell_renderer_toggle_set_radio")
243
244}