From: Ramakrishnan Muthukrishnan Date: Mon, 1 Jan 2024 07:00:21 +0000 (+0530) Subject: add a (dummy) touch event handler for rx panadapter X-Git-Url: https://git.rkrishnan.org/specifications/components//%22%3C?a=commitdiff_plain;h=aacaf587104241bf8638a80a3fc77469632328bc;p=pihpsdr.git add a (dummy) touch event handler for rx panadapter --- diff --git a/receiver.c b/receiver.c index c5b6b65..c512d2b 100644 --- a/receiver.c +++ b/receiver.c @@ -83,6 +83,25 @@ gboolean receiver_button_press_event(GtkWidget *widget, GdkEventButton *event, return TRUE; } +gboolean receiver_touch_event(GtkWidget *widget, GdkEventTouch *event, + gpointer data) { + // XXX: handle event.touch.type == TOUCH_BEGIN and TOUCH_END + /* RECEIVER *rx = (RECEIVER *)data; */ + /* if (rx == active_receiver) { */ + /* if (event->button == 1) { */ + /* last_x = (int)event->x; */ + /* has_moved = FALSE; */ + /* pressed = TRUE; */ + /* } else if (event->button == 3) { */ + /* g_idle_add(ext_start_rx, NULL); */ + /* } */ + /* } else { */ + /* making_active = TRUE; */ + /* } */ + log_info("someone touched me!"); + return TRUE; +} + void receiver_set_active(RECEIVER *rx) { active_receiver = rx; g_idle_add(menu_active_receiver_changed, NULL); diff --git a/receiver.h b/receiver.h index 59b53de..2024633 100644 --- a/receiver.h +++ b/receiver.h @@ -196,6 +196,7 @@ extern void reconfigure_receiver(RECEIVER *rx,int height); extern void receiver_save_state(RECEIVER *rx); extern gboolean receiver_button_press_event(GtkWidget *widget, GdkEventButton *event, gpointer data); +extern gboolean receiver_touch_event(GtkWidget *widget, GdkEventTouch *event, gpointer data); extern gboolean receiver_button_release_event(GtkWidget *widget, GdkEventButton *event, gpointer data); extern gboolean receiver_motion_notify_event(GtkWidget *widget, GdkEventMotion *event, gpointer data); extern gboolean receiver_scroll_event(GtkWidget *widget, GdkEventScroll *event, gpointer data); diff --git a/rigctl.c b/rigctl.c index 03e6692..97d0590 100644 --- a/rigctl.c +++ b/rigctl.c @@ -2193,6 +2193,8 @@ gboolean parse_extended_cmd(char *command, CLIENT *client) { receiver[0]->nr3 = 0; receiver[0]->nr4 = 1; break; + default: + break; } update_noise(); } diff --git a/rx_panadapter.c b/rx_panadapter.c index 78b3988..e52aebd 100644 --- a/rx_panadapter.c +++ b/rx_panadapter.c @@ -107,6 +107,11 @@ static gboolean panadapter_button_press_event_cb(GtkWidget *widget, GdkEventButt return receiver_button_press_event(widget,event,data); } +// https://docs.gtk.org/gtk3/input-handling.html +static gboolean panadapter_touch_event_cb(GtkWidget *widget, GdkEventTouch *event, gpointer data) { + return receiver_touch_event(widget, event, data); +} + static gboolean panadapter_button_release_event_cb(GtkWidget *widget, GdkEventButton *event, gpointer data) { return receiver_button_release_event(widget,event,data); } @@ -646,7 +651,8 @@ void rx_panadapter_init(RECEIVER *rx, int width,int height) { G_CALLBACK (panadapter_button_release_event_cb), rx); g_signal_connect(rx->panadapter,"scroll_event", G_CALLBACK(panadapter_scroll_event_cb),rx); - + g_signal_connect(rx->panadapter, "touch-event", + G_CALLBACK(panadapter_touch_event_cb), rx); /* Ask to receive events the drawing area doesn't normally * subscribe to. In particular, we need to ask for the * button press and motion notify events that want to handle.