From 26058b69e8dfb2d2e64f91dce886f2f0d90b23b3 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Sun, 9 Jun 2019 23:02:46 +0200 Subject: Basic selection and level setting --- src/nanolight.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'src/nanolight.c') diff --git a/src/nanolight.c b/src/nanolight.c index 5f76dd5..6fe379e 100644 --- a/src/nanolight.c +++ b/src/nanolight.c @@ -61,6 +61,16 @@ static double get_attr_val(struct fixture *fix, enum attr_class acls) } +static int fixture_selected(struct nanolight *nl, struct fixture *fix) +{ + int i; + for ( i=0; in_sel; i++ ) { + if ( &nl->fixtures[nl->selection[i]] == fix ) return 1; + } + return 0; +} + + static void draw_fixture(cairo_t *cr, PangoContext *pc, PangoFontDescription *fontdesc, struct nanolight *nl, struct fixture *fix) { @@ -69,7 +79,11 @@ static void draw_fixture(cairo_t *cr, PangoContext *pc, PangoFontDescription *fo char tmp[32]; cairo_rectangle(cr, 0.5, 0.5, w, 3.0/2.0*w); - cairo_set_source_rgb(cr, 0.3, 0.3, 0.3); + if ( fixture_selected(nl, fix) ) { + cairo_set_source_rgb(cr, 0.3, 0.3, 0.9); + } else { + cairo_set_source_rgb(cr, 0.3, 0.3, 0.3); + } cairo_fill_preserve(cr); cairo_set_source_rgb(cr, 1.0, 1.0, 1.0); cairo_set_line_width(cr, 1.0); @@ -257,6 +271,7 @@ static gboolean key_press_sig(GtkWidget *da, GdkEventKey *event, struct nanoligh case GDK_KEY_Escape : nl->cmdline[0] = '\0'; nl->cursor_idx = 0; + nl->n_sel = 0; redraw(nl); claim = 1; break; @@ -383,6 +398,7 @@ int main(int argc, char *argv[]) nl.max_fixtures = 0; nl.cmdline[0] = '\0'; nl.cursor_idx = 0; + nl.n_sel = 0; create_fixture(&nl, &cls, "mh1", 1); create_fixture(&nl, &cls, "mh2", 52); -- cgit v1.2.3