示例#1
0
static gboolean
spun_cb_idle( gpointer spin )
{
    gboolean                keep_waiting = TRUE;
    GObject *               o = G_OBJECT( spin );
    struct spin_idle_data * data = g_object_get_data( o, IDLE_DATA );

    /* has the user stopped making changes? */
    if( g_timer_elapsed( data->last_change, NULL ) > 0.33f )
    {
        /* update the core */
        const char * key = g_object_get_data( o, PREF_KEY );
        if (data->isDouble)
        {
            const double value = gtk_spin_button_get_value( GTK_SPIN_BUTTON( spin ) );
            tr_core_set_pref_double( TR_CORE( data->core ), key, value );
        }
        else
        {
            const int    value = gtk_spin_button_get_value_as_int(
                                 GTK_SPIN_BUTTON( spin ) );
            tr_core_set_pref_int( TR_CORE( data->core ), key, value );
        }

        /* cleanup */
        g_object_set_data( o, IDLE_DATA, NULL );
        keep_waiting = FALSE;
        g_object_unref( G_OBJECT( o ) );
    }

    return keep_waiting;
}
示例#2
0
static void
level_combo_changed_cb( GtkComboBox * combo_box, gpointer gdata )
{
    struct MsgData * data = gdata;
    const int level = gtr_combo_box_get_active_enum( combo_box );

    tr_setMessageLevel( level );
    tr_core_set_pref_int( data->core, TR_PREFS_KEY_MSGLEVEL, level );
    data->maxLevel = level;
    gtk_tree_model_filter_refilter( GTK_TREE_MODEL_FILTER( data->filter ) );
}