I am now looking into one of the last missing features in I2012 which is inserting panels into a parent panel. This feature is potentially dangerous as one might cause infinite loops.
There are a couple of strategies I figured out in my mind:
- sub-optimal: while rendering, the program keeps a count of the panel generation and if it goes past e.g. 10, it stops. The C64 engine could, however, loop forever even if I2012 does not.
- optimal: detect an infinite loop at design time and prevent the insertion. This can get a bit tricky to implement as the loop might occur as a consequence of panels nesting into each other not directly but e.g. A contains B, B contains C, and C contain A.
I need to give things a thought. BTW, I found a similar discussion here. I will see what I come up with 🙂