Spent a few hours too many working on this one over the two days. I basically re-wrote about 20% of the code to make it run more smoothly. I originally thought of it being like an ordinary widget but allowing the various text items to be configured and positioned on screen make it behave more like a cut-down version of a canvas. Probably an overkill, but, there you go! There's just a little more work to do on managing a 'blank screen' and rendering off-screen and then its pretty well finished.