Roku Developer Program

Developers and content creators—a complete solution for growing an audience directly.
cancel
Showing results for 
Search instead for 
Did you mean: 
OG_OTT
Level 7

roFontRegistry

Does `roFontRegistry` work with RSG?  Do I have a typo or is there a better way than below?  


     font_registry = CreateObject("roFontRegistry")
     font = font_registry.GetDefaultFont()
     fontRegistry = CreateObject("roFontRegistry")
     townFont = fontRegistry.GetDefaultFont()
     townFont.size = 80
     lineHeight = townFont.GetOneLineHeight()

///

Current Function:
005:  sub InitWidget()
006:      font_registry = CreateObject("roFontRegistry")
007:*     font = font_registry.GetDefaultFont()
008:      fontRegistry = CreateObject("roFontRegistry") 
009:      townFont = fontRegistry.GetDefaultFont()
010:      townFont.size = 80
011:      _lineHeight = townFont.GetOneLineHeight()
'Dot' Operator attempted with invalid BrightScript Component or interface reference. (runtime error &hec) in pkg:/components/widgets/LocationWidget.brs(7)
007:     font = font_registry.GetDefaultFont()

0 Kudos
2 Replies
Roku Employee
Roku Employee

Re: roFontRegistry

"OG_OTT" wrote:
Does `roFontRegistry` work with RSG?  Do I have a typo or is there a better way than below?  


It seems that you can only use roFontRegistry from the Main function or in a RSG Task node.

I don't know for myself whether you can get metrics from that that will work perfectly for RSG.

RSG has:
https://sdkdocs.roku.com/display/sdkdoc/Font

I'm not making any recommendation, but I have the impression that some people have used Label nodes along with https://sdkdocs.roku.com/display/sdkdoc ... undingRect to figure out other layout metrics.
0 Kudos
OG_OTT
Level 7

Re: roFontRegistry

Thank you.  The `BoundingRect()` idea did work for my purposes!

To future reviews of this thread, the below snippet shows setting of my primary label and I get `BoundingRect` so I can get the height to place an element just beneath it - this worked for me:  

sub init()
     InitWidget()
end sub
     
sub InitWidget()
     townLabel = m.top.findNode("TownName")
     townLabel.font.size = 80
     townLabelRect = townLabel.BoundingRect()
     
     stateLabel = m.top.findNode("StateName")
     stateLabel.font.size = 40
     stateLabel.translation = [0, townLabelRect.height+5]
end sub
0 Kudos