From cd31c72d3cba338921b2475e7d08d61c3285a9d9 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Sat, 15 Jun 2019 00:49:08 +0200 Subject: Use function keys to select parameters --- src/nanolight.c | 88 ++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 75 insertions(+), 13 deletions(-) diff --git a/src/nanolight.c b/src/nanolight.c index 8b88f91..e813ca1 100644 --- a/src/nanolight.c +++ b/src/nanolight.c @@ -47,6 +47,22 @@ static void show_help(const char *s) #define OVERALL_SPLIT (0.5) #define FIXTURE_BORDER (5.0) +enum attr_class key_attrs[] = { + 0, + ATT_TILT, /* F1 */ + ATT_STROBE, /* F2 */ + ATT_CYAN, /* F3 */ + ATT_MAGENTA, /* F4 */ + ATT_YELLOW, /* F5 */ + ATT_GOBO, /* F6 */ + ATT_RGOBO, /* F7 */ + ATT_PRISM, /* F8 */ + ATT_FOCUS, /* F9 */ + ATT_ZOOM, /* F10 */ + ATT_ZOOM, /* F11 */ + ATT_ZOOM /* F12 */ +}; + static double get_attr_val(struct fixture *fix, enum attr_class acls) { int i; @@ -452,21 +468,18 @@ static void home_value(struct nanolight *nl) static gboolean key_press_sig(GtkWidget *da, GdkEventKey *event, struct nanolight *nl) { gboolean r; - int claim = 0; + int claim = 1; switch ( event->keyval ) { case GDK_KEY_Left : - claim = 1; break; case GDK_KEY_Right : - claim = 1; break; case GDK_KEY_Return : execute_command(nl); - claim = 1; break; case GDK_KEY_Escape : @@ -474,37 +487,86 @@ static gboolean key_press_sig(GtkWidget *da, GdkEventKey *event, struct nanoligh nl->cursor_idx = 0; nl->n_sel = 0; nl->dragging = 0; - claim = 1; break; case GDK_KEY_BackSpace : nl->cursor_idx -= delete_char(nl->cmdline); - claim = 1; break; case GDK_KEY_KP_Enter : printf("Go!\n"); - claim = 1; break; case GDK_KEY_KP_Add : printf("Stop/back!\n"); - claim = 1; break; case GDK_KEY_Home : home_value(nl); - claim = 1; break; case GDK_KEY_F1 : - nl->sel_attr = ATT_TILT; - claim = 1; + nl->sel_attr = key_attrs[1]; + nl->dragging = 0; break; case GDK_KEY_F2 : - nl->sel_attr = ATT_STROBE; - claim = 1; + nl->sel_attr = key_attrs[2]; + nl->dragging = 0; + break; + + case GDK_KEY_F3 : + nl->sel_attr = key_attrs[3]; + nl->dragging = 0; + break; + + case GDK_KEY_F4 : + nl->sel_attr = key_attrs[4]; + nl->dragging = 0; + break; + + case GDK_KEY_F5 : + nl->sel_attr = key_attrs[5]; + nl->dragging = 0; + break; + + case GDK_KEY_F6 : + nl->sel_attr = key_attrs[6]; + nl->dragging = 0; + break; + + case GDK_KEY_F7 : + nl->sel_attr = key_attrs[7]; + nl->dragging = 0; + break; + + case GDK_KEY_F8 : + nl->sel_attr = key_attrs[8]; + nl->dragging = 0; + break; + + case GDK_KEY_F9 : + nl->sel_attr = key_attrs[9]; + nl->dragging = 0; + break; + + case GDK_KEY_F10 : + nl->sel_attr = key_attrs[10]; + nl->dragging = 0; + break; + + case GDK_KEY_F11 : + nl->sel_attr = key_attrs[11]; + nl->dragging = 0; + break; + + case GDK_KEY_F12 : + nl->sel_attr = key_attrs[12]; + nl->dragging = 0; + break; + + default : + claim = 0; break; } -- cgit v1.2.3