This repository has been archived on 2025-03-15. You can view files and clone it, but cannot push or open issues or pull requests.
hui/internal/bldr/get.go
2024-07-31 19:10:32 +02:00

183 lines
4.8 KiB
Go

// Package bldr deals with Glade GTK* builder functionality.
package bldr
import (
"fmt"
"github.com/gotk3/gotk3/gtk"
)
// GetBuilder retrieves a named builder.
func GetBuilder(builderName string) (*gtk.Builder, error) {
builder, err := gtk.BuilderNewFromFile(builderName)
if err != nil {
return nil, fmt.Errorf("GetBuilder: unable to BuilderNewFromFile: %s", err)
}
return builder, nil
}
// GetAboutDialog retrieves a named about dialog.
func GetAboutDialog(builder *gtk.Builder, widgetName string) (*gtk.AboutDialog, error) {
obj, err := builder.GetObject(widgetName)
if err != nil {
return nil, fmt.Errorf("GetAboutDialog: unable to GetObject: '%s'", widgetName)
}
dialog, ok := obj.(*gtk.AboutDialog)
if !ok {
return nil, fmt.Errorf("GetAboutDialog: unable to GetObject: '%s'", widgetName)
}
return dialog, nil
}
// GetDialog retrieves a named dialog.
func GetDialog(builder *gtk.Builder, widgetName string) (*gtk.Dialog, error) {
obj, err := builder.GetObject(widgetName)
if err != nil {
return nil, fmt.Errorf("GetDialog: unable to GetObject: '%s'", widgetName)
}
dialog, ok := obj.(*gtk.Dialog)
if !ok {
return nil, fmt.Errorf("GetDialog: unable to GetObject: '%s'", widgetName)
}
return dialog, nil
}
// GetEntry retrieves a named entry.
func GetEntry(builder *gtk.Builder, widgetName string) (*gtk.Entry, error) {
obj, err := builder.GetObject(widgetName)
if err != nil {
return nil, fmt.Errorf("GetEntry: unable to GetObject: '%s'", widgetName)
}
entry, ok := obj.(*gtk.Entry)
if !ok {
return nil, fmt.Errorf("GetEntry: unable to GetObject: '%s'", widgetName)
}
return entry, nil
}
// GetBox retrieves a named box.
func GetBox(builder *gtk.Builder, widgetName string) (*gtk.Box, error) {
obj, err := builder.GetObject(widgetName)
if err != nil {
return nil, fmt.Errorf("GetBox: unable to GetObject: '%s'", widgetName)
}
box, ok := obj.(*gtk.Box)
if !ok {
return nil, fmt.Errorf("GetBox: unable to GetObject: '%s'", widgetName)
}
return box, nil
}
// GetSpinner retrieves a named spinner.
func GetSpinner(builder *gtk.Builder, widgetName string) (*gtk.Spinner, error) {
obj, err := builder.GetObject(widgetName)
if err != nil {
return nil, fmt.Errorf("GetSpinner: unable to GetObject: '%s'", widgetName)
}
spinner, ok := obj.(*gtk.Spinner)
if !ok {
return nil, fmt.Errorf("GetSpinner: unable to GetObject: '%s'", widgetName)
}
return spinner, nil
}
// GetLabel retrieves a named label.
func GetLabel(builder *gtk.Builder, widgetName string) (*gtk.Label, error) {
obj, err := builder.GetObject(widgetName)
if err != nil {
return nil, fmt.Errorf("GetLabel: unable to GetObject: '%s'", widgetName)
}
label, ok := obj.(*gtk.Label)
if !ok {
return nil, fmt.Errorf("GetLabel: unable to GetObject: '%s'", widgetName)
}
return label, nil
}
// GetWindow retrieves a named window.
func GetWindow(builder *gtk.Builder, widgetName string) (*gtk.Window, error) {
obj, err := builder.GetObject(widgetName)
if err != nil {
return nil, fmt.Errorf("GetWindow: unable to GetObject: '%s'", widgetName)
}
window, ok := obj.(*gtk.Window)
if !ok {
return nil, fmt.Errorf("GetWindow: unable to GetObject: '%s'", widgetName)
}
return window, nil
}
// GetButton retrieves a named button.
func GetButton(builder *gtk.Builder, widgetName string) (*gtk.Button, error) {
obj, err := builder.GetObject(widgetName)
if err != nil {
return nil, fmt.Errorf("GetButton: unable to GetObject: '%s'", widgetName)
}
button, ok := obj.(*gtk.Button)
if !ok {
return nil, fmt.Errorf("GetButton: unable to GetObject: '%s'", widgetName)
}
return button, nil
}
// GetSeparator retrieves a named seperator.
func GetSeparator(builder *gtk.Builder, widgetName string) (*gtk.Separator, error) {
obj, err := builder.GetObject(widgetName)
if err != nil {
return nil, fmt.Errorf("GetSeparator: unable to GetObject: '%s'", widgetName)
}
sep, ok := obj.(*gtk.Separator)
if !ok {
return nil, fmt.Errorf("GetSeparator: unable to GetObject: '%s'", widgetName)
}
return sep, nil
}
// GetHeaderBar retrieves a named header bar.
func GetHeaderBar(builder *gtk.Builder, widgetName string) (*gtk.HeaderBar, error) {
obj, err := builder.GetObject(widgetName)
if err != nil {
return nil, fmt.Errorf("GetHeaderBar: unable to GetObject: '%s'", widgetName)
}
headerBar, ok := obj.(*gtk.HeaderBar)
if !ok {
return nil, fmt.Errorf("GetHeaderBar: unable to GetObject: '%s'", widgetName)
}
return headerBar, nil
}
// GetMenu retrieves a named menu.
func GetMenu(builder *gtk.Builder, widgetName string) (*gtk.Menu, error) {
obj, err := builder.GetObject(widgetName)
if err != nil {
return nil, fmt.Errorf("GetMenu: unable to GetObject: '%s'", widgetName)
}
menu, ok := obj.(*gtk.Menu)
if !ok {
return nil, fmt.Errorf("GetMenu: unable to GetObject: '%s'", widgetName)
}
return menu, nil
}