Roku Developer Program

Join our online forum to talk to Roku developers and fellow channel creators. Ask questions, share tips with the community, and find helpful resources.
Showing results for 
Show  only  | Search instead for 
Did you mean: 


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
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:

I'm not making any recommendation, but I have the impression that some people have used Label nodes along with ... undingRect to figure out other layout metrics.
0 Kudos

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()
end sub
sub InitWidget()
     townLabel ="TownName")
     townLabel.font.size = 80
     townLabelRect = townLabel.BoundingRect()
     stateLabel ="StateName")
     stateLabel.font.size = 40
     stateLabel.translation = [0, townLabelRect.height+5]
end sub
0 Kudos
Need Assistance?
Welcome to the Roku Community! Feel free to search our Community for answers or post your question to get help.

Become a Roku Streaming Expert!

Share your expertise, help fellow streamers, and unlock exclusive rewards as part of the Roku Community. Learn more.