コード例 #1
0
ファイル: callbacks.c プロジェクト: khorben/DeforaOS
/* on_value_changed */
void on_value_changed(GtkWidget * widget, gpointer data)
{
	Mixer * mixer = data;
	gdouble value;

#ifdef DEBUG
	fprintf(stderr, "DEBUG: %s(%p, %lf, %p)\n", __func__, (void*)widget,
			value, (void*)data);
#endif
	value = gtk_range_get_value(GTK_RANGE(widget));
	mixer_set_value(mixer, widget, value);
}
コード例 #2
0
ファイル: layout.c プロジェクト: fengchihao/minipod
static void set_volume_slider(struct button *b,struct event *ev) 
{
    struct mixer_control *c = (struct mixer_control *)b->user_data;
    long off=ev->y-b->y;
    long range=c->max-c->min;

    long oldvol=mixer_get_value(c);
    long newvol=range- range*off/b->h;
    long set;
    printf("oldvol %d, newvol %d\n",oldvol,newvol);
    /* don't allow a misplaced key to send the volume to max 
     * in one step */
    if(newvol>oldvol) {
	set=oldvol+range/10;
	if(set==oldvol) set++;
	if(set>newvol) set=newvol;
    } else set = (newvol<0) ? 0 : newvol;
    mixer_set_value(c,set);
    render_volume_slider(b);
    return 0;
}