Andrew Belt
357bd847bf
Rename PRIVATE macro to INTERNAL.
3 years ago
Andrew Belt
50ec209578
Only wait for mouse to move before dragging module if it was just created with the module browser.
3 years ago
Andrew Belt
fd4479f992
Use a ~15px dragging threshold when dragging a Module from the Module Browser, so that clicking it makes it stay in the last right-clicked position. Make event framework trigger DragHover before DragMove.
3 years ago
Andrew Belt
5bbd32ccac
When Module Browser creates a module, set the ModuleWidget's dragPos to its center, so dragging is more predictable.
3 years ago
Andrew Belt
5e4124f66a
Rename bypassed to bypass everywhere.
4 years ago
Andrew Belt
c9a08c7b24
Add CableWidget::releaseCable() and ModuleWidget::releaseModule().
4 years ago
Andrew Belt
73c2ecaea2
Remove ModuleWidget::params, inputs, and outputs arrays. Instead, search recursively for those widgets.
4 years ago
Andrew Belt
8423ce87aa
Add template preset for modules, which are loaded when created from the Module Browser.
4 years ago
Andrew Belt
15ea154602
Remove Dark mode.
4 years ago
Andrew Belt
f2ec0af4b0
Restructure SvgPanel to handle dark mode.
4 years ago
Andrew Belt
c33dc3c842
Rename module disabling to bypassing.
5 years ago
Andrew Belt
05df47fbd1
Add Internal struct to ModuleWidget.
5 years ago
Andrew Belt
99b17727ab
WIP:
- Make ParamWidget hold module/paramId instead of paramQuantity.
- Add configInput/configOutput.
- Add engine::PortInfo.
- Avoid calling particular events when cursor is locked.
- Add PortTooltip.
5 years ago
Andrew Belt
e4b6056ded
Massive WIP v2 overhaul:
- Add Engine::fromJson which can be called without the GUI at all.
- Make RackWidget::fromJson attach itself to existing Engine state. However, once attached, they own their Engine objects (Module, Cable).
- Remove Engine thread. Now Engine must be stepped by other threads, such as the audio thread. This is fantastic because there is no longer a mutex lock every audio buffer.
- Add concept of the "primary module", which is allowed to call Engine::step().
- Add many Module events.
5 years ago
Andrew Belt
dca30e2b53
Auto-format code with astyle.
5 years ago
Andrew Belt
696939069d
Use <> instead of "" for include directive.
5 years ago
Andrew Belt
212404c664
Add Widget::addChildBottom(). Change ModuleWidget::setPanel behavior. Improve event docstrings. Temporarily disable glibc 2.23 header on Linux.
5 years ago
Andrew Belt
5e0378cb5a
Clean up app namespace.
5 years ago
Andrew Belt
1a0b3c657d
Add RACK_HELD key action to SelectKey and HoverKey. Consume arrow keys in RackScrollWidget and delete/backspace in ModuleWidget using HoverKey RACK_HELD instead of Hover.
5 years ago
Andrew Belt
9d609fee2b
Rename `widget::*Event` to `event::*`.
5 years ago
Andrew Belt
4d36193cf2
Fix ModuleWidget::getParam(), getInput(), and getOutput() returning incorrect object.
5 years ago
Andrew Belt
b84e2f57fa
Merge event:: namespace with widget:: namespace. Rename event::* to widget::*Event.
5 years ago
Andrew Belt
a509fab1c1
Move and rename widget::DrawContext to widget::Widget::DrawArgs. Rename Module::ProcessContext to Module::ProcessArgs.
5 years ago
Andrew Belt
13dadef857
ModuleBrowser WIP. Add Widget::show/hide().
5 years ago
Andrew Belt
52151a709d
Add various API documentation
5 years ago
Andrew Belt
822c525d6b
Change "SVG" to "Svg" for correct capitalization style. Create Window::loadSvg, loadImage, and loadFont.
5 years ago
Andrew Belt
64602576b0
Create `engine::` namespace
5 years ago
Andrew Belt
c60339bcd3
Create `plugin::` namespace
5 years ago
Andrew Belt
8a5a806425
Add app::, ui::, and widget:: namespaces.
5 years ago
Andrew Belt
6d1142b449
Add new Widget::draw() method. Deprecate old method.
5 years ago
Andrew Belt
c6f8153d74
Use various other history actions when interacting with the rack
5 years ago
Andrew Belt
94c33c5e77
Use cable history actions when interacting with cables
5 years ago
Andrew Belt
a77a04ad22
Move ModuleWidget cloning code from RackWidget to ModuleWidget. Make ModuleWidget position based on mouse position.
5 years ago
Andrew Belt
f73dae1384
Refactor ParamWidget and ModuleWidget. Add context menu to ParamWidget on right-click.
5 years ago
Andrew Belt
ede6295516
Set zoom every few frames. Add ModuleWidget::setModule(). Add Port::set/getChannels().
5 years ago
Andrew Belt
19d9fdd041
Add ModuleBypass. Serialize Module::bypass.
5 years ago
Andrew Belt
c59b9ba67d
Add history actions: ModuleAdd, ModuleRemove, ModuleMove, ParamChange, WireAdd, WireRemove, WireMove
5 years ago
Andrew Belt
de2b5a92af
Clean up event documentation, change event::PathDrop::path type to const reference, make event::Zoom recurse regardless of being consumed
5 years ago
Andrew Belt
69bd0575b5
Add Module bypass to UI and engine
5 years ago
Andrew Belt
e845373ee9
Make event callbacks use const
5 years ago
Andrew Belt
7c04ff0abf
Rename Port to PortWidget
5 years ago
Andrew Belt
c999df235d
Clean up ModuleWidget
5 years ago
Andrew Belt
20b78190c1
Put math in namespace
5 years ago
Andrew Belt
c31b8f0ba2
Split plugin.hpp to folder of headers, wrap plugin state in new PluginManager class
5 years ago
Andrew Belt
95f6016e7a
Remove app.hpp/cpp, fix headers of app headers, rename RackScene to Scene
5 years ago
Andrew Belt
316518a794
Wrap engine state into class Engine
5 years ago
Andrew Belt
73a53f4536
Rename Module::to/fromJson to dataTo/dataFromJson, move ModuleWidget::to/fromJson functionality to new Module::to/fromJson
5 years ago
Andrew Belt
f64ea2e181
Large architectural changes. Created Quantity class.
5 years ago
Andrew Belt
92951206b6
Rename WidgetState to event::Context, move color.hpp implementations to source
6 years ago
Andrew Belt
499ceb024f
Remove math namespace
6 years ago