Robbert van der Helm
e184e6d8a6
Consome scrolling events
...
This sort of fixes using these in ScrollViews
2022-11-11 03:15:05 +01:00
Robbert van der Helm
fd85155fbc
Add scrolling support to ParamButton
2022-11-11 03:15:05 +01:00
Robbert van der Helm
3a064ae705
Add scrolling support to ParamSlider
2022-11-11 03:15:05 +01:00
Robbert van der Helm
bf0f4d56fe
Allow overriding ParamSlider display value
2022-11-11 03:15:05 +01:00
Robbert van der Helm
1c3ac492b0
Rearrange ParamSlider fields
2022-11-11 03:15:05 +01:00
Robbert van der Helm
677f21005d
Break ParamSlider up into functions
2022-11-11 03:15:05 +01:00
Robbert van der Helm
b2da26ecd7
Add prefix to plain_value() and normalized_value()
...
To make it clearer that these functions include monophonic modulation.
When creating GUI widgets, you should be using the unmodulated variants.
2022-11-11 03:15:05 +01:00
Robbert van der Helm
3a22b12d8f
Prevent rustfmt from breaking
...
It didn't like the comment in the middle of a pattern.
2022-11-11 03:15:05 +01:00
Robbert van der Helm
a73f76fbcf
Simplify ParamButton
2022-11-11 03:15:05 +01:00
Robbert van der Helm
14cb1cb679
Move Vizia view param wrangling to helper struct
...
This cleans up the main widget's code a lot. We can move some more
behavior to this helper to reduce duplication.
2022-11-11 03:15:05 +01:00
Robbert van der Helm
f7230b9f43
Add more side padding in ParamButton
2022-11-11 03:15:05 +01:00
Robbert van der Helm
d7f1f1e85f
Add param button styling
2022-11-11 03:15:05 +01:00
Robbert van der Helm
52130373a3
Simplify param button checked state
2022-11-11 03:15:05 +01:00
Robbert van der Helm
3f0922b5c0
Add special styling for bypass buttons
2022-11-11 03:15:05 +01:00
Robbert van der Helm
7d4351e4fa
Add a parameter button widget
...
Useful for toggling boolean parameters.
2022-11-11 03:15:05 +01:00
Robbert van der Helm
1df1a646a0
Add more documentation for disabled vizia fonts
2022-11-06 14:09:13 +01:00
Robbert van der Helm
c6a2be41f4
Make registering Vizia's default fonts optional
2022-11-06 14:05:13 +01:00
Robbert van der Helm
6f7780bdeb
Don't register any fonts by default for vizia
...
These now need to be registered individually by the plugin. This saves
on binary size.
2022-11-06 14:05:12 +01:00
Robbert van der Helm
89c2b1f84e
Replace create_vizia_editor_without_theme w/ enum
...
This involves a small breaking change. You can now also completely
disable all of Vizia's theming.
2022-11-06 14:04:55 +01:00
Robbert van der Helm
e8002730a0
Fix clippy lints
2022-11-05 14:19:47 +01:00
Robbert van der Helm
821bb90194
Update vizia, cpal, and other dependencies
...
Vizia wouldn't compile anymore because of mixed create versions in
femtovg, so the fork had to be updated. cpal had a similar thing with
nix and alsa.
2022-10-23 22:32:47 +02:00
Robbert van der Helm
375262aaa3
Also drop Sync requirement for editor handles
2022-10-20 14:41:53 +02:00
Robbert van der Helm
bd295b7380
Move nih_plug::param to nih_plug::params
2022-10-20 12:26:12 +02:00
Robbert van der Helm
e1269d07b1
Fix references in docs
2022-10-20 12:21:24 +02:00
Robbert van der Helm
2a0ed0c5ec
Move PersistentField and helpers to dedicated mod
...
As mentioned in the previous commit's breaking changes entry.
2022-10-20 12:11:04 +02:00
Robbert van der Helm
fb71d0fcce
Move the Params trait out of params::internals
...
This makes much more sense, since this trait is a cornerstone of
NIH-plug.
2022-10-20 12:10:35 +02:00
Robbert van der Helm
3ba62c4aab
Treat triple clicks in Vizia ParamSlider as click
2022-10-08 15:52:36 +02:00
Robbert van der Helm
fc55a519fa
Consume vizia ParamSlider events as appropriate
2022-10-08 15:48:18 +02:00
Robbert van der Helm
33d956a96b
Update Vizia
2022-10-08 15:21:01 +02:00
Robbert van der Helm
ca22806f8c
Fix double click handling after Vizia update
2022-09-22 20:07:04 +02:00
Robbert van der Helm
85543e1668
Update Vizia
2022-09-22 19:53:21 +02:00
Robbert van der Helm
21078bcae0
Fix Vizia resize handle for HiDPI windows
2022-09-22 19:48:08 +02:00
George Atkinson
ec79bb36be
Fix some spelling errors
2022-09-21 17:32:24 +01:00
George Atkinson
eb33a55fcc
Move ParamSliderInternal variables to ParamSlider
2022-09-21 17:30:02 +01:00
Robbert van der Helm
7b02217ad4
Map from the Params object in GenericUi
...
Otherwise reactivity doesn't work.
2022-07-24 15:15:47 +02:00
Robbert van der Helm
8ae93cc6ab
Remove Copy bound on ParamSlider
2022-07-24 15:15:47 +02:00
Robbert van der Helm
f812374ad0
Make it easier to reuse generic UI widget drawing
2022-07-24 15:15:47 +02:00
Robbert van der Helm
2fbf4ca00d
Remove Copy requirement from Vizia generic UI
...
This now uses a dummy lens to map to the parameter.
2022-07-24 15:15:47 +02:00
Robbert van der Helm
70f50018ad
Use regular slides for >3 step parameters
2022-07-24 15:15:47 +02:00
Robbert van der Helm
ef1d56646a
Make Arc<ViziaState> persistable
...
This allows the plugin instance's size and scale to be remembered.
2022-07-13 23:16:54 +02:00
Robbert van der Helm
32ad1212f1
Silence clippy::type_complexity
...
Clippy now wants us to move any usage of the Fn* traits to a typedef.
Doing so will almost certainly not help readability.
2022-07-01 15:50:23 +02:00
Robbert van der Helm
b7bfa5f18e
Update Vizia
...
With two months of breaking changes, hooray! But everything should still
work after some bug squashing in Vizia.
2022-06-18 01:59:57 +02:00
Robbert van der Helm
56cd227543
Make the modulation visualization semi-transparent
2022-05-01 20:16:17 +02:00
Robbert van der Helm
ac28f4d7bf
Show modulation separately in VIZIA ParamSlider
2022-05-01 20:08:11 +02:00
Robbert van der Helm
ae31e416c2
Don't use baseview system scaling on Windows/Linux
...
Until the UI frameworks make it possible to get the size or scale for
the window, this would cause the window contents to be scaled
incorrectly if the host does not set a scale factor.
2022-04-27 18:33:08 +02:00
Robbert van der Helm
bb3175f68e
Return -> Returns at the start of a docstring
...
The imperative tense doesn't make any sense when the function is a mere
getter and doesn't actually perform a nontrivial task.
2022-04-26 19:39:51 +02:00
Robbert van der Helm
482c834450
Update Vizia fork
2022-04-26 14:45:06 +02:00
Robbert van der Helm
9acd312768
Parmaeters are not real, they can't hurt you
2022-04-24 19:46:07 +02:00
Robbert van der Helm
9ab07cf4eb
Update Vizia
...
Text sizes are still broken.
2022-04-24 18:12:06 +02:00
Robbert van der Helm
c02c23cb7f
Use root properties instead of the * selector
...
This works around https://github.com/vizia/vizia/issues/131 , which was
the reason why the vizia update was reverted.
2022-04-20 01:02:35 +02:00
Robbert van der Helm
eb49b0962e
Revert "Revert "Update the Vizia fork""
...
This reverts commit 0fa6eab4d3
.
2022-04-20 01:01:28 +02:00
Robbert van der Helm
0fa6eab4d3
Revert "Update the Vizia fork"
...
This reverts commit f646ffcfb5
.
Text sizes are broken with the current master branch version of Vizia.
2022-04-20 00:40:21 +02:00
Robbert van der Helm
f646ffcfb5
Update the Vizia fork
2022-04-20 00:33:14 +02:00
Robbert van der Helm
44603b1a6d
Fix docs for nih_plug_vizia::assets
2022-04-11 23:00:38 +02:00
Robbert van der Helm
c3b1ded35b
Fix links in docs
2022-04-11 16:23:34 +02:00
Robbert van der Helm
5b03ae8d0e
Update vizia fork
2022-04-07 18:44:37 +02:00
Robbert van der Helm
56e9cd54c1
Pass the GuiContext to vizia editors
...
There's no clean way to expose the state save/restore functionality
through events.
2022-04-07 16:14:34 +02:00
Robbert van der Helm
083885a40c
Rework Params trait API with Arc instead of Pin
...
This is a breaking change requiring a small change to plugin
implementations.
The reason why `Pin<&dyn Params>` was used was more as a hint to
indicate that the object must last for the plugin's lifetime, but `Pin`
doesn't enforce that. It also makes the APIs a lot more awkward.
Requiring the use of `Arc` fixes the following problems:
- When storing the params object in the wrapper, the `ParamPtr`s are
guaranteed to be stable.
- This makes it possible to access the `Params` object without acquiring
a lock on the plugin, this is very important for implementing
plugin-side preset management.
- It enforces immutability on the `Params` object.
- And of course the API is much nicer without a bunch of unsafe code to
work around Pin's limitations.
2022-04-07 15:31:46 +02:00
Robbert van der Helm
af44796056
Fix clippy lints
2022-04-06 13:33:01 +02:00
Robbert van der Helm
63a087f265
Simplify resize handle hover handling
2022-03-29 18:50:34 +02:00
Robbert van der Helm
8d91020238
Fix typo in comment
2022-03-29 17:10:45 +02:00
Robbert van der Helm
7990307b58
Optimize resize handle triangle intersection
...
I guess doing these other checks doesn't really make much sense since
the triangle will always be in the same place.
2022-03-29 17:05:48 +02:00
Robbert van der Helm
7db6101aea
Only resize when clicking on the triangle part
2022-03-29 17:01:35 +02:00
Robbert van der Helm
beb66e46c3
Fix non-hover active styling for resize handle
2022-03-29 16:59:46 +02:00
Robbert van der Helm
7b9eff456c
Update for new vizia resize patch
...
This version uses a property on the context instead of events. This gets
rid of all of the problems and complexity of the previous
implementation.
2022-03-29 00:02:11 +02:00
Robbert van der Helm
b9b7903108
Add a lower limit to the GUI size scaling
2022-03-28 00:51:58 +02:00
Robbert van der Helm
772c1ecfaf
Add a resize handle widget
...
This currently only works on Linux, and it causes a random white bar to
be added to the bottom of the GUI.
2022-03-28 00:33:10 +02:00
Robbert van der Helm
a39eea1fe9
Add a way to rescale and resize the UI from VIZIA
...
With some additional VIZIA patches. This currently causes the layout to
do weird things, so it's not usable yet. On the baseview side this has
also only been implemented for Linux. Once the vizia quirks are gone we
can add a widget that you can add to your GUI to make it scaleable.
2022-03-27 23:09:47 +02:00
Robbert van der Helm
47a96ee02b
Fix broken rustdoc links
2022-03-27 03:32:45 +02:00
Robbert van der Helm
eed60f0fa4
Allow using the VIZIA integration without theming
2022-03-27 01:59:10 +01:00
Robbert van der Helm
d35276437d
Patch vizia to not require pub for lenses
2022-03-23 23:29:49 +01:00
Robbert van der Helm
144e30239e
Use ParamFlags::HIDE_IN_GENERIC_UI in generic UIs
2022-03-23 13:16:56 +01:00
Robbert van der Helm
9e3149b931
Move ParamPtr to the prelude
2022-03-23 12:46:46 +01:00
Robbert van der Helm
d97826e6a3
Apply even ParamSlider Step distribution to input
...
This remaps the input range to be the same as the displayed values since
the actual normalized number range has the numbers at the edge of the
range taking up half as much of the range as the other numbers.
2022-03-22 23:28:15 +01:00
Robbert van der Helm
5e94ec7f1d
Add an evenly distributed CurrentStep mode
2022-03-22 19:44:40 +01:00
Robbert van der Helm
ee3f4e0b37
Fix CurrentStep ParamSlider for non-booleans
...
The width was incorrect.
2022-03-22 19:07:39 +01:00
Robbert van der Helm
e48a0d5eb8
Actually only use CurrentStepLabeled for booleans
...
The number of steps is of course the number of possible values minus
one.
2022-03-22 18:56:05 +01:00
Robbert van der Helm
deb9b50eab
Only use CurrentStepLabeled for boolean values
...
In the default 'smart' generic UI.
2022-03-22 18:53:56 +01:00
Robbert van der Helm
4086ff724f
Fix casing on GenericUi
2022-03-22 18:50:50 +01:00
Robbert van der Helm
83f8c43ae0
Tweak spacing for GenericUi inside of ScrollView
2022-03-22 18:49:56 +01:00
Robbert van der Helm
ff000565e5
Add ScrollView styling to make it look flatter
2022-03-22 18:31:40 +01:00
Robbert van der Helm
2e91a65f01
Rename theme.css to widgets.css
...
We'll use theme.css for overriding defaults.
2022-03-22 17:33:59 +01:00
Robbert van der Helm
10bd7f46ea
Add a generic UI widget for vizia
...
This only needs a scroll bar.
2022-03-22 17:11:20 +01:00
Robbert van der Helm
4e09491dd5
Fix active state after text entry in a ParamSlider
2022-03-22 02:08:10 +01:00
Robbert van der Helm
a2b39d9281
Offset peak meter ticks to account for minus
2022-03-22 02:02:53 +01:00
Robbert van der Helm
23add14697
Also DPI scale the PeakMeter hold position
2022-03-22 01:46:03 +01:00
Robbert van der Helm
66b8d6938a
Scale PeakMeter ticks with integer DPI scale
2022-03-22 01:39:01 +01:00
Robbert van der Helm
3273bb3a35
Remove debug prints
2022-03-22 01:25:42 +01:00
Robbert van der Helm
ccba81c382
Slightly increase vizia PeakMeter ticks font
...
So it renders a bit better, even though it shouldn't.
2022-03-22 01:02:25 +01:00
Robbert van der Helm
1241eb3db2
Add a note on DPI scaling with vizia PeakMeter
2022-03-21 23:51:44 +01:00
Robbert van der Helm
d84b456edb
Draw ticks for the vizia PeakMeter
...
They are just slightly blurry.
2022-03-21 23:45:55 +01:00
Robbert van der Helm
b8ff936b21
Add part of a simple peak meter widget for vizia
2022-03-21 22:28:54 +01:00
Robbert van der Helm
d83f55728a
Mention vizia ParamSlider set_style() method
2022-03-21 18:36:41 +01:00
Robbert van der Helm
933a54053c
Add more styling for the ParamSlider textbox
2022-03-21 16:12:17 +01:00
Robbert van der Helm
6f264bad85
Fix text entry for vizia ParamSlider
...
With a couple new vizia commits that add the required behavior through
events and a new callback.
2022-03-21 15:58:12 +01:00
Robbert van der Helm
f084f14095
Refactor GUIs to use param's own default value
...
This removes the need to pass a lot of these `ParamSetter`s and
`GuiContext`s around. We also don't need explicit events to reset a
parameter anymore since you can get this information from the parameter
itself.
2022-03-21 13:11:36 +01:00
Robbert van der Helm
1a9db3ab8e
Temporarily add more widgets to vizia Gain GUI
2022-03-20 01:23:44 +01:00
Robbert van der Helm
4f9a83860b
Replace Binding with two display properties
2022-03-20 01:21:51 +01:00
Robbert van der Helm
c5d4671f06
Add a ParamSlider style that overlays all options
2022-03-19 19:42:50 +01:00
Robbert van der Helm
c3134fb5ef
Add a todo for another ParamSlider style
2022-03-19 19:31:07 +01:00