9 static gboolean
collect_data(struct State
*state
__attribute__((unused
))) {
13 static void activate(GtkApplication
*app
, gpointer user_data
) {
15 GtkWidget
*window
= gtk_application_window_new(app
);
16 gtk_window_set_title(GTK_WINDOW(window
), "BatteryViewer");
17 gtk_window_set_default_size(GTK_WINDOW(window
), 200, 200);
19 GtkWidget
*box
= gtk_box_new(GTK_ORIENTATION_VERTICAL
, 1);
20 gtk_container_add(GTK_CONTAINER(window
), box
);
22 struct State
*state
= (struct State
*)user_data
;
23 state
->voltage
= BV_CHART(bv_chart_new());
24 bv_chart_add_point(state
->voltage
, 0.0, 0.0);
25 bv_chart_add_point(state
->voltage
, 1.0, 1.0);
26 bv_chart_add_point(state
->voltage
, 3.0, 2.0);
27 gboolean expand
= TRUE
;
30 gtk_box_pack_start(GTK_BOX(box
), GTK_WIDGET(state
->voltage
), expand
, fill
,
33 state
->current
= BV_CHART(bv_chart_new());
34 bv_chart_add_point(state
->current
, 0.0, 1.0);
35 bv_chart_add_point(state
->current
, 1.0, 0.0);
36 gtk_box_pack_end(GTK_BOX(box
), GTK_WIDGET(state
->current
), expand
, fill
,
39 gtk_widget_show_all(window
);
41 g_timeout_add_seconds(1, (GSourceFunc
)collect_data
, user_data
);
44 int main(int argc
, char **argv
) {
47 GtkApplication
*app
= gtk_application_new("com.scottworley.batteryviewer",
48 G_APPLICATION_DEFAULT_FLAGS
);
49 g_signal_connect(app
, "activate", G_CALLBACK(activate
), &state
);
50 int status
= g_application_run(G_APPLICATION(app
), argc
, argv
);