Try this and compare it to the task pad view in Enterprise Manager.
SELECT AA.name, AA.filename, -- AA.dbSize,
BB.name, BB.filename, --BB.dbSize,
(AA.dbSize) * CC.low / 1048576 AS DBSize, -- This is the total database size.
(AA.dbSize) * CC.low / 1048576 - AA.AvailableSpaceInMB AS DBUsedSpace,
AA.AvailableSpaceInMB as DBAvailableSpaceInMB,
(BB.dbSize) * CC.low / 1048576 AS LogSize,
(BB.dbSize) * CC.low / 1048576 - BB.AvailableSpaceInMB AS LogUsedSpace,
BB.AvailableSpaceInMB as LogAvailableSpaceInMB,
(AA.dbSize + BB.dbSize) * CC.low / 1048576 AS TotalSize,
AA.AvailableSpaceInMB + BB.AvailableSpaceInMB as TotalAvailableSpaceInMB
FROM
(select name, filename, convert(dec(15),size) as dbSize,
size/128.0 -CAST(FILEPROPERTY(name, 'SpaceUsed' )AS int)/128.0 AS AvailableSpaceInMB
from dbo.sysfiles
where (status & 64 = 0)) AA CROSS JOIN
(select name, filename, convert(dec(15),size) as dbSize,
size/128.0 -CAST(FILEPROPERTY(name, 'SpaceUsed' )AS int)/128.0 AS AvailableSpaceInMB
from dbo.sysfiles
where (status & 64 <> 0)) BB CROSS JOIN
(select low
from master.dbo.spt_values
where number = 1
and type = 'E') CC