| 205 | } |
| 206 | |
| 207 | void ToolFrame::OnMotion( wxMouseEvent & event ) |
| 208 | { |
| 209 | // Don't do anything if we're docked or not resizeable |
| 210 | if( !mBar || mBar->IsDocked() || !mBar->IsResizable() ) |
| 211 | { |
| 212 | return; |
| 213 | } |
| 214 | |
| 215 | // Retrieve the mouse position |
| 216 | wxPoint pos = ClientToScreen( event.GetPosition() ); |
| 217 | if( HasCapture() && event.Dragging() ) |
| 218 | { |
| 219 | wxRect rect = GetRect(); |
| 220 | |
| 221 | rect.SetBottomRight( pos ); |
| 222 | |
| 223 | // Keep it within max size, if specified |
| 224 | wxSize maxsz = mBar->GetMaxSize(); |
| 225 | if (maxsz != wxDefaultSize) |
| 226 | { |
| 227 | if (maxsz.x != wxDefaultCoord && rect.width > maxsz.x) |
| 228 | { |
| 229 | rect.width = maxsz.x; |
| 230 | } |
| 231 | if (maxsz.y != wxDefaultCoord && rect.height > maxsz.y) |
| 232 | { |
| 233 | rect.height = maxsz.y; |
| 234 | } |
| 235 | } |
| 236 | |
| 237 | if( rect.width < mMinSize.x ) |
| 238 | { |
| 239 | rect.width = mMinSize.x; |
| 240 | } |
| 241 | |
| 242 | if( rect.height < mMinSize.y ) |
| 243 | { |
| 244 | rect.height = mMinSize.y; |
| 245 | } |
| 246 | |
| 247 | Resize( rect.GetSize() ); |
| 248 | } |
| 249 | else if( HasCapture() && event.LeftUp() ) |
| 250 | { |
| 251 | ReleaseMouse(); |
| 252 | } |
| 253 | else if( !HasCapture() ) |
| 254 | { |
| 255 | wxRect rect = GetRect(); |
| 256 | wxRect r; |
| 257 | |
| 258 | r.x = rect.GetRight() - sizerW - 2, |
| 259 | r.y = rect.GetBottom() - sizerW - 2; |
| 260 | r.width = sizerW + 2; |
| 261 | r.height = sizerW + 2; |
| 262 | |
| 263 | // Is left click within resize grabber? |
| 264 | if( r.Contains( pos ) && !event.Leaving() ) |
nothing calls this directly
no test coverage detected