// 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 }