Use an enum for window hints instead of separate functions, and add comprehensive documentation