packages feed

titan-1.0.2: src/Hails/Graphics/UI/Gtk/Builder.hs

module Hails.Graphics.UI.Gtk.Builder where

import Graphics.UI.Gtk

-- | Returns a builder from which the objects in this part of the interface
-- can be accessed.
loadDefaultInterface :: (String -> IO String) -> IO Builder
loadDefaultInterface getDataFileName =
  loadInterface =<< getDataFileName "Interface.glade"

-- | Returns a builder from which the objects in this part of the interface
-- can be accessed.
loadInterface :: String -> IO Builder
loadInterface builderPath = do
  builder <- builderNew
  builderAddFromFile builder builderPath
  return builder
  
-- | Returns an element from a builder
fromBuilder :: (GObjectClass cls) =>
                (GObject -> cls) -> String -> Builder -> IO cls
fromBuilder f s b = builderGetObject b f s