11// Copy of ParamSlider made custom by adding reversed bool to reverse drawing bar and empty section
22// Needed to make some weird import changes to get this to work...Definitely should find a better way to do this in future...
33// Ardura
4- use std:: sync:: { Arc , LazyLock } ;
5- use nih_plug:: {
6- prelude:: { Param , ParamSetter } ,
4+ use nih_plug:: prelude:: { Param , ParamSetter } ;
5+ use nih_plug_egui:: egui:: {
6+ self , emath, vec2, Color32 , Key , Response , Sense , Stroke , TextEdit , TextStyle , Ui , Vec2 ,
7+ Widget , WidgetText ,
78} ;
8- use nih_plug_egui:: egui:: { self , emath, vec2, Color32 , Key , Response , Sense , Stroke , TextEdit , TextStyle , Ui , Vec2 , Widget , WidgetText } ;
99use nih_plug_egui:: widgets:: util as nUtil;
1010use parking_lot:: Mutex ;
11+ use std:: sync:: { Arc , LazyLock } ;
1112
1213/// When shift+dragging a parameter, one pixel dragged corresponds to this much change in the
1314/// noramlized parameter.
@@ -318,14 +319,14 @@ impl<'a, P: Param> ParamSlider<'a, P> {
318319 response. rect ,
319320 0.0 ,
320321 Stroke :: new ( 1.0 , ui. visuals ( ) . widgets . active . bg_fill ) ,
321- egui:: StrokeKind :: Middle
322+ egui:: StrokeKind :: Middle ,
322323 ) ;
323324 } else {
324325 ui. painter ( ) . rect_stroke (
325326 response. rect ,
326327 0.0 ,
327328 Stroke :: new ( 1.0 , self . background_set_color ) ,
328- egui:: StrokeKind :: Middle
329+ egui:: StrokeKind :: Middle ,
329330 ) ;
330331 }
331332 }
@@ -350,25 +351,28 @@ impl<'a, P: Param> ParamSlider<'a, P> {
350351 if keyboard_focus_id. is_some ( ) {
351352 let keyboard_focus_id = keyboard_focus_id. unwrap ( ) ;
352353 if self . keyboard_entry_active ( ui) {
353- let value_entry_mutex = ui
354- . memory_mut ( |mem|mem. data . get_persisted_mut_or_default :: < Arc < Mutex < String > > > ( * VALUE_ENTRY_MEMORY_ID ) . clone ( ) ) ;
354+ let value_entry_mutex = ui. memory_mut ( |mem| {
355+ mem. data
356+ . get_persisted_mut_or_default :: < Arc < Mutex < String > > > ( * VALUE_ENTRY_MEMORY_ID )
357+ . clone ( )
358+ } ) ;
355359 let mut value_entry = value_entry_mutex. lock ( ) ;
356-
360+
357361 ui. add (
358362 TextEdit :: singleline ( & mut * value_entry)
359363 . id ( keyboard_focus_id)
360364 . font ( TextStyle :: Monospace ) ,
361365 ) ;
362- if ui. input ( |reader|reader. key_pressed ( Key :: Escape ) ) {
366+ if ui. input ( |reader| reader. key_pressed ( Key :: Escape ) ) {
363367 // Cancel when pressing escape
364- ui. memory_mut ( |mem|mem. surrender_focus ( keyboard_focus_id) ) ;
365- } else if ui. input ( |reader|reader. key_pressed ( Key :: Enter ) ) {
368+ ui. memory_mut ( |mem| mem. surrender_focus ( keyboard_focus_id) ) ;
369+ } else if ui. input ( |reader| reader. key_pressed ( Key :: Enter ) ) {
366370 // And try to set the value by string when pressing enter
367371 self . begin_drag ( ) ;
368372 self . set_from_string ( & value_entry) ;
369373 self . end_drag ( ) ;
370-
371- ui. memory_mut ( |mem|mem. surrender_focus ( keyboard_focus_id) ) ;
374+
375+ ui. memory_mut ( |mem| mem. surrender_focus ( keyboard_focus_id) ) ;
372376 }
373377 } else {
374378 text = WidgetText :: from ( text_label) . into_galley (
@@ -398,7 +402,7 @@ impl<'a, P: Param> ParamSlider<'a, P> {
398402 visuals. corner_radius ,
399403 fill,
400404 stroke,
401- egui:: StrokeKind :: Middle
405+ egui:: StrokeKind :: Middle ,
402406 ) ;
403407 }
404408 let text_pos = ui
@@ -440,7 +444,7 @@ impl<'a, P: Param> ParamSlider<'a, P> {
440444 visuals. corner_radius ,
441445 fill,
442446 stroke,
443- egui:: StrokeKind :: Middle
447+ egui:: StrokeKind :: Middle ,
444448 ) ;
445449 }
446450 let text_pos = ui
@@ -457,7 +461,6 @@ impl<'a, P: Param> ParamSlider<'a, P> {
457461 }
458462}
459463
460-
461464impl < P : Param > Widget for ParamSlider < ' _ , P > {
462465 fn ui ( mut self , ui : & mut Ui ) -> Response {
463466 let slider_width = self
@@ -480,8 +483,9 @@ impl<P: Param> Widget for ParamSlider<'_, P> {
480483 let height = ui
481484 . text_style_height ( & TextStyle :: Body )
482485 . max ( ui. spacing ( ) . interact_size . y * slimmer_scale) ;
483-
484- let slider_height = emath:: GuiRounding :: round_to_pixels ( height * 0.8 , ui. painter ( ) . pixels_per_point ( ) ) ;
486+
487+ let slider_height =
488+ emath:: GuiRounding :: round_to_pixels ( height * 0.8 , ui. painter ( ) . pixels_per_point ( ) ) ;
485489 let mut response = ui
486490 . vertical ( |ui| {
487491 ui. allocate_space ( vec2 ( slider_width, ( height - slider_height) / 2.0 ) ) ;
0 commit comments