72 lines
1.8 KiB
Plaintext
72 lines
1.8 KiB
Plaintext
sub init()
|
|
m.title = m.top.findNode("title")
|
|
m.title.translation = [2, 0]
|
|
|
|
m.poster = m.top.findNode("poster")
|
|
m.poster.translation = [2, 0]
|
|
|
|
m.backdrop = m.top.findNode("backdrop")
|
|
|
|
m.backdrop.color = "#404040FF"
|
|
|
|
updateSize()
|
|
end sub
|
|
|
|
sub updateSize()
|
|
m.title = m.top.findNode("title")
|
|
m.poster = m.top.findNode("poster")
|
|
m.backdrop = m.top.findNode("backdrop")
|
|
|
|
image = invalid
|
|
if m.top.itemContent <> invalid and m.top.itemContent.image <> invalid
|
|
image = m.top.itemContent.image
|
|
end if
|
|
|
|
if image = invalid
|
|
m.backdrop.visible = true
|
|
else
|
|
m.backdrop.visible = false
|
|
end if
|
|
|
|
' TODO - abstract this in case the parent doesnt have itemSize
|
|
maxSize = m.top.getParent().itemSize
|
|
|
|
' Always reserve the bottom for the Poster Title
|
|
m.title.wrap = true
|
|
m.title.maxLines = 2
|
|
m.title.width = maxSize[0]
|
|
m.title.height = 80
|
|
m.title.translation = [0, int(maxSize[1]) - m.title.height]
|
|
|
|
ratio = 1.5
|
|
if image <> invalid and image.width <> 0 and image.height <> 0
|
|
ratio = image.height / image.width
|
|
end if
|
|
|
|
m.poster.width = int(maxSize[0]) - 4
|
|
m.poster.height = m.poster.width * ratio
|
|
|
|
posterVertSpace = int(maxSize[1]) - m.title.height
|
|
|
|
if m.poster.height > posterVertSpace
|
|
' Do a thing to shrink the image if it is too tall
|
|
end if
|
|
|
|
m.poster.translation = [2, (posterVertSpace - m.poster.height) / 2]
|
|
|
|
m.backdrop.width = m.poster.width
|
|
m.backdrop.height = m.poster.height
|
|
|
|
end sub
|
|
|
|
function itemContentChanged() as void
|
|
|
|
m.title = m.top.findNode("title")
|
|
m.poster = m.top.findNode("poster")
|
|
itemData = m.top.itemContent
|
|
|
|
m.title.text = itemData.title
|
|
m.poster.uri = itemData.posterUrl
|
|
|
|
updateSize()
|
|
end function |