Gtk2hsGenerics-0.1: Graphics/UI/Gtk/Generics/ListStore.hs
module Graphics.UI.Gtk.Generics.ListStore where
import Graphics.UI.Gtk
import Control.Monad( forM_ )
{-
Used for repopulating a ListStore with new elements.
NB: All previous elements will be lost.
-}
listStoreRepopulate :: ListStore a -> [a] -> IO ( )
listStoreRepopulate store elements = do
listStoreClear store
forM_ elements $ \row -> listStoreAppend store row
{-
Convenience function for getting a single selection from a
ListStore using a TreePath. Gets the element from the ListStore
corresponding to the first index in the TreePath.
-}
listStoreGetValueAtPath :: TreePath -> ListStore a -> IO a
listStoreGetValueAtPath (x:_) store = listStoreGetValue store x
{-
Convenience function for prepending a list to an existing
ListStore.
-}
listStorePrependList :: ListStore a -> [a] -> IO ( )
listStorePrependList store list = ( listStoreToList store >>= (\l ->
listStoreRepopulate store ( list ++ l ) ) )
{-
Convenience function for appending a list to an existing
ListStore.
-}
listStoreAppendList :: ListStore a -> [a] -> IO ( )
listStoreAppendList store list = ( listStoreToList store >>= (\l ->
listStoreRepopulate store ( l ++ list ) ) )