aboutsummaryrefslogtreecommitdiff
path: root/remote_plot.c
diff options
context:
space:
mode:
authorXiao Pan <xyz@flylightning.xyz>2025-05-07 03:19:59 -0700
committerXiao Pan <xyz@flylightning.xyz>2025-05-07 03:19:59 -0700
commitfc34769490efd9e912e5c22c167304e613cc4c7e (patch)
tree5ecc184baa94a2ce47c2dd44f639e1ac7446531c /remote_plot.c
parentdc4b2d92ee979d48cda6ee58d1ed704ce47720cc (diff)
a little bit better logic and states, not perfect
Diffstat (limited to 'remote_plot.c')
-rw-r--r--remote_plot.c17
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;