module TerraHS.TerraLib.TeTheme where
import Foreign.C.String
import qualified Foreign.Ptr (Ptr)
import TerraHS.TerraLib.TeDatabase
import TerraHS.Algebras.Base.Object
import TerraHS.TerraLib.TeLayer
data TeTheme = TeTheme String deriving (Show)
type TeThemePtr = Foreign.Ptr.Ptr TeTheme
instance Pointer TeTheme where
new (TeTheme ln) = (newCString ln) >>= tetheme_new >>= return
delete l = error "not implemented"
loadTheme db ln = new (TeTheme ln) >>= \theme -> (tedatabase_loadTheme db theme) >>= \st ->
if st == True then return theme else do error ("theme not found")
foreign import stdcall unsafe "c_tedatabase_loadTheme" tedatabase_loadTheme :: TeDatabasePtr -> TeThemePtr -> Prelude.IO Bool
foreign import stdcall unsafe "c_tetheme_new" tetheme_new :: CString -> Prelude.IO TeThemePtr
foreign import stdcall unsafe "c_tetheme_layer" tetheme_layer :: TeThemePtr -> Prelude.IO TeLayerPtr