module TerraHS.TerraLib.TeTheme where import Foreign.C.String import qualified Foreign.Ptr (Ptr) import TerraHS.TerraLib.TeDatabase import TerraHS.Algebras.Base.Object -- deveria chamar cast import TerraHS.TerraLib.TeLayer -- | The type @TeTheme@ represents data TeTheme = TeTheme String deriving (Show) -- | The type @TeThemePtr@ is a pointer to @TeTheme@ type TeThemePtr = Foreign.Ptr.Ptr TeTheme instance Pointer TeTheme where new (TeTheme ln) = (newCString ln) >>= tetheme_new >>= return --new (TeLayer ln) = (newCString ln) >>= h_telayer_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") --- c 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