static void destroy_cb (GtkWidget * widget)
{
    g_return_if_fail (area);

    ui_infoarea_show_vis (FALSE);

    hook_dissociate ("playlist update", (HookFunction) ui_infoarea_set_title);
    hook_dissociate ("playback begin", (HookFunction) ui_infoarea_playback_start);
    hook_dissociate ("playback stop", (HookFunction) ui_infoarea_playback_stop);
    hook_dissociate ("current art ready", (HookFunction) album_art_ready);

    if (area->fade_timeout)
    {
        g_source_remove (area->fade_timeout);
        area->fade_timeout = 0;
    }

    str_unref (area->title);
    str_unref (area->artist);
    str_unref (area->album);
    str_unref (area->last_title);
    str_unref (area->last_artist);
    str_unref (area->last_album);

    if (area->pb)
        g_object_unref (area->pb);
    if (area->last_pb)
        g_object_unref (area->last_pb);

    g_slice_free (UIInfoArea, area);
    area = NULL;
}
Exemple #2
0
static void ui_show (gboolean show)
{
    if (show)
    {
        if (! ui_is_shown ())
            restore_window_size ();

        gtk_window_present ((GtkWindow *) window);

        /* turn visualization back on if necessary */
        ui_infoarea_show_vis (aud_get_bool ("gtkui", "infoarea_show_vis"));
    }
    else
    {
        if (ui_is_shown ())
            save_window_size ();

        gtk_widget_hide (window);

        /* turn visualization off to reduce CPU usage */
        ui_infoarea_show_vis (FALSE);
    }
}
Exemple #3
0
void show_infoarea (gboolean show)
{
    aud_set_bool ("gtkui", "infoarea_visible", show);

    if (show && ! infoarea)
    {
        infoarea = ui_infoarea_new ();
        g_signal_connect (infoarea, "destroy", (GCallback) gtk_widget_destroyed, & infoarea);
        gtk_box_pack_end ((GtkBox *) vbox, infoarea, FALSE, FALSE, 0);
        gtk_widget_show_all (infoarea);

        /* only turn on visualization if interface is shown */
        if (ui_is_shown ())
            ui_infoarea_show_vis (aud_get_bool ("gtkui", "infoarea_show_vis"));
    }

    if (! show && infoarea)
    {
        gtk_widget_destroy (infoarea);
        infoarea = NULL;
    }
}
Exemple #4
0
void show_infoarea_vis (gboolean show)
{
    aud_set_bool ("gtkui", "infoarea_show_vis", show);
    ui_infoarea_show_vis (show);
}