1package glib
2
3// #include <gio/gio.h>
4// #include <glib.h>
5// #include <glib-object.h>
6// #include "glib.go.h"
7import "C"
8
9type Source C.GSource
10
11// native returns a pointer to the underlying GSource.
12func (v *Source) native() *C.GSource {
13	if v == nil {
14		return nil
15	}
16	return (*C.GSource)(v)
17}
18
19func wrapSource(sourcePtr *C.GSource) *Source {
20	source := Source(*sourcePtr)
21	return &source
22}
23
24// MainCurrentSource is a wrapper around g_main_current_source().
25func MainCurrentSource() *Source {
26	c := C.g_main_current_source()
27	if c == nil {
28		return nil
29	}
30	return (*Source)(c)
31}
32