From 86b9df01ee698246665847f7dcc52351ce83fecb Mon Sep 17 00:00:00 2001 From: Matthias Melcher Date: Wed, 26 Nov 2025 14:07:34 +0100 Subject: Add initial log support for sliders (#1232). Works for all slider types. Adds tick marks to "nice slider". Defaults to linear if min or max is zero. There is room for improvement for drawing the tick marks. --- test/valuators.fl | 139 +++++++++++++++++++++++++++++++++++------------------- 1 file changed, 91 insertions(+), 48 deletions(-) (limited to 'test') diff --git a/test/valuators.fl b/test/valuators.fl index 8dca16ba3..4c603cd4f 100644 --- a/test/valuators.fl +++ b/test/valuators.fl @@ -2,234 +2,277 @@ version 1.0500 header_name {.h} code_name {.cxx} +include_guard {} Function {} {open } { Fl_Window {} { label {Valuator classes, showing values for type()} open - xywh {409 271 580 640} type Double color 43 selection_color 43 + xywh {454 295 620 640} type Double color 43 selection_color 43 code0 {\#include } visible } { Fl_Group {} { - label Fl_Slider - xywh {10 10 280 210} box ENGRAVED_BOX labelfont 1 align 17 + label Fl_Slider open + xywh {10 10 320 210} box ENGRAVED_BOX labelfont 1 align 17 } { Fl_Slider {} { label 0 user_data {"Fl_Slider FL_VERT_SLIDER"} callback callback - tooltip {Vertical Slider} xywh {30 45 20 145} selection_color 1 labelsize 8 align 1 + tooltip {Vertical Slider} xywh {30 70 20 140} selection_color 1 labelsize 8 align 1 v_label_margin 2 } Fl_Slider {} { - label FL_VERT_FILL_SLIDER + label {FL_VERT_FILL_SLIDER + | + | + |} user_data {"Fl_Slider FL_VERT_FILL_SLIDER"} callback callback - xywh {70 55 20 145} type {Vert Fill} selection_color 1 labelsize 8 + xywh {70 70 20 140} type {Vert Fill} selection_color 1 labelsize 8 align 5 } Fl_Slider {} { - label FL_VERT_NICE_SLIDER + label {FL_VERT_NICE_SLIDER + | + |} user_data {"Fl_Slider FL_VERT_NICE_SLIDER"} callback callback - xywh {105 45 20 145} type {Vert Knob} box FLAT_BOX color 10 selection_color 1 labelsize 8 align 1 + xywh {105 70 20 140} type {Vert Knob} box FLAT_BOX color 10 selection_color 1 labelsize 8 align 5 + } + Fl_Slider {} { + label {TICKS_RIGHT + |} + user_data {"Fl_Slider FL_VERT_NICE_SLIDER"} + callback callback + xywh {138 70 20 140} type {Vert Knob} box FLAT_BOX selection_color 1 labelsize 8 align 5 + code0 {o->ticks(Fl_Slider::TICKS_RIGHT);} } Fl_Slider {} { label FL_HORIZONTAL user_data {"Fl_Slider FL_HORIZONTAL"} callback callback - xywh {140 80 130 20} type Horizontal selection_color 1 labelsize 8 + xywh {190 75 130 20} type Horizontal selection_color 1 labelsize 8 v_label_margin 2 } Fl_Slider {} { label FL_HOR_FILL_SLIDER user_data {"Fl_Slider FL_HOR_FILL_SLIDER"} callback callback - xywh {140 120 130 20} type {Horz Fill} selection_color 1 labelsize 8 + xywh {190 110 130 20} type {Horz Fill} selection_color 1 labelsize 8 v_label_margin 2 } Fl_Slider {} { label FL_HOR_NICE_SLIDER user_data {"Fl_Slider FL_HOR_NICE_SLIDER"} callback callback - xywh {140 160 130 20} type {Horz Knob} box FLAT_BOX color 10 selection_color 1 labelsize 8 + xywh {190 145 130 20} type {Horz Knob} box FLAT_BOX color 10 selection_color 1 labelsize 8 v_label_margin 2 + } + Fl_Slider {} { + label {TICKS_ABOVE|TICKS_BELOW} + user_data {"Fl_Slider FL_HOR_NICE_SLIDER"} + callback callback + xywh {190 180 130 20} type {Horz Knob} box FLAT_BOX selection_color 1 labelsize 8 v_label_margin 2 + code0 {o->ticks(Fl_Slider::TICKS_ABOVE|Fl_Slider::TICKS_BELOW);} } } Fl_Group {} { - label Fl_Value_Slider - xywh {10 230 280 210} box ENGRAVED_BOX labelfont 1 align 17 + label Fl_Value_Slider open + xywh {10 230 320 210} box ENGRAVED_BOX labelfont 1 align 17 } { Fl_Value_Slider {} { label 0 user_data {"FL_VERT_SLIDER"} callback callback - tooltip {Value Slider} xywh {30 260 30 145} selection_color 1 labelsize 8 align 1 + tooltip {Value Slider} xywh {30 290 30 140} selection_color 1 labelsize 8 align 1 v_label_margin 2 } Fl_Value_Slider {} { - label FL_VERT_FILL_SLIDER + label {FL_VERT_FILL_SLIDER + | + | + |} user_data {"Fl_Value_Slider FL_VERT_FILL_SLIDER"} + callback callback selected + xywh {70 290 30 140} type {Vert Fill} selection_color 1 labelsize 8 align 5 + } + Fl_Value_Slider {} { + label {FL_VERT_NICE_SLIDER + | + |} + user_data {"Fl_Value_Slider FL_VERT_NICE_SLIDER"} callback callback - xywh {70 275 30 140} type {Vert Fill} selection_color 1 labelsize 8 + xywh {110 290 20 140} type {Vert Knob} box FLAT_BOX color 10 selection_color 1 labelsize 8 align 5 } Fl_Value_Slider {} { - label FL_VERT_NICE_SLIDER + label {LOG_SCALE + |} user_data {"Fl_Value_Slider FL_VERT_NICE_SLIDER"} callback callback - xywh {110 260 20 145} type {Vert Knob} box FLAT_BOX color 10 selection_color 1 labelsize 8 align 1 + xywh {142 290 20 140} type {Vert Knob} box FLAT_BOX selection_color 1 labelsize 8 align 5 minimum 100 step 1 value 1 + code0 {o->scale(Fl_Slider::LOG_SCALE);} + code1 {o->ticks(Fl_Slider::TICKS_RIGHT);} } Fl_Value_Slider {} { label FL_HOR_SLIDER user_data {"Fl_Value_Slider FL_HOR_SLIDER"} callback callback - xywh {140 290 130 20} type Horizontal selection_color 1 labelsize 8 + xywh {190 295 130 20} type Horizontal selection_color 1 labelsize 8 v_label_margin 2 } Fl_Value_Slider {} { label FL_HOR_FILL_SLIDER user_data {"Fl_Value_Slider FL_HOR_FILL_SLIDER"} callback callback - xywh {140 330 130 20} type {Horz Fill} selection_color 1 labelsize 8 + xywh {190 330 130 20} type {Horz Fill} selection_color 1 labelsize 8 v_label_margin 2 } Fl_Value_Slider {} { label FL_HOR_NICE_SLIDER user_data {"Fl_Value_Slider FL_HOR_NICE_SLIDER"} callback callback - xywh {140 370 130 20} type {Horz Knob} box FLAT_BOX color 10 selection_color 1 labelsize 8 + xywh {190 365 130 20} type {Horz Knob} box FLAT_BOX color 10 selection_color 1 labelsize 8 v_label_margin 2 + } + Fl_Value_Slider {} { + label LOG_SCALE + user_data {"Fl_Value_Slider FL_HOR_NICE_SLIDER"} + callback callback + xywh {190 400 130 20} type {Horz Knob} box FLAT_BOX selection_color 1 labelsize 8 v_label_margin 2 minimum 1 maximum 100 step 1 + code0 {o->ticks(Fl_Slider::TICKS_ABOVE|Fl_Slider::TICKS_BELOW);} + code1 {o->scale(Fl_Slider::LOG_SCALE);} } } Fl_Group {} { label Fl_Value_Input - xywh {10 450 135 50} box ENGRAVED_BOX labelfont 1 align 17 + xywh {10 450 155 50} box ENGRAVED_BOX labelfont 1 align 17 } { Fl_Value_Input {} { label 0 user_data {"Fl_Value_Input"} callback callback - tooltip {Value Input} xywh {30 470 105 25} labelsize 8 maximum 100 step 0.1 + tooltip {Value Input} xywh {30 470 125 25} labelsize 8 maximum 100 step 0.1 } } Fl_Group {} { label Fl_Value_Output user_data {"Fl_Value_Output"} - xywh {155 450 135 50} box ENGRAVED_BOX labelfont 1 align 17 + xywh {175 450 155 50} box ENGRAVED_BOX labelfont 1 align 17 } { Fl_Value_Output {} { label 0 callback callback - tooltip {Value Output} xywh {170 470 105 25} labelsize 8 maximum 100 step 0.1 + tooltip {Value Output} xywh {190 470 125 25} labelsize 8 maximum 100 step 0.1 } } Fl_Group {} { - label { Fl_Scrollbar} - xywh {300 10 130 120} box ENGRAVED_BOX labelfont 1 align 21 + label { Fl_Scrollbar} open + xywh {340 10 130 120} box ENGRAVED_BOX labelfont 1 align 21 } { Fl_Scrollbar {} { label FL_HORIZONTAL user_data {"Fl_Scrollbar FL_HORIZONTAL"} callback callback - tooltip {Horizontal Scrollbar} xywh {305 55 95 20} type Horizontal labelsize 8 maximum 100 value 20 + tooltip {Horizontal Scrollbar} xywh {345 55 95 20} type Horizontal labelsize 8 v_label_margin 2 maximum 100 value 20 } Fl_Scrollbar {} { label {FL_VERTICAL (0) ->} user_data {"Fl_Scrollbar FL_VERTICAL"} callback callback - tooltip {Vertical Scrollbar} xywh {405 30 20 90} labelsize 8 align 13 maximum 100 value 20 + tooltip {Vertical Scrollbar} xywh {445 30 20 90} labelsize 8 align 13 maximum 100 value 20 } } Fl_Group {} { label Fl_Adjuster - xywh {440 10 130 120} box ENGRAVED_BOX labelfont 1 align 17 + xywh {480 10 130 120} box ENGRAVED_BOX labelfont 1 align 17 } { Fl_Adjuster {} { label {w()>h()} user_data {"Fl_Adjuster w()>h()"} callback callback - tooltip {Horizontal Adjuster} xywh {450 60 75 25} labelsize 8 + tooltip {Horizontal Adjuster} xywh {490 60 75 25} labelsize 8 v_label_margin 2 } Fl_Adjuster {} { label {w()wrap(0); // disable wrap mode} } } Fl_Group {} { label Fl_Dial - xywh {300 270 270 105} box ENGRAVED_BOX labelfont 1 align 17 + xywh {340 270 270 105} box ENGRAVED_BOX labelfont 1 align 17 } { Fl_Dial {} { label 0 user_data {"Fl_Dial"} callback callback - tooltip {Standard Dial} xywh {320 295 65 65} color 10 selection_color 1 labelsize 8 value 0.5 + tooltip {Standard Dial} xywh {360 295 65 65} color 10 selection_color 1 labelsize 8 v_label_margin 2 value 0.5 code0 {o->angles(0,315);} } Fl_Dial {} { label FL_LINE_DIAL user_data {"Fl_Dial FL_LINE_DIAL"} callback callback - tooltip {Line Dial} xywh {400 295 65 65} type Line color 10 selection_color 1 labelsize 8 value 0.5 + tooltip {Line Dial} xywh {440 295 65 65} type Line color 10 selection_color 1 labelsize 8 v_label_margin 2 value 0.5 } Fl_Dial {} { label FL_FILL_DIAL user_data {"Fl_Dial FL_FILL_DIAL"} callback callback - tooltip {Fill Dial} xywh {480 295 65 65} type Fill color 10 selection_color 1 labelsize 8 value 1 + tooltip {Fill Dial} xywh {520 295 65 65} type Fill color 10 selection_color 1 labelsize 8 v_label_margin 2 value 1 code0 {o->angles(0,360);} } } Fl_Group {} { label Fl_Roller - xywh {300 385 150 115} box ENGRAVED_BOX labelfont 1 align 17 + xywh {340 385 150 115} box ENGRAVED_BOX labelfont 1 align 17 } { Fl_Roller {} { label 0 user_data {"Fl_Roller FL_VERTICAL"} callback callback - tooltip {Vertical Roller} xywh {315 390 20 95} labelsize 8 + tooltip {Vertical Roller} xywh {355 390 20 95} labelsize 8 v_label_margin 2 } Fl_Roller {} { label FL_HORIZONTAL user_data {"Fl_Roller FL_HORIZONTAL"} callback callback - tooltip {Horizontal Roller} xywh {345 430 90 20} type Horizontal labelsize 8 + tooltip {Horizontal Roller} xywh {385 430 90 20} type Horizontal labelsize 8 v_label_margin 2 } } Fl_Box {} { label {Some widgets have color(FL_GREEN) and color2(FL_RED) to show the areas these effect.} - xywh {460 385 110 115} box BORDER_FRAME color 0 selection_color 0 labelsize 11 align 128 + xywh {500 385 110 115} box BORDER_FRAME color 0 selection_color 0 labelsize 11 align 128 } - Fl_Terminal tty {selected - xywh {10 513 560 117} + Fl_Terminal tty { + xywh {10 513 600 117} code0 {o->ansi(true);} } } -- cgit v1.2.3