1// Package gtk was automatically generated by github.com/bnema/puregotk DO NOT EDIT
2package gtk
3
4import (
5 "structs"
6 "unsafe"
7
8 "github.com/ebitengine/purego"
9
10 "github.com/bnema/puregotk/pkg/core"
11 "github.com/bnema/puregotk/v4/gobject/types"
12)
13
14type PrintOperationPreviewIface struct {
15 _ structs.HostLayout
16
17 GIface uintptr
18
19 xReady uintptr
20
21 xGotPageSize uintptr
22
23 xRenderPage uintptr
24
25 xIsSelected uintptr
26
27 xEndPreview uintptr
28
29 xGtkReserved1 uintptr
30
31 xGtkReserved2 uintptr
32
33 xGtkReserved3 uintptr
34
35 xGtkReserved4 uintptr
36
37 xGtkReserved5 uintptr
38
39 xGtkReserved6 uintptr
40
41 xGtkReserved7 uintptr
42
43 xGtkReserved8 uintptr
44}
45
46func (x *PrintOperationPreviewIface) GoPointer() uintptr {
47 return uintptr(unsafe.Pointer(x))
48}
49
50// OverrideReady sets the "ready" callback function.
51func (x *PrintOperationPreviewIface) OverrideReady(cb func(PrintOperationPreview, *PrintContext)) {
52 if cb == nil {
53 x.xReady = 0
54 } else {
55 x.xReady = purego.NewCallback(func(PreviewVarp uintptr, ContextVarp uintptr) {
56 cb(&PrintOperationPreviewBase{Ptr: PreviewVarp}, PrintContextNewFromInternalPtr(ContextVarp))
57 })
58 }
59}
60
61// GetReady gets the "ready" callback function.
62func (x *PrintOperationPreviewIface) GetReady() func(PrintOperationPreview, *PrintContext) {
63 if x.xReady == 0 {
64 return nil
65 }
66 var rawCallback func(PreviewVarp uintptr, ContextVarp uintptr)
67 purego.RegisterFunc(&rawCallback, x.xReady)
68 return func(PreviewVar PrintOperationPreview, ContextVar *PrintContext) {
69 rawCallback(PreviewVar.GoPointer(), ContextVar.GoPointer())
70 }
71}
72
73// OverrideGotPageSize sets the "got_page_size" callback function.
74func (x *PrintOperationPreviewIface) OverrideGotPageSize(cb func(PrintOperationPreview, *PrintContext, *PageSetup)) {
75 if cb == nil {
76 x.xGotPageSize = 0
77 } else {
78 x.xGotPageSize = purego.NewCallback(func(PreviewVarp uintptr, ContextVarp uintptr, PageSetupVarp uintptr) {
79 cb(&PrintOperationPreviewBase{Ptr: PreviewVarp}, PrintContextNewFromInternalPtr(ContextVarp), PageSetupNewFromInternalPtr(PageSetupVarp))
80 })
81 }
82}
83
84// GetGotPageSize gets the "got_page_size" callback function.
85func (x *PrintOperationPreviewIface) GetGotPageSize() func(PrintOperationPreview, *PrintContext, *PageSetup) {
86 if x.xGotPageSize == 0 {
87 return nil
88 }
89 var rawCallback func(PreviewVarp uintptr, ContextVarp uintptr, PageSetupVarp uintptr)
90 purego.RegisterFunc(&rawCallback, x.xGotPageSize)
91 return func(PreviewVar PrintOperationPreview, ContextVar *PrintContext, PageSetupVar *PageSetup) {
92 rawCallback(PreviewVar.GoPointer(), ContextVar.GoPointer(), PageSetupVar.GoPointer())
93 }
94}
95
96// OverrideRenderPage sets the "render_page" callback function.
97func (x *PrintOperationPreviewIface) OverrideRenderPage(cb func(PrintOperationPreview, int)) {
98 if cb == nil {
99 x.xRenderPage = 0
100 } else {
101 x.xRenderPage = purego.NewCallback(func(PreviewVarp uintptr, PageNrVarp int) {
102 cb(&PrintOperationPreviewBase{Ptr: PreviewVarp}, PageNrVarp)
103 })
104 }
105}
106
107// GetRenderPage gets the "render_page" callback function.
108func (x *PrintOperationPreviewIface) GetRenderPage() func(PrintOperationPreview, int) {
109 if x.xRenderPage == 0 {
110 return nil
111 }
112 var rawCallback func(PreviewVarp uintptr, PageNrVarp int)
113 purego.RegisterFunc(&rawCallback, x.xRenderPage)
114 return func(PreviewVar PrintOperationPreview, PageNrVar int) {
115 rawCallback(PreviewVar.GoPointer(), PageNrVar)
116 }
117}
118
119// OverrideIsSelected sets the "is_selected" callback function.
120func (x *PrintOperationPreviewIface) OverrideIsSelected(cb func(PrintOperationPreview, int) bool) {
121 if cb == nil {
122 x.xIsSelected = 0
123 } else {
124 x.xIsSelected = purego.NewCallback(func(PreviewVarp uintptr, PageNrVarp int) bool {
125 return cb(&PrintOperationPreviewBase{Ptr: PreviewVarp}, PageNrVarp)
126 })
127 }
128}
129
130// GetIsSelected gets the "is_selected" callback function.
131func (x *PrintOperationPreviewIface) GetIsSelected() func(PrintOperationPreview, int) bool {
132 if x.xIsSelected == 0 {
133 return nil
134 }
135 var rawCallback func(PreviewVarp uintptr, PageNrVarp int) bool
136 purego.RegisterFunc(&rawCallback, x.xIsSelected)
137 return func(PreviewVar PrintOperationPreview, PageNrVar int) bool {
138 return rawCallback(PreviewVar.GoPointer(), PageNrVar)
139 }
140}
141
142// OverrideEndPreview sets the "end_preview" callback function.
143func (x *PrintOperationPreviewIface) OverrideEndPreview(cb func(PrintOperationPreview)) {
144 if cb == nil {
145 x.xEndPreview = 0
146 } else {
147 x.xEndPreview = purego.NewCallback(func(PreviewVarp uintptr) {
148 cb(&PrintOperationPreviewBase{Ptr: PreviewVarp})
149 })
150 }
151}
152
153// GetEndPreview gets the "end_preview" callback function.
154func (x *PrintOperationPreviewIface) GetEndPreview() func(PrintOperationPreview) {
155 if x.xEndPreview == 0 {
156 return nil
157 }
158 var rawCallback func(PreviewVarp uintptr)
159 purego.RegisterFunc(&rawCallback, x.xEndPreview)
160 return func(PreviewVar PrintOperationPreview) {
161 rawCallback(PreviewVar.GoPointer())
162 }
163}
164
165// OverrideGtkReserved1 sets the "_gtk_reserved1" callback function.
166func (x *PrintOperationPreviewIface) OverrideGtkReserved1(cb func()) {
167 if cb == nil {
168 x.xGtkReserved1 = 0
169 } else {
170 x.xGtkReserved1 = purego.NewCallback(func() {
171 cb()
172 })
173 }
174}
175
176// GetGtkReserved1 gets the "_gtk_reserved1" callback function.
177func (x *PrintOperationPreviewIface) GetGtkReserved1() func() {
178 if x.xGtkReserved1 == 0 {
179 return nil
180 }
181 var rawCallback func()
182 purego.RegisterFunc(&rawCallback, x.xGtkReserved1)
183 return func() {
184 rawCallback()
185 }
186}
187
188// OverrideGtkReserved2 sets the "_gtk_reserved2" callback function.
189func (x *PrintOperationPreviewIface) OverrideGtkReserved2(cb func()) {
190 if cb == nil {
191 x.xGtkReserved2 = 0
192 } else {
193 x.xGtkReserved2 = purego.NewCallback(func() {
194 cb()
195 })
196 }
197}
198
199// GetGtkReserved2 gets the "_gtk_reserved2" callback function.
200func (x *PrintOperationPreviewIface) GetGtkReserved2() func() {
201 if x.xGtkReserved2 == 0 {
202 return nil
203 }
204 var rawCallback func()
205 purego.RegisterFunc(&rawCallback, x.xGtkReserved2)
206 return func() {
207 rawCallback()
208 }
209}
210
211// OverrideGtkReserved3 sets the "_gtk_reserved3" callback function.
212func (x *PrintOperationPreviewIface) OverrideGtkReserved3(cb func()) {
213 if cb == nil {
214 x.xGtkReserved3 = 0
215 } else {
216 x.xGtkReserved3 = purego.NewCallback(func() {
217 cb()
218 })
219 }
220}
221
222// GetGtkReserved3 gets the "_gtk_reserved3" callback function.
223func (x *PrintOperationPreviewIface) GetGtkReserved3() func() {
224 if x.xGtkReserved3 == 0 {
225 return nil
226 }
227 var rawCallback func()
228 purego.RegisterFunc(&rawCallback, x.xGtkReserved3)
229 return func() {
230 rawCallback()
231 }
232}
233
234// OverrideGtkReserved4 sets the "_gtk_reserved4" callback function.
235func (x *PrintOperationPreviewIface) OverrideGtkReserved4(cb func()) {
236 if cb == nil {
237 x.xGtkReserved4 = 0
238 } else {
239 x.xGtkReserved4 = purego.NewCallback(func() {
240 cb()
241 })
242 }
243}
244
245// GetGtkReserved4 gets the "_gtk_reserved4" callback function.
246func (x *PrintOperationPreviewIface) GetGtkReserved4() func() {
247 if x.xGtkReserved4 == 0 {
248 return nil
249 }
250 var rawCallback func()
251 purego.RegisterFunc(&rawCallback, x.xGtkReserved4)
252 return func() {
253 rawCallback()
254 }
255}
256
257// OverrideGtkReserved5 sets the "_gtk_reserved5" callback function.
258func (x *PrintOperationPreviewIface) OverrideGtkReserved5(cb func()) {
259 if cb == nil {
260 x.xGtkReserved5 = 0
261 } else {
262 x.xGtkReserved5 = purego.NewCallback(func() {
263 cb()
264 })
265 }
266}
267
268// GetGtkReserved5 gets the "_gtk_reserved5" callback function.
269func (x *PrintOperationPreviewIface) GetGtkReserved5() func() {
270 if x.xGtkReserved5 == 0 {
271 return nil
272 }
273 var rawCallback func()
274 purego.RegisterFunc(&rawCallback, x.xGtkReserved5)
275 return func() {
276 rawCallback()
277 }
278}
279
280// OverrideGtkReserved6 sets the "_gtk_reserved6" callback function.
281func (x *PrintOperationPreviewIface) OverrideGtkReserved6(cb func()) {
282 if cb == nil {
283 x.xGtkReserved6 = 0
284 } else {
285 x.xGtkReserved6 = purego.NewCallback(func() {
286 cb()
287 })
288 }
289}
290
291// GetGtkReserved6 gets the "_gtk_reserved6" callback function.
292func (x *PrintOperationPreviewIface) GetGtkReserved6() func() {
293 if x.xGtkReserved6 == 0 {
294 return nil
295 }
296 var rawCallback func()
297 purego.RegisterFunc(&rawCallback, x.xGtkReserved6)
298 return func() {
299 rawCallback()
300 }
301}
302
303// OverrideGtkReserved7 sets the "_gtk_reserved7" callback function.
304func (x *PrintOperationPreviewIface) OverrideGtkReserved7(cb func()) {
305 if cb == nil {
306 x.xGtkReserved7 = 0
307 } else {
308 x.xGtkReserved7 = purego.NewCallback(func() {
309 cb()
310 })
311 }
312}
313
314// GetGtkReserved7 gets the "_gtk_reserved7" callback function.
315func (x *PrintOperationPreviewIface) GetGtkReserved7() func() {
316 if x.xGtkReserved7 == 0 {
317 return nil
318 }
319 var rawCallback func()
320 purego.RegisterFunc(&rawCallback, x.xGtkReserved7)
321 return func() {
322 rawCallback()
323 }
324}
325
326// OverrideGtkReserved8 sets the "_gtk_reserved8" callback function.
327func (x *PrintOperationPreviewIface) OverrideGtkReserved8(cb func()) {
328 if cb == nil {
329 x.xGtkReserved8 = 0
330 } else {
331 x.xGtkReserved8 = purego.NewCallback(func() {
332 cb()
333 })
334 }
335}
336
337// GetGtkReserved8 gets the "_gtk_reserved8" callback function.
338func (x *PrintOperationPreviewIface) GetGtkReserved8() func() {
339 if x.xGtkReserved8 == 0 {
340 return nil
341 }
342 var rawCallback func()
343 purego.RegisterFunc(&rawCallback, x.xGtkReserved8)
344 return func() {
345 rawCallback()
346 }
347}
348
349// The interface that is used to implement print preview.
350//
351// A `GtkPrintOperationPreview` object is passed to the
352// [signal@Gtk.PrintOperation::preview] signal by
353// [class@Gtk.PrintOperation].
354type PrintOperationPreview interface {
355 GoPointer() uintptr
356 SetGoPointer(uintptr)
357 EndPreview()
358 IsSelected(PageNrVar int) bool
359 RenderPage(PageNrVar int)
360}
361
362var xPrintOperationPreviewGLibType func() types.GType
363
364func PrintOperationPreviewGLibType() types.GType {
365 return xPrintOperationPreviewGLibType()
366}
367
368type PrintOperationPreviewBase struct {
369 Ptr uintptr
370}
371
372func (x *PrintOperationPreviewBase) GoPointer() uintptr {
373 if x == nil {
374 return 0
375 }
376 return x.Ptr
377}
378
379func (x *PrintOperationPreviewBase) SetGoPointer(ptr uintptr) {
380 x.Ptr = ptr
381}
382
383// Ends a preview.
384//
385// This function must be called to finish a custom print preview.
386func (x *PrintOperationPreviewBase) EndPreview() {
387
388 XGtkPrintOperationPreviewEndPreview(x.GoPointer())
389
390}
391
392// Returns whether the given page is included in the set of pages that
393// have been selected for printing.
394func (x *PrintOperationPreviewBase) IsSelected(PageNrVar int) bool {
395
396 cret := XGtkPrintOperationPreviewIsSelected(x.GoPointer(), PageNrVar)
397 return cret
398}
399
400// Renders a page to the preview.
401//
402// This is using the print context that was passed to the
403// [signal@Gtk.PrintOperation::preview] handler together
404// with @preview.
405//
406// A custom print preview should use this function to render
407// the currently selected page.
408//
409// Note that this function requires a suitable cairo context to
410// be associated with the print context.
411func (x *PrintOperationPreviewBase) RenderPage(PageNrVar int) {
412
413 XGtkPrintOperationPreviewRenderPage(x.GoPointer(), PageNrVar)
414
415}
416
417var XGtkPrintOperationPreviewEndPreview func(uintptr)
418var XGtkPrintOperationPreviewIsSelected func(uintptr, int) bool
419var XGtkPrintOperationPreviewRenderPage func(uintptr, int)
420
421func init() {
422 core.SetPackageName("GTK", "gtk4")
423 core.SetSharedLibraries("GTK", []string{"libgtk-4.so.1"})
424 var libs []uintptr
425 for _, libPath := range core.GetPaths("GTK") {
426 lib, err := purego.Dlopen(libPath, purego.RTLD_NOW|purego.RTLD_GLOBAL)
427 if err != nil {
428 panic(err)
429 }
430 libs = append(libs, lib)
431 }
432
433 core.PuregoSafeRegister(&xPrintOperationPreviewGLibType, libs, "gtk_print_operation_preview_get_type")
434
435 core.PuregoSafeRegister(&XGtkPrintOperationPreviewEndPreview, libs, "gtk_print_operation_preview_end_preview")
436 core.PuregoSafeRegister(&XGtkPrintOperationPreviewIsSelected, libs, "gtk_print_operation_preview_is_selected")
437 core.PuregoSafeRegister(&XGtkPrintOperationPreviewRenderPage, libs, "gtk_print_operation_preview_render_page")
438
439}