material ui Roboto Font

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <gtk/gtk.h>
#include <gdk/gdk.h>
#include <glib/gi18n.h>
#include <glib/gprintf.h>
#include <glib/gstdio.h>
#include <cairo.h>

static PangoFontDescription *font_desc;

static void
set_font_desc ()
{
  if (font_desc)
    pango_font_description_free (font_desc);

  font_desc = pango_font_description_from_string ("Roboto 14");
}

static void
draw_text (cairo_t *cr,
           int x,
           int y,
           const gchar *text)
{
  PangoLayout *layout;
  PangoContext *context;
  PangoRectangle rect;

  layout = pango_cairo_create_layout (cr);
  context = pango_layout_get_context (layout);

  pango_layout_set_text (layout, text, -1);
  pango_layout_set_font_description (layout, font_desc);

  pango_layout_get_pixel_extents (layout, NULL, &rect);
  cairo_move_to (cr, x, y);
  pango_cairo_show_layout (cr, layout);

  g_object_unref (layout);
  g_object_unref (context);
}

static gboolean
on_draw_event (GtkWidget *widget,
               cairo_t *cr,
               gpointer data)
{
  const gchar *text = "Hello, Material UI!";

  set_font_desc ();

  draw_text (cr, 50, 50, text);

  return FALSE;
}

static void
on_destroy (GtkWidget *widget,
            gpointer data)
{
  gtk_main_quit ();
}

int
main (int argc, char *argv[])
{
  GtkWidget *window;
  GtkWidget *drawing_area;

  gtk_init (&argc, &argv);

  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  gtk_window_set_title (GTK_WINDOW (window), "Material UI with Roboto Font");
  gtk_window_set_default_size (GTK_WINDOW (window), 400, 300);

  g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (on_destroy), NULL);

  drawing_area = gtk_drawing_area_new ();
  gtk_container_add (GTK_CONTAINER (window), drawing_area);

  g_signal_connect (G_OBJECT (drawing_area), "draw", G_CALLBACK (on_draw_event), NULL);

  gtk_widget_show_all (window);

  gtk_main ();

  return 0;
}