/* This routine is called when the user clicks the "Apply" button in the "Decode As..." dialog window. This routine calls various helper routines to set/clear dissector values as requested by the user. These routines accumulate information on what actions they have taken, and this summary information is printed by this routine. */
static void decode_apply_cb(GtkWidget *apply_bt _U_, gpointer parent_w)
/* This routine is called when the user clicks the "Apply" button in the "Decode As..." dialog window. This routine calls various helper routines to set/clear dissector values as requested by the user. These routines accumulate information on what actions they have taken, and this summary information is printed by this routine. */
static void decode_apply_cb(GtkWidget *apply_bt _U_, gpointer parent_w)
{
    GtkWidget *notebook, *notebook_pg;
    void (* func)(GtkWidget *);
    gint page_num;
    notebook =  (GtkWidget *)g_object_get_data(G_OBJECT(parent_w), E_NOTEBOOK);
    page_num = gtk_notebook_get_current_page(GTK_NOTEBOOK(notebook));
    notebook_pg = gtk_notebook_get_nth_page(GTK_NOTEBOOK(notebook), page_num);
    func = (void (*)(GtkWidget *))g_object_get_data(G_OBJECT(notebook_pg), E_PAGE_ACTION);
    func(notebook_pg);
    redissect_packets();
    redissect_all_packet_windows();
}