summaryrefslogtreecommitdiff
path: root/src/nanolight.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nanolight.c')
-rw-r--r--src/nanolight.c18
1 files changed, 17 insertions, 1 deletions
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; i<nl->n_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);