MCPcopy Create free account
hub / github.com/audacity/audacity / OnMotion

Method OnMotion

src/toolbars/ToolManager.cpp:207–279  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

205}
206
207void 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() )

Callers

nothing calls this directly

Calls 6

IsResizableMethod · 0.80
GetRightMethod · 0.80
IsDockedMethod · 0.45
GetMaxSizeMethod · 0.45
GetSizeMethod · 0.45
ContainsMethod · 0.45

Tested by

no test coverage detected