+static void
+set_timebox_font_size(int new_size)
+{
+ if (new_size == timebox_font_size)
+ return;
+ timebox_font_size = new_size;
+
+ pango_font_description_set_size(timebox_font, timebox_font_size*PANGO_SCALE);
+ gtk_widget_modify_font(timebox, timebox_font);
+}
+
+static void
+on_window_resized(GtkWidget *widget UNUSED, GdkRectangle *rect, gpointer user_data UNUSED)
+{
+ int window_width = rect->width;
+ int window_height = rect->height;
+
+ if (autoresize_timebox_font)
+ {
+ // Binary search for optimal font size
+ int beg = 12, end = 1024;
+ while (beg < end)
+ {
+ int mid = (beg + end) / 2;
+ pango_font_description_set_size(timebox_font, mid*PANGO_SCALE);
+ PangoFontMetrics *metric = pango_context_get_metrics(gtk_widget_get_pango_context(timebox), timebox_font, NULL);
+ int width = pango_font_metrics_get_approximate_digit_width(metric) * 8.3 / PANGO_SCALE;
+ int height = pango_font_metrics_get_height(metric) / PANGO_SCALE;
+ if (width > window_width - 50 || height > window_height - 45)
+ end = mid;
+ else
+ beg = mid + 1;
+ }
+
+ set_timebox_font_size(beg);
+ }
+}
+