aboutsummaryrefslogtreecommitdiff
path: root/remote_plot.c
diff options
context:
space:
mode:
authorXiao Pan <xyz@flylightning.xyz>2025-05-07 03:29:30 -0700
committerXiao Pan <xyz@flylightning.xyz>2025-05-07 03:29:30 -0700
commit3941d395bd4d845f66d649be35954ed126f71b1e (patch)
treee16635e35976dabd354a2346532ca9b5b33807a6 /remote_plot.c
parentfc34769490efd9e912e5c22c167304e613cc4c7e (diff)
a little better logic
Diffstat (limited to 'remote_plot.c')
-rw-r--r--remote_plot.c22
1 files changed, 19 insertions, 3 deletions
diff --git a/remote_plot.c b/remote_plot.c
index 062e709..1d1cab7 100644
--- a/remote_plot.c
+++ b/remote_plot.c
@@ -685,6 +685,8 @@ static void set_from_time (GtkWidget *widget, gpointer user_data)
DATA *data=user_data;
if(!(data->from_time_entered))
data->from_time_entered=true;
+ // TODO: consider bad input
+ // assume good input, assume no empty input
data->from_time=strtoul(gtk_editable_get_text(GTK_EDITABLE(data->from_entry)),NULL,10);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->last_seconds_toggle),FALSE);
gtk_widget_queue_draw(data->area);
@@ -695,8 +697,11 @@ static void set_to_time (GtkWidget *widget, gpointer user_data)
DATA *data=user_data;
//if(!(data->to_time_entered))
// data->to_time_entered=true;
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->live_toggle),FALSE);
+ // set last_seconds_toggle first, because live_toggle will check if last_seconds_toggle is true
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->last_seconds_toggle),FALSE);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->live_toggle),FALSE);
+ // TODO: consider bad input
+ // assume good input, assume no empty input
data->to_time=strtoul(gtk_editable_get_text(GTK_EDITABLE(data->to_entry)),NULL,10);
gtk_widget_queue_draw(data->area);
}
@@ -707,6 +712,17 @@ static void update_drawing_area (GtkWidget *widget, gpointer user_data)
gtk_widget_queue_draw(data->area);
}
+static void live_toggle_callback(GtkWidget *widget, gpointer user_data)
+{
+ DATA *data=user_data;
+ if(!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->live_toggle)) && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->last_seconds_toggle)))
+ {
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->live_toggle),TRUE);
+ return;
+ }
+ gtk_widget_queue_draw(data->area);
+}
+
static void last_seconds_toggle_callback(GtkWidget *widget, gpointer user_data)
{
DATA *data=user_data;
@@ -755,8 +771,8 @@ static void activate (GtkApplication *app, gpointer user_data)
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->live_toggle),TRUE);
// TODO: better live_toggle logic and state consider other states
// live_toggle logic not perfect, if consider its states and other states will make logic very complex, so not using live_toggle_callback for now
- //g_signal_connect (data->live_toggle, "toggled", G_CALLBACK (live_toggle_callback), user_data);
- g_signal_connect (data->live_toggle, "toggled", G_CALLBACK (update_drawing_area), user_data);
+ g_signal_connect (data->live_toggle, "toggled", G_CALLBACK (live_toggle_callback), user_data);
+ //g_signal_connect (data->live_toggle, "toggled", G_CALLBACK (update_drawing_area), user_data);
data->unix_time_toggle = gtk_toggle_button_new_with_label("Unix time");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->unix_time_toggle),FALSE);