示例#1
0
文件: tslider.c 项目: DINKIN/nip2
/* from/to/value have changed ... update the widgets.
 */
static void
tslider_real_changed( Tslider *tslider )
{
	GtkAdjustment *adj = tslider->adj;
	GtkWidget *entry = tslider->entry;

#ifdef DEBUG
	printf( "tslider_real_changed: %p, val = %g\n", 
		tslider, tslider->value );
#endif /*DEBUG*/

	if( tslider->auto_link ) 
		tslider->svalue = tslider_value_to_slider( tslider, 
			tslider->value );

	gtk_signal_handler_block_by_data( GTK_OBJECT( adj ), tslider );
	gtk_signal_handler_block_by_data( GTK_OBJECT( entry ), tslider );

	/* Some libc's hate out-of-bounds precision, so clip, just in case.
	 */
	set_gentry( tslider->entry, "%.*f", 
		IM_CLIP( 0, tslider->digits, 100 ), tslider->value );
	gtk_scale_set_digits( GTK_SCALE( tslider->slider ), tslider->digits );

	if( !DEQ( tslider->from, tslider->last_from ) || 
		!DEQ( tslider->to, tslider->last_to ) ) {
		double range = tslider->to - tslider->from;

		adj->step_increment = range / 100;
		adj->page_increment = range / 10;
		adj->page_size = range / 10;

		adj->lower = tslider->from;
		adj->upper = tslider->to + adj->page_size;

		tslider->last_to = tslider->to;
		tslider->last_from = tslider->from;

		gtk_adjustment_changed( adj );
	}

	if( !DEQ( tslider->svalue, tslider->last_svalue ) ) {
		adj->value = tslider->svalue;
		tslider->last_svalue = tslider->svalue;

		gtk_adjustment_value_changed( adj );
	}

	gtk_signal_handler_unblock_by_data( GTK_OBJECT( adj ), tslider );
	gtk_signal_handler_unblock_by_data( GTK_OBJECT( entry ), tslider );
}
static void
gradient_select_list_item_update (GtkWidget      *widget, 
				  gint            row,
				  gint            column,
				  GdkEventButton *event,
				  gpointer        data)
{
  GradientSelect *gsp;
  GSList *list;

  gsp  = (GradientSelect *) data;
  list = g_slist_nth (gradients_list, row);

  gtk_signal_handler_block_by_data (GTK_OBJECT (gsp->context), gsp);
  /*
  gimp_context_set_gradient (gsp->context, (gradient_t *) list->data);
  */
  gtk_signal_handler_unblock_by_data (GTK_OBJECT (gsp->context), gsp);

  gsp->dnd_gradient = (gradient_t *) list->data;
  /*
  if (gsp->callback_name)
    gradient_change_callbacks (gsp, FALSE);
  */
}
示例#3
0
static void
entry_notify_func(GConfClient* client, guint cnxn_id,
                  GConfEntry *gconf_entry,
                  gpointer user_data)
{
  GtkWidget* entry = user_data;
  
  g_return_if_fail(GTK_IS_ENTRY(entry));

  gtk_signal_handler_block_by_data(GTK_OBJECT(entry), client);
  gtk_entry_set_text(GTK_ENTRY(entry),
                     gconf_value_get_string(gconf_entry->value));
  gtk_signal_handler_unblock_by_data(GTK_OBJECT(entry), client);
}
static void
gradient_select_select (GradientSelect *gsp,
			gradient_t     *gradient)
{
  gint index;

  index = gradient_list_get_gradient_index (gradients_list, gradient);

  if (index != -1)
    {
      gtk_signal_handler_block_by_data (GTK_OBJECT (gsp->clist), gsp);

      gtk_clist_select_row (GTK_CLIST (gsp->clist), index, -1);
      gtk_clist_moveto (GTK_CLIST (gsp->clist), index, 0, 0.5, 0.0);

      gtk_signal_handler_unblock_by_data (GTK_OBJECT (gsp->clist), gsp);
    }
}