diff options
author | Xiao Pan <xyz@flylightning.xyz> | 2025-05-07 03:19:59 -0700 |
---|---|---|
committer | Xiao Pan <xyz@flylightning.xyz> | 2025-05-07 03:19:59 -0700 |
commit | fc34769490efd9e912e5c22c167304e613cc4c7e (patch) | |
tree | 5ecc184baa94a2ce47c2dd44f639e1ac7446531c /remote_plot.c | |
parent | dc4b2d92ee979d48cda6ee58d1ed704ce47720cc (diff) |
a little bit better logic and states, not perfect
Diffstat (limited to 'remote_plot.c')
-rw-r--r-- | remote_plot.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/remote_plot.c b/remote_plot.c index 634d727..062e709 100644 --- a/remote_plot.c +++ b/remote_plot.c @@ -259,6 +259,7 @@ typedef struct { uint32_t from_time; uint32_t to_time; bool from_time_entered; + //bool to_time_entered; // local file name char *filename; // only read from local .csv file or not @@ -692,6 +693,8 @@ static void set_from_time (GtkWidget *widget, gpointer user_data) 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); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->last_seconds_toggle),FALSE); data->to_time=strtoul(gtk_editable_get_text(GTK_EDITABLE(data->to_entry)),NULL,10); @@ -704,6 +707,14 @@ static void update_drawing_area (GtkWidget *widget, gpointer user_data) gtk_widget_queue_draw(data->area); } +static void last_seconds_toggle_callback(GtkWidget *widget, gpointer user_data) +{ + DATA *data=user_data; + if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->last_seconds_toggle))) + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->live_toggle),TRUE); + gtk_widget_queue_draw(data->area); +} + static void activate (GtkApplication *app, gpointer user_data) { DATA *data=user_data; @@ -742,6 +753,9 @@ static void activate (GtkApplication *app, gpointer user_data) data->temp_label=gtk_label_new("Average temperature:"); data->live_toggle = gtk_toggle_button_new_with_label("Live"); 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); data->unix_time_toggle = gtk_toggle_button_new_with_label("Unix time"); @@ -750,7 +764,7 @@ static void activate (GtkApplication *app, gpointer user_data) data->last_seconds_toggle = gtk_toggle_button_new_with_label("Last 50 seconds"); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->last_seconds_toggle),TRUE); - g_signal_connect (data->last_seconds_toggle, "toggled", G_CALLBACK (update_drawing_area), user_data); + g_signal_connect (data->last_seconds_toggle, "toggled", G_CALLBACK (last_seconds_toggle_callback), user_data); for(int i=0;i<(VOLTLEN+TEMPLEN);i++) data->checkbutton[i]=gtk_check_button_new_with_label(checkbutton_names[i]); @@ -927,6 +941,7 @@ int main (int argc, char **argv) exit(1); } data.from_time_entered=false; + //data.to_time_entered=false; data.offset=0; data.local=false; data.just_start=true; |