As an example in Assertion.cpp shows, sometimes we might want to create a popup window through Window Manager on OS. While on Windows it is as easy as calling a single WinAPI call (MessageBox), on Linux you need to do everything manually. Moreover, Windows' MessageBox might be too simple for our needs, so even using it won't be enough.
MessageWindow's interface does not have to be very user friendly or prone to errors, we will use it as an internal mechanism in Engine to ex. notify about failed assertions, crashes and other unexpected behavior. In other words, we assume that end user won't need to access it.
As an example in Assertion.cpp shows, sometimes we might want to create a popup window through Window Manager on OS. While on Windows it is as easy as calling a single WinAPI call (MessageBox), on Linux you need to do everything manually. Moreover, Windows' MessageBox might be too simple for our needs, so even using it won't be enough.
MessageWindow's interface does not have to be very user friendly or prone to errors, we will use it as an internal mechanism in Engine to ex. notify about failed assertions, crashes and other unexpected behavior. In other words, we assume that end user won't need to access it.