Hello,
Thanks for the link on LSP. About GameWindow specializing sf::Window, yes it is necessary. The UI is in charge only with displaying data and handling system events (clicks, key presses), the actual job is done by a controller (class Game), when a system event occurs the GameWindow sends a message to the controller (via method) or when the Window needs to display data it asks the controller(s) for that data via messages (methods). The only two members that are questionable are the _width and _height members (that may be removed if the following setters are inline functions) since sf::Window has getWidth() and getHeight() methods, however no getters for title and style.
About the special figures, they lack the word "Builder" in their names (as specialized builders is what I had in mind). As for the Square having setters for width/height, I actually wanted to emphasize that the shape height/width setters will be overwritten (however there won't be any setters of that kind since that would be a new shape). However setters and getters for x and y are good, a shape can change it's coordinates, and a getter for type. That about covers it up.
About the name, well I haven't thought about that. Well if I can't use this name I'll dug up something similar
. Thanks for the tip by the way
And so version 1.1 is born
, thanks for the input guys!