Closed seisatsu closed 7 years ago
FrameManager was created in f5feb5f by splitting off parts of WindowManager. Much of the drawing logic in AreaManager now also needs to be moved into FrameManager. The internal workspace and the methods for copying individual objects onto the workspace need to be coded next.
AreaManager's rendering operations have been merged into FrameManager in 34ca806e624e245d89a1d6f3835e3d7f9551f04c. Now AreaManager only calculates where to place things and then makes calls. At this point widget placement calculations should be moved into WidgetManager where they rightfully belong since the rendering code is in its own class.
Except for some touchups, FrameManager is basically complete as of c623434.
The way we assemble frames for the window is messy and done in segments in both AreaManager and WindowManager. Adding extra features like widgets requires putting code in several places. We should move all frame building into a FrameManager which understands everything about graphical frames and provides methods to cleanly insert graphics at any stage of the process on any layer of the frame. We will thank ourselves later once we're adding more complex widget handling and various graphical effects. WindowManager will only handle the placement of the viewport over the frame.
Integrating widgets into the drawing process is currently not working in the way it was intended, and fixing it within the current arrangement of the system would be daunting and raviolli.