Andrew Belt
b138166e0e
Allow plugins to add menu items to port context menu with PortWidget::appendContextMenu().
2 years ago
Andrew Belt
950d73444e
Add menu item to port menu to set color of cables.
3 years ago
Andrew Belt
6c81ba466f
Add RackWidget::getCompleteCablesOnPort(). Use it in PortWidget and ModuleWidget to prevent crashes when incomplete cables exist.
3 years ago
Andrew Belt
f96cf2dd71
Reverse order of cable names in PortTooltip.
3 years ago
Andrew Belt
3ec47bf575
Make RackWidget::incompleteCable internal with getter.
3 years ago
Andrew Belt
00bd49e2b7
Use "From/To" in cable tooltip depending on port type.
3 years ago
Andrew Belt
d64a8da846
Add PortCloneCableItem implementation.
3 years ago
Andrew Belt
19f806dbad
Implement PortCreateCableItem and PortCableItem.
3 years ago
Andrew Belt
947170198f
Add port name to PortCableItem in port context menu.
3 years ago
Andrew Belt
d09fbf84f0
Add cable menu item and create cable menu item to port context menu (WIP).
3 years ago
Andrew Belt
08e1f9a954
Add port name and "Duplicate/create new cable" to port context menu.
3 years ago
Andrew Belt
90fe39bffb
Add shift-click to delete top cable on port.
3 years ago
Andrew Belt
567c827092
Add menu to PortWidget.
3 years ago
Andrew Belt
df89de7847
Move Svg to window:: namespace.
3 years ago
Andrew Belt
f25a17075c
Add window:: namespace.
3 years ago
Andrew Belt
aaf98bb16d
Implement RackWidget::copyClipboardSelectedModules(). Clean up RackWidget API.
3 years ago
Andrew Belt
99adc5c0fe
Add PlugWidget. Implement appearance of cables and plugs from Pyer. Add layer variable to Widget::DrawArgs. Add color::isEqual().
3 years ago
Andrew Belt
4fd20a17f5
Darken incompatible PortWidgets when creating cables, instead of making them translucent. Make darkness dependent on room brightness.
3 years ago
Andrew Belt
2f0bada0a5
Fix math::normalizeZero() which had no effect due to float optimization. Normalize zero in PortTooltip.
3 years ago
Andrew Belt
a2904149c8
Rename window.hpp/cpp to Window.hpp/cpp since it's a class.
3 years ago
Andrew Belt
d7e1dae42c
Use PlugPort SVG and MediumLight from Component Library for plug (WIP).
3 years ago
Andrew Belt
f0446ab4c6
Move PortWidget::plugLight to internal.
3 years ago
Andrew Belt
75d5d8b5de
Fix handle position of Module-less ModuleWidgets. Move a few member variables to Internal struct.
3 years ago
Andrew Belt
5484126aaa
Change `event::Foo` to `FooEvent`.
4 years ago
Andrew Belt
6e35afb053
Add engine::LightInfo and Module::configLight() helper for configuring the LightInfo. Add LightTooltip for LightWidgets.
4 years ago
Andrew Belt
9ea49664bb
Copy cable color when cloning cables with Ctrl+click.
5 years ago
Andrew Belt
ca9231e1b3
Rename App to Context and app.hpp to context.hpp. The APP macro is still valid.
5 years ago
Andrew Belt
e875096728
Change PortTooltip input/output labels.
5 years ago
Andrew Belt
05df47fbd1
Add Internal struct to ModuleWidget.
5 years ago
Andrew Belt
adc3f681c3
Rearrange text in PortTooltip
5 years ago
Andrew Belt
ae19e33774
Make PortInfo a virtual class.
5 years ago
Andrew Belt
ef89a96c87
Change ParamQuantity/PortInfo label to name.
5 years ago
Andrew Belt
4a462fadc5
Add "Connected to" to PortTooltip.
5 years ago
Andrew Belt
0dbce1683d
Work on PortTooltips.
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
ff2ac805e2
Fix #1510
5 years ago
Andrew Belt
dca30e2b53
Auto-format code with astyle.
5 years ago
Andrew Belt
696939069d
Use <> instead of "" for include directive.
6 years ago
Andrew Belt
5e0378cb5a
Clean up app namespace.
6 years ago
Andrew Belt
2c9644d80d
Rename WINDOW_ macros to RACK_. Require rack:: namespace for APP macro.
6 years ago
Andrew Belt
faa96068af
Remove useless `e.consume(this)` from events that no longer need it. Fix bugs introduced by change of event system behavior.
6 years ago
Andrew Belt
a5d7a0b75b
Add middle-click-drag to ScrollWidget. Fix numerous bugs introduced by event system changes.
6 years ago
Andrew Belt
9d609fee2b
Rename `widget::*Event` to `event::*`.
6 years ago
Andrew Belt
13b3fabd8b
Replace `Event::consumed` with `target` and `propogating`.
6 years ago
Andrew Belt
2210287039
Move handling of RackWidget from Scene to RackScrollWidget.
6 years ago
Andrew Belt
b84e2f57fa
Merge event:: namespace with widget:: namespace. Rename event::* to widget::*Event.
6 years ago
Andrew Belt
11544f25b3
Update rack0.hpp header
6 years ago
Andrew Belt
d6f5a84178
Draw FramebufferWidgets during step() instead of draw() so we can use the same NanoVG context.
6 years ago
Andrew Belt
a509fab1c1
Move and rename widget::DrawContext to widget::Widget::DrawArgs. Rename Module::ProcessContext to Module::ProcessArgs.
6 years ago