1
0
Fork 0
Commit graph

169 commits

Author SHA1 Message Date
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