I didn't do a lot on the program today, but this time not because I didn't have time, but because I don't know how to continue with an issue. Up to now I have stored a point between (0, 0) and (1, 1) for the operators and scaled the coordinates with the available space. But that is useless, resizing the window lets everything move closer together or futher apart, but the elements stay the same size, so that won't work (I have machines I do modeling on with quite different sized displays).
So I thought about it today and have not yet come up with a good way to do it. I think it makes sense to store the position of the operators in the editor in pixel coordinates. I also think, that the program should keep track of the bounding box so I can request enough space from the UI system. I don't want to add a function to calculate the bounding box, because it would do a lot of redundant operations the draw function already does. So I guess it is best to let the draw function update the bounding box and check after drawing if I need to request more space. I will try to implement that tomorrow and see, if I also need to store the bounding box. I think it will also make sense to always make the bounding box a bit bigger so I have space around the diagram as it is probably hard to interact with the elements if they are right at the window boundary.