]>
Commit | Line | Data |
---|---|---|
5a945372 | 1 | #include "chart.h" |
79ac753b SW |
2 | #include <gtk/gtk.h> |
3 | ||
fc1a2773 SW |
4 | struct State { |
5 | BVChart *voltage; | |
6 | BVChart *current; | |
7 | }; | |
8 | ||
6f50819e SW |
9 | static gboolean collect_data(struct State *state __attribute__((unused))) { |
10 | return TRUE; | |
11 | } | |
12 | ||
fc1a2773 | 13 | static void activate(GtkApplication *app, gpointer user_data) { |
79ac753b | 14 | |
cecfa926 | 15 | GtkWidget *window = gtk_application_window_new(app); |
a8d35c4c | 16 | gtk_window_set_title(GTK_WINDOW(window), "BatteryViewer"); |
79ac753b SW |
17 | gtk_window_set_default_size(GTK_WINDOW(window), 200, 200); |
18 | ||
1bd5b327 SW |
19 | GtkWidget *box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 1); |
20 | gtk_container_add(GTK_CONTAINER(window), box); | |
21 | ||
fc1a2773 SW |
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); | |
1bd5b327 SW |
27 | gboolean expand = TRUE; |
28 | gboolean fill = TRUE; | |
29 | guint padding = 0; | |
fc1a2773 SW |
30 | gtk_box_pack_start(GTK_BOX(box), GTK_WIDGET(state->voltage), expand, fill, |
31 | padding); | |
1bd5b327 | 32 | |
fc1a2773 SW |
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, | |
37 | padding); | |
79ac753b | 38 | |
a9a80e4e | 39 | gtk_widget_show_all(window); |
6f50819e SW |
40 | |
41 | g_timeout_add_seconds(1, (GSourceFunc)collect_data, user_data); | |
79ac753b SW |
42 | } |
43 | ||
44 | int main(int argc, char **argv) { | |
fc1a2773 | 45 | struct State state; |
79ac753b | 46 | |
a8d35c4c SW |
47 | GtkApplication *app = gtk_application_new("com.scottworley.batteryviewer", |
48 | G_APPLICATION_DEFAULT_FLAGS); | |
fc1a2773 | 49 | g_signal_connect(app, "activate", G_CALLBACK(activate), &state); |
cecfa926 | 50 | int status = g_application_run(G_APPLICATION(app), argc, argv); |
79ac753b SW |
51 | g_object_unref(app); |
52 | ||
53 | return status; | |
54 | } |