示例#1
0
/* Retrieve the currently selected color value. */
int
clip_GTK_COLORSELECTIONGETCOLOR(ClipMachine * ClipMachineMemory)
{
   C_widget *ccsel = _fetch_cw_arg(ClipMachineMemory);

   GtkColorSelection *colorsel;

   ClipVar   mcolor;

   gdouble   color[4];

   CHECKCWID(ccsel, GTK_IS_COLOR_SELECTION);
   colorsel = GTK_COLOR_SELECTION(ccsel->widget);
   gtk_color_selection_get_color(GTK_COLOR_SELECTION(ccsel->widget), color);
   color[0] *= CLIP_GTK_MAX_COLOR;
   color[1] *= CLIP_GTK_MAX_COLOR;
   color[2] *= CLIP_GTK_MAX_COLOR;
   memset(&mcolor, 0, sizeof(mcolor));
   _clip_map(ClipMachineMemory, &mcolor);
   _map_put_colors(ClipMachineMemory, &mcolor, color);
   _clip_mclone(ClipMachineMemory, RETPTR(ClipMachineMemory), &mcolor);
   return 0;
 err:
   return 1;
}
示例#2
0
/* Sets the color in the GtkColorSelection. The widgets are updated to
 * reflect the new color. */
int
clip_GTK_COLORSELECTIONSETCOLOR(ClipMachine * ClipMachineMemory)
{
   C_widget *ccsel = _fetch_cw_arg(ClipMachineMemory);

   ClipVar  *mcolor = _clip_spar(ClipMachineMemory, 2);

   gdouble   color[4];

   gdouble   k, max;

   CHECKCWID(ccsel, GTK_IS_COLOR_SELECTION);
   CHECKOPT(2, MAP_type_of_ClipVarType);
   if (_clip_parinfo(ClipMachineMemory, 2) == UNDEF_type_of_ClipVarType)
      gtk_color_selection_get_color(GTK_COLOR_SELECTION(ccsel->widget), color);
   else
      _map_get_colors(ClipMachineMemory, mcolor, color);
   color[0] = color[0] > 0 ? color[0] : 1;
   color[1] = color[1] > 0 ? color[1] : 1;
   color[2] = color[2] > 0 ? color[2] : 1;
   max = color[0] > color[1] ? color[0] : color[1];
   max = max > color[2] ? max : color[2];
   max = max > 0 ? max : 1;
   k = 1 / max;
   color[0] *= k;
   color[1] *= k;
   color[2] *= k;
   gtk_color_selection_set_color(GTK_COLOR_SELECTION(ccsel->widget), color);
   return 0;
 err:
   return 1;
}
示例#3
0
static void color_changed(GtkWidget *w, gpointer data)
{
	gdouble color[3]; 
	gtk_color_selection_get_color(GTK_COLOR_SELECTION(options_colorpicker), color);
	bscope_cfg.color = ((guint32)(255.0*color[0])<<16) |
		              ((guint32)(255.0*color[1])<<8) |
		              ((guint32)(255.0*color[2]));
	generate_cmap();
}
示例#4
0
void color_changed(GtkWidget *w, GtkColorSelection *colorsel) {
	gdouble color[3];

	gtk_color_selection_get_color(colorsel, color);

	if(curr_obj < 0) quick_message("No object selected.");
	aw_object[curr_obj].color[0] = color[0];
	aw_object[curr_obj].color[1] = color[1];
	aw_object[curr_obj].color[2] = color[2];
	aw_object[curr_obj].object_changed = TRUE;

	gl_redraw_all();
}
示例#5
0
文件: conf.c 项目: erikg/bmud
void
update_color (GtkWidget * crap)
{
    gdouble c[3] = { 0, 0, 0 };
    GdkColor *confcol;

    confcol = current;

    gtk_color_selection_get_color (GTK_COLOR_SELECTION (blah), c);

    confcol->red = 65535 * c[0];
    confcol->green = 65535 * c[1];
    confcol->blue = 65535 * c[2];

    return;
}
示例#6
0
文件: tools.c 项目: dimkr/beaver
void insert_color (GtkColorSelection *csd)
{
  gdouble Color[3];
  gint CurrentPage, Position;
  gchar *ColorString;

  CurrentPage = gtk_notebook_get_current_page (GTK_NOTEBOOK(MainNotebook));
  if ((!OpenedFilesCnt) || FPROPS(CurrentPage, ReadOnly))
    return;
  gtk_color_selection_get_color (csd, Color);
  ColorString = g_strdup_printf ("%02x%02x%02x",
				 (guint)(255 * Color[0]),
				 (guint)(255 * Color[1]),
				 (guint)(255 * Color[2]));
  gtk_editable_delete_selection
    (GTK_EDITABLE(FPROPS(CurrentPage, Text)));
  gtk_editable_insert_text (GTK_EDITABLE(FPROPS(CurrentPage, Text)),
			    ColorString, 6, &Position);
  print_msg ("Insert Color...");
}
示例#7
0
static int DoColor( COLORREF *c ){
	GtkWidget* dlg;
	double clr[3];
	int loop = 1, ret = IDCANCEL;

	clr[0] = ( (double)GetRValue( *c ) ) / 255.0;
	clr[1] = ( (double)GetGValue( *c ) ) / 255.0;
	clr[2] = ( (double)GetBValue( *c ) ) / 255.0;

	dlg = gtk_color_selection_dialog_new( "Choose Color" );
	gtk_color_selection_set_color( GTK_COLOR_SELECTION( GTK_COLOR_SELECTION_DIALOG( dlg )->colorsel ), clr );
	gtk_signal_connect( GTK_OBJECT( dlg ), "delete_event",
						GTK_SIGNAL_FUNC( dialog_delete_callback ), NULL );
	gtk_signal_connect( GTK_OBJECT( dlg ), "destroy",
						GTK_SIGNAL_FUNC( gtk_widget_destroy ), NULL );
	gtk_signal_connect( GTK_OBJECT( GTK_COLOR_SELECTION_DIALOG( dlg )->ok_button ), "clicked",
						GTK_SIGNAL_FUNC( dialog_button_callback ), GINT_TO_POINTER( IDOK ) );
	gtk_signal_connect( GTK_OBJECT( GTK_COLOR_SELECTION_DIALOG( dlg )->cancel_button ), "clicked",
						GTK_SIGNAL_FUNC( dialog_button_callback ), GINT_TO_POINTER( IDCANCEL ) );
	g_object_set_data( G_OBJECT( dlg ), "loop", &loop );
	g_object_set_data( G_OBJECT( dlg ), "ret", &ret );

	gtk_widget_show( dlg );
	gtk_grab_add( dlg );

	while ( loop )
		gtk_main_iteration();

	gtk_color_selection_get_color( GTK_COLOR_SELECTION( GTK_COLOR_SELECTION_DIALOG( dlg )->colorsel ), clr );

	gtk_grab_remove( dlg );
	gtk_widget_destroy( dlg );

	if ( ret == IDOK ) {
		*c = RGB( clr[0] * 255, clr[1] * 255, clr[2] * 255 );
	}

	return ret;
}
示例#8
0
/*
 * Apply colour changes and close window.
 */
static int colour_dialog_ok (GtkButton *button, gpointer user_data)
{
  GtkWidget *colour_dialog = user_data;
  char tmp_colour[8];
  double colour[4];

  DEBUG("colour_dialog_ok");
  assert (GTK_IS_COLOR_SELECTION_DIALOG (colour_dialog));

  gtk_color_selection_get_color
    (GTK_COLOR_SELECTION (GTK_COLOR_SELECTION_DIALOG
			  (colour_dialog)->colorsel), colour);

  sprintf (tmp_colour, "#%2.2x%2.2x%2.2x",
	   (int)(colour[0] * 255), (int)(colour[1] * 255),(int)(colour[2] * 255));

  gtk_entry_set_text (GTK_ENTRY (colour_entry), tmp_colour);

  gtk_widget_destroy (colour_dialog);

  return 0;
}
示例#9
0
static void configure_ok(GtkWidget *w, gpointer data)
{
	ConfigFile *cfg;	
	gchar *filename;
	gdouble color[3]; 
	
	
	
	filename = g_strconcat(g_get_home_dir(), "/.xmms/config", NULL);
	cfg = xmms_cfg_open_file(filename);
	if (!cfg)
		cfg = xmms_cfg_new();
	gtk_color_selection_get_color(GTK_COLOR_SELECTION(options_colorpicker), color);
	bscope_cfg.color = ((guint32)(255.0*color[0])<<16) |
		              ((guint32)(255.0*color[1])<<8) |
		              ((guint32)(255.0*color[2])); 
	xmms_cfg_write_int(cfg, "BlurScope", "color", bscope_cfg.color);
	xmms_cfg_write_file(cfg, filename);
	xmms_cfg_free(cfg);
	g_free(filename);
	generate_cmap();
	gtk_widget_destroy(configure_win);
}