VT_Player/third_party/gotk3/gtk/level_bar.go
Stu d4efa91ce1 Add vendored gotk3 GTK3 bindings for Go
Vendor gotk3 library to ensure consistent GTK3 bindings across
environments and simplify dependency management.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-15 05:40:43 -05:00

159 lines
4.3 KiB
Go

// Supports building with gtk 3.6+
package gtk
// #include <gtk/gtk.h>
// #include "gtk.go.h"
import "C"
import (
"unsafe"
"github.com/gotk3/gotk3/glib"
)
func init() {
tm := []glib.TypeMarshaler{
{glib.Type(C.gtk_level_bar_mode_get_type()), marshalLevelBarMode},
{glib.Type(C.gtk_level_bar_get_type()), marshalLevelBar},
}
glib.RegisterGValueMarshalers(tm)
WrapMap["GtkLevelBar"] = wrapLevelBar
}
// LevelBarMode is a representation of GTK's GtkLevelBarMode.
type LevelBarMode int
const (
LEVEL_BAR_MODE_CONTINUOUS LevelBarMode = C.GTK_LEVEL_BAR_MODE_CONTINUOUS
LEVEL_BAR_MODE_DISCRETE LevelBarMode = C.GTK_LEVEL_BAR_MODE_DISCRETE
)
// stock offset macro values of GtkLevelBar
const (
LEVEL_BAR_OFFSET_LOW string = C.GTK_LEVEL_BAR_OFFSET_LOW
LEVEL_BAR_OFFSET_HIGH string = C.GTK_LEVEL_BAR_OFFSET_HIGH
)
func marshalLevelBarMode(p uintptr) (interface{}, error) {
c := C.g_value_get_enum((*C.GValue)(unsafe.Pointer(p)))
return LevelBarMode(c), nil
}
/*
* GtkLevelBar
*/
type LevelBar struct {
Widget
}
// native returns a pointer to the underlying GtkLevelBar.
func (v *LevelBar) native() *C.GtkLevelBar {
if v == nil || v.GObject == nil {
return nil
}
p := unsafe.Pointer(v.GObject)
return C.toGtkLevelBar(p)
}
func marshalLevelBar(p uintptr) (interface{}, error) {
c := C.g_value_get_object((*C.GValue)(unsafe.Pointer(p)))
obj := glib.Take(unsafe.Pointer(c))
return wrapLevelBar(obj), nil
}
func wrapLevelBar(obj *glib.Object) *LevelBar {
if obj == nil {
return nil
}
return &LevelBar{Widget{glib.InitiallyUnowned{obj}}}
}
// LevelBarNew is a wrapper around gtk_level_bar_new().
func LevelBarNew() (*LevelBar, error) {
c := C.gtk_level_bar_new()
if c == nil {
return nil, nilPtrErr
}
return wrapLevelBar(glib.Take(unsafe.Pointer(c))), nil
}
// LevelBarNewForInterval is a wrapper around gtk_level_bar_new_for_interval().
func LevelBarNewForInterval(min_value, max_value float64) (*LevelBar, error) {
c := C.gtk_level_bar_new_for_interval(C.gdouble(min_value), C.gdouble(max_value))
if c == nil {
return nil, nilPtrErr
}
return wrapLevelBar(glib.Take(unsafe.Pointer(c))), nil
}
// SetMode is a wrapper around gtk_level_bar_set_mode().
func (v *LevelBar) SetMode(m LevelBarMode) {
C.gtk_level_bar_set_mode(v.native(), C.GtkLevelBarMode(m))
}
// GetMode is a wrapper around gtk_level_bar_get_mode().
func (v *LevelBar) GetMode() LevelBarMode {
return LevelBarMode(C.gtk_level_bar_get_mode(v.native()))
}
// SetValue is a wrapper around gtk_level_bar_set_value().
func (v *LevelBar) SetValue(value float64) {
C.gtk_level_bar_set_value(v.native(), C.gdouble(value))
}
// GetValue is a wrapper around gtk_level_bar_get_value().
func (v *LevelBar) GetValue() float64 {
c := C.gtk_level_bar_get_value(v.native())
return float64(c)
}
// SetMinValue is a wrapper around gtk_level_bar_set_min_value().
func (v *LevelBar) SetMinValue(value float64) {
C.gtk_level_bar_set_min_value(v.native(), C.gdouble(value))
}
// GetMinValue is a wrapper around gtk_level_bar_get_min_value().
func (v *LevelBar) GetMinValue() float64 {
c := C.gtk_level_bar_get_min_value(v.native())
return float64(c)
}
// SetMaxValue is a wrapper around gtk_level_bar_set_max_value().
func (v *LevelBar) SetMaxValue(value float64) {
C.gtk_level_bar_set_max_value(v.native(), C.gdouble(value))
}
// GetMaxValue is a wrapper around gtk_level_bar_get_max_value().
func (v *LevelBar) GetMaxValue() float64 {
c := C.gtk_level_bar_get_max_value(v.native())
return float64(c)
}
// AddOffsetValue is a wrapper around gtk_level_bar_add_offset_value().
func (v *LevelBar) AddOffsetValue(name string, value float64) {
cstr := C.CString(name)
defer C.free(unsafe.Pointer(cstr))
C.gtk_level_bar_add_offset_value(v.native(), (*C.gchar)(cstr), C.gdouble(value))
}
// RemoveOffsetValue is a wrapper around gtk_level_bar_remove_offset_value().
func (v *LevelBar) RemoveOffsetValue(name string) {
cstr := C.CString(name)
defer C.free(unsafe.Pointer(cstr))
C.gtk_level_bar_remove_offset_value(v.native(), (*C.gchar)(cstr))
}
// GetOffsetValue is a wrapper around gtk_level_bar_get_offset_value().
func (v *LevelBar) GetOffsetValue(name string) (float64, bool) {
cstr := C.CString(name)
defer C.free(unsafe.Pointer(cstr))
var value C.gdouble
c := C.gtk_level_bar_get_offset_value(v.native(), (*C.gchar)(cstr), &value)
return float64(value), gobool(c)
}