MCPcopy Create free account
hub / github.com/DISTRHO/Cardinal / onDragMove

Method onDragMove

plugins/Cardinal/src/TextEditor.cpp:289–316  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

287 }
288
289 void onDragMove(const DragMoveEvent& e) override
290 {
291 static const float kMinWidth = 10 * RACK_GRID_WIDTH;
292
293 Vec newDragPos = APP->scene->rack->getMousePos();
294 float deltaX = newDragPos.x - dragPos.x;
295
296 Rect newBox = originalBox;
297 Rect oldBox = widget->box;
298 if (right) {
299 newBox.size.x += deltaX;
300 newBox.size.x = std::fmax(newBox.size.x, kMinWidth);
301 newBox.size.x = std::round(newBox.size.x / RACK_GRID_WIDTH) * RACK_GRID_WIDTH;
302 }
303 else {
304 newBox.size.x -= deltaX;
305 newBox.size.x = std::fmax(newBox.size.x, kMinWidth);
306 newBox.size.x = std::round(newBox.size.x / RACK_GRID_WIDTH) * RACK_GRID_WIDTH;
307 newBox.pos.x = originalBox.pos.x + originalBox.size.x - newBox.size.x;
308 }
309
310 // Set box and test whether it's valid
311 widget->box = newBox;
312 if (!APP->scene->rack->requestModulePos(widget, newBox.pos)) {
313 widget->box = oldBox;
314 }
315 module->width = std::round(widget->box.size.x / RACK_GRID_WIDTH);
316 }
317
318 void draw(const DrawArgs& args) override
319 {

Callers

nothing calls this directly

Calls 1

getMousePosMethod · 0.45

Tested by

no test coverage detected