aboutsummaryrefslogtreecommitdiff
path: root/src/blocks/slider.c
diff options
context:
space:
mode:
authorFederico Angelilli <code@fedang.net>2024-11-24 19:39:19 +0100
committerFederico Angelilli <code@fedang.net>2024-11-24 19:39:19 +0100
commitdef1e18d86579cf77649d1b8aa596d0877b822bb (patch)
tree0e6deebdef1575b4b74472bc4367b294f7551753 /src/blocks/slider.c
parent76ad6b0d404d40f08b73d90ac5f66564c29feb95 (diff)
Refactor block_change_fn
Diffstat (limited to 'src/blocks/slider.c')
-rw-r--r--src/blocks/slider.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/src/blocks/slider.c b/src/blocks/slider.c
index f568105..6ad5211 100644
--- a/src/blocks/slider.c
+++ b/src/blocks/slider.c
@@ -91,7 +91,10 @@ static void block_slider_render(layout_t *layout, cairo_t *cr)
int knob_width = slider->knob_width;
int knob_radius = knob_height / 2;
- int knob_rw = knob_width * cos(slider->knob_rotation) + knob_height * sin(slider->knob_rotation);
+ const double degree = M_PI / 180.0;
+ double knob_rotation = slider->knob_rotation * degree;
+
+ int knob_rw = knob_width * cos(knob_rotation) + knob_height * sin(knob_rotation);
int current = (slider->value * (slider->width - knob_rw)) / 100;
int knob_x = bar_x + slider->line_width + slider->knob_x_offset + current - knob_rw / 2;
@@ -107,7 +110,7 @@ static void block_slider_render(layout_t *layout, cairo_t *cr)
cairo_save(cr);
cairo_translate(cr, t_x, t_y);
- cairo_rotate(cr, slider->knob_rotation);
+ cairo_rotate(cr, knob_rotation);
cairo_translate(cr, -t_x, -t_y);
switch (slider->knob) {
@@ -139,7 +142,7 @@ static void block_slider_render(layout_t *layout, cairo_t *cr)
cairo_save(cr);
cairo_translate(cr, t_x, t_y);
- cairo_rotate(cr, slider->knob_rotation);
+ cairo_rotate(cr, knob_rotation);
cairo_translate(cr, -t_x, -t_y);
switch (slider->knob) {
@@ -236,17 +239,9 @@ static int block_slider_validate(block_t *block, config_t *config)
errors++;
}
- const double degree = M_PI / 180.0;
- slider->knob_rotation *= degree;
-
return errors;
}
-static config_status_t block_slider_change(block_t *block, config_t *config, const char *key, const char *value)
-{
- return 0;
-}
-
static config_enum_t knob_shape_enum[] = {
{ "none", KNOB_NONE },
{ "capsule", KNOB_CAPSULE },
@@ -277,6 +272,11 @@ static const config_entry_t block_slider_entries[] = {
{ 0 },
};
+static config_status_t block_slider_change(block_t *block, config_t *config, const char *key, const char *value)
+{
+ return config_read_entry(block_slider_entries, block, NULL, "block", block->label, key, value);
+}
+
const block_scheme_t block_slider_scheme = {
.name = "slider",
.entries = block_slider_entries,