Floating point mouse positions

- fixed some bugs with child widgets outside of the parent widget
- mouse positions changed to doubles, no more casting everywhere
- moved internal variables inside one struct