183 lines
4.8 KiB
Go
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
|
|
}
|