]> git.rkrishnan.org Git - pihpsdr.git/commitdiff
add a (dummy) touch event handler for rx panadapter
authorRamakrishnan Muthukrishnan <ram@rkrishnan.org>
Mon, 1 Jan 2024 07:00:21 +0000 (12:30 +0530)
committerRamakrishnan Muthukrishnan <ram@rkrishnan.org>
Mon, 1 Jan 2024 07:01:01 +0000 (12:31 +0530)
receiver.c
receiver.h
rigctl.c
rx_panadapter.c

index c5b6b655e19fb41950e84eb93174a816c34a05ee..c512d2b6e7ef0827d183d46e1980f6ad544b1372 100644 (file)
@@ -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);
index 59b53de39ad984f510038e3d3bf8ff3135e8a6e0..20246337aa00b2b3f66875fca9b22cf8474f8c1a 100644 (file)
@@ -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);
index 03e6692e5f7f3580004119366336afaf70350ec2..97d0590d5efc42e1c080a6e607d5c8f88dd25504 100644 (file)
--- 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();
             }
index 78b3988bc11abca931ddca7ca541dcfff2528da8..e52aebdeb4f1dbb10632cbde9e68075e9d2df06c 100644 (file)
@@ -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.