You can usually retrieve the label of a specific
GtkMenuItem with:
|     if (GTK_BIN (menu_item)->child)
    {
      GtkWidget *child = GTK_BIN (menu_item)->child;
  
      /* do stuff with child */
      if (GTK_IS_LABEL (child))
      {
        gchar *text;
    
        gtk_label_get (GTK_LABEL (child), &text);
        g_print ("menu item text: %s\n", text);
      }
    } | 
To get the active menu item from a GtkOptionMenu you can
do:
| if (GTK_OPTION_MENU (option_menu)->menu_item)
{
  GtkWidget *menu_item = GTK_OPTION_MENU (option_menu)->menu_item;
} | 
But, there's a catch. For this specific case, you can
not get the label widget from
menu_item with the above code, because the
option menu reparents the menu_item's child temporarily to
display the currently active contents. So to retrive the child
of the currently active menu_item of an option menu, you'll
have to do:
|     if (GTK_BIN (option_menu)->child)
    {
      GtkWidget *child = GTK_BIN (option_menu)->child;
      /* do stuff with child */
    } |