#include #include #include #include RubberControl::~RubberControl() { } void RubberControl::calcRatios(GUIWindow &parentWindow) { Rect clientRect; Rect controlRect; Point screenPoint; if(!controlWindow().isValid()||!parentWindow.isValid())return; parentWindow.clientRect(clientRect); controlWindow().clientRect(controlRect); parentWindow.clientToScreen(clientRect); controlWindow().clientToScreen(controlRect); mRatios[Left]=((float)(controlRect.left()-clientRect.left())/(float)parentWindow.width()); mRatios[Top]=((float)(controlRect.top()-clientRect.top())/(float)parentWindow.height()); mRatios[Right]=((float)(clientRect.right()-controlRect.right())/(float)parentWindow.width()); mRatios[Bottom]=((float)(clientRect.bottom()-controlRect.bottom())/(float)parentWindow.height()); return; } void RubberControl::moveControl(GUIWindow &/*parentWindow*/,int width,int height) { Rect controlRect(mRatios[Left]*width,mRatios[Top]*height,width-(mRatios[Right]*width),height-(mRatios[Bottom]*height)); controlWindow().moveWindow(controlRect); }