Overriding the background color for a color swatch is wrong. The color is not the background, it's the foreground, so it should be painted in a draw signal handler.
		
			
				
	
	
		
			757 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			757 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* Flow Box
 | 
						|
 *
 | 
						|
 * GtkFlowBox allows flexible and responsive grids which reflow
 | 
						|
 * as needed and support sorting and filtering.
 | 
						|
 *
 | 
						|
 * The children of a GtkFlowBox are regular widgets
 | 
						|
 */
 | 
						|
 | 
						|
#include <gtk/gtk.h>
 | 
						|
#include <stdlib.h>
 | 
						|
#include <string.h>
 | 
						|
 | 
						|
static GtkWidget *window = NULL;
 | 
						|
 | 
						|
static gboolean
 | 
						|
draw_color (GtkWidget  *drawingarea,
 | 
						|
            cairo_t    *cr,
 | 
						|
            const char *color_name)
 | 
						|
{
 | 
						|
  GdkRGBA rgba;
 | 
						|
 | 
						|
  if (gdk_rgba_parse (&rgba, color_name))
 | 
						|
    {
 | 
						|
      gdk_cairo_set_source_rgba (cr, &rgba);
 | 
						|
      cairo_paint (cr);
 | 
						|
    }
 | 
						|
 | 
						|
  return FALSE;
 | 
						|
}
 | 
						|
 | 
						|
static GtkWidget *
 | 
						|
color_swatch_new (const gchar *color)
 | 
						|
{
 | 
						|
  GtkWidget *button, *area;
 | 
						|
 | 
						|
  button = gtk_button_new ();
 | 
						|
  area = gtk_drawing_area_new ();
 | 
						|
  g_signal_connect (area, "draw", G_CALLBACK (draw_color), (gpointer) color);
 | 
						|
  gtk_widget_set_size_request (area, 24, 24);
 | 
						|
  gtk_container_add (GTK_CONTAINER (button), area);
 | 
						|
  gtk_widget_show_all (button);
 | 
						|
 | 
						|
  return button;
 | 
						|
}
 | 
						|
 | 
						|
GtkWidget *
 | 
						|
do_flowbox (GtkWidget *do_widget)
 | 
						|
{
 | 
						|
  GtkWidget *scrolled, *flowbox;
 | 
						|
  const gchar *colors[] = {
 | 
						|
    "AliceBlue",
 | 
						|
    "AntiqueWhite",
 | 
						|
    "AntiqueWhite1",
 | 
						|
    "AntiqueWhite2",
 | 
						|
    "AntiqueWhite3",
 | 
						|
    "AntiqueWhite4",
 | 
						|
    "aqua",
 | 
						|
    "aquamarine",
 | 
						|
    "aquamarine1",
 | 
						|
    "aquamarine2",
 | 
						|
    "aquamarine3",
 | 
						|
    "aquamarine4",
 | 
						|
    "azure",
 | 
						|
    "azure1",
 | 
						|
    "azure2",
 | 
						|
    "azure3",
 | 
						|
    "azure4",
 | 
						|
    "beige",
 | 
						|
    "bisque",
 | 
						|
    "bisque1",
 | 
						|
    "bisque2",
 | 
						|
    "bisque3",
 | 
						|
    "bisque4",
 | 
						|
    "black",
 | 
						|
    "BlanchedAlmond",
 | 
						|
    "blue",
 | 
						|
    "blue1",
 | 
						|
    "blue2",
 | 
						|
    "blue3",
 | 
						|
    "blue4",
 | 
						|
    "BlueViolet",
 | 
						|
    "brown",
 | 
						|
    "brown1",
 | 
						|
    "brown2",
 | 
						|
    "brown3",
 | 
						|
    "brown4",
 | 
						|
    "burlywood",
 | 
						|
    "burlywood1",
 | 
						|
    "burlywood2",
 | 
						|
    "burlywood3",
 | 
						|
    "burlywood4",
 | 
						|
    "CadetBlue",
 | 
						|
    "CadetBlue1",
 | 
						|
    "CadetBlue2",
 | 
						|
    "CadetBlue3",
 | 
						|
    "CadetBlue4",
 | 
						|
    "chartreuse",
 | 
						|
    "chartreuse1",
 | 
						|
    "chartreuse2",
 | 
						|
    "chartreuse3",
 | 
						|
    "chartreuse4",
 | 
						|
    "chocolate",
 | 
						|
    "chocolate1",
 | 
						|
    "chocolate2",
 | 
						|
    "chocolate3",
 | 
						|
    "chocolate4",
 | 
						|
    "coral",
 | 
						|
    "coral1",
 | 
						|
    "coral2",
 | 
						|
    "coral3",
 | 
						|
    "coral4",
 | 
						|
    "CornflowerBlue",
 | 
						|
    "cornsilk",
 | 
						|
    "cornsilk1",
 | 
						|
    "cornsilk2",
 | 
						|
    "cornsilk3",
 | 
						|
    "cornsilk4",
 | 
						|
    "crimson",
 | 
						|
    "cyan",
 | 
						|
    "cyan1",
 | 
						|
    "cyan2",
 | 
						|
    "cyan3",
 | 
						|
    "cyan4",
 | 
						|
    "DarkBlue",
 | 
						|
    "DarkCyan",
 | 
						|
    "DarkGoldenrod",
 | 
						|
    "DarkGoldenrod1",
 | 
						|
    "DarkGoldenrod2",
 | 
						|
    "DarkGoldenrod3",
 | 
						|
    "DarkGoldenrod4",
 | 
						|
    "DarkGray",
 | 
						|
    "DarkGreen",
 | 
						|
    "DarkGrey",
 | 
						|
    "DarkKhaki",
 | 
						|
    "DarkMagenta",
 | 
						|
    "DarkOliveGreen",
 | 
						|
    "DarkOliveGreen1",
 | 
						|
    "DarkOliveGreen2",
 | 
						|
    "DarkOliveGreen3",
 | 
						|
    "DarkOliveGreen4",
 | 
						|
    "DarkOrange",
 | 
						|
    "DarkOrange1",
 | 
						|
    "DarkOrange2",
 | 
						|
    "DarkOrange3",
 | 
						|
    "DarkOrange4",
 | 
						|
    "DarkOrchid",
 | 
						|
    "DarkOrchid1",
 | 
						|
    "DarkOrchid2",
 | 
						|
    "DarkOrchid3",
 | 
						|
    "DarkOrchid4",
 | 
						|
    "DarkRed",
 | 
						|
    "DarkSalmon",
 | 
						|
    "DarkSeaGreen",
 | 
						|
    "DarkSeaGreen1",
 | 
						|
    "DarkSeaGreen2",
 | 
						|
    "DarkSeaGreen3",
 | 
						|
    "DarkSeaGreen4",
 | 
						|
    "DarkSlateBlue",
 | 
						|
    "DarkSlateGray",
 | 
						|
    "DarkSlateGray1",
 | 
						|
    "DarkSlateGray2",
 | 
						|
    "DarkSlateGray3",
 | 
						|
    "DarkSlateGray4",
 | 
						|
    "DarkSlateGrey",
 | 
						|
    "DarkTurquoise",
 | 
						|
    "DarkViolet",
 | 
						|
    "DeepPink",
 | 
						|
    "DeepPink1",
 | 
						|
    "DeepPink2",
 | 
						|
    "DeepPink3",
 | 
						|
    "DeepPink4",
 | 
						|
    "DeepSkyBlue",
 | 
						|
    "DeepSkyBlue1",
 | 
						|
    "DeepSkyBlue2",
 | 
						|
    "DeepSkyBlue3",
 | 
						|
    "DeepSkyBlue4",
 | 
						|
    "DimGray",
 | 
						|
    "DimGrey",
 | 
						|
    "DodgerBlue",
 | 
						|
    "DodgerBlue1",
 | 
						|
    "DodgerBlue2",
 | 
						|
    "DodgerBlue3",
 | 
						|
    "DodgerBlue4",
 | 
						|
    "firebrick",
 | 
						|
    "firebrick1",
 | 
						|
    "firebrick2",
 | 
						|
    "firebrick3",
 | 
						|
    "firebrick4",
 | 
						|
    "FloralWhite",
 | 
						|
    "ForestGreen",
 | 
						|
    "fuchsia",
 | 
						|
    "gainsboro",
 | 
						|
    "GhostWhite",
 | 
						|
    "gold",
 | 
						|
    "gold1",
 | 
						|
    "gold2",
 | 
						|
    "gold3",
 | 
						|
    "gold4",
 | 
						|
    "goldenrod",
 | 
						|
    "goldenrod1",
 | 
						|
    "goldenrod2",
 | 
						|
    "goldenrod3",
 | 
						|
    "goldenrod4",
 | 
						|
    "gray",
 | 
						|
    "gray0",
 | 
						|
    "gray1",
 | 
						|
    "gray10",
 | 
						|
    "gray100",
 | 
						|
    "gray11",
 | 
						|
    "gray12",
 | 
						|
    "gray13",
 | 
						|
    "gray14",
 | 
						|
    "gray15",
 | 
						|
    "gray16",
 | 
						|
    "gray17",
 | 
						|
    "gray18",
 | 
						|
    "gray19",
 | 
						|
    "gray2",
 | 
						|
    "gray20",
 | 
						|
    "gray21",
 | 
						|
    "gray22",
 | 
						|
    "gray23",
 | 
						|
    "gray24",
 | 
						|
    "gray25",
 | 
						|
    "gray26",
 | 
						|
    "gray27",
 | 
						|
    "gray28",
 | 
						|
    "gray29",
 | 
						|
    "gray3",
 | 
						|
    "gray30",
 | 
						|
    "gray31",
 | 
						|
    "gray32",
 | 
						|
    "gray33",
 | 
						|
    "gray34",
 | 
						|
    "gray35",
 | 
						|
    "gray36",
 | 
						|
    "gray37",
 | 
						|
    "gray38",
 | 
						|
    "gray39",
 | 
						|
    "gray4",
 | 
						|
    "gray40",
 | 
						|
    "gray41",
 | 
						|
    "gray42",
 | 
						|
    "gray43",
 | 
						|
    "gray44",
 | 
						|
    "gray45",
 | 
						|
    "gray46",
 | 
						|
    "gray47",
 | 
						|
    "gray48",
 | 
						|
    "gray49",
 | 
						|
    "gray5",
 | 
						|
    "gray50",
 | 
						|
    "gray51",
 | 
						|
    "gray52",
 | 
						|
    "gray53",
 | 
						|
    "gray54",
 | 
						|
    "gray55",
 | 
						|
    "gray56",
 | 
						|
    "gray57",
 | 
						|
    "gray58",
 | 
						|
    "gray59",
 | 
						|
    "gray6",
 | 
						|
    "gray60",
 | 
						|
    "gray61",
 | 
						|
    "gray62",
 | 
						|
    "gray63",
 | 
						|
    "gray64",
 | 
						|
    "gray65",
 | 
						|
    "gray66",
 | 
						|
    "gray67",
 | 
						|
    "gray68",
 | 
						|
    "gray69",
 | 
						|
    "gray7",
 | 
						|
    "gray70",
 | 
						|
    "gray71",
 | 
						|
    "gray72",
 | 
						|
    "gray73",
 | 
						|
    "gray74",
 | 
						|
    "gray75",
 | 
						|
    "gray76",
 | 
						|
    "gray77",
 | 
						|
    "gray78",
 | 
						|
    "gray79",
 | 
						|
    "gray8",
 | 
						|
    "gray80",
 | 
						|
    "gray81",
 | 
						|
    "gray82",
 | 
						|
    "gray83",
 | 
						|
    "gray84",
 | 
						|
    "gray85",
 | 
						|
    "gray86",
 | 
						|
    "gray87",
 | 
						|
    "gray88",
 | 
						|
    "gray89",
 | 
						|
    "gray9",
 | 
						|
    "gray90",
 | 
						|
    "gray91",
 | 
						|
    "gray92",
 | 
						|
    "gray93",
 | 
						|
    "gray94",
 | 
						|
    "gray95",
 | 
						|
    "gray96",
 | 
						|
    "gray97",
 | 
						|
    "gray98",
 | 
						|
    "gray99",
 | 
						|
    "green",
 | 
						|
    "green1",
 | 
						|
    "green2",
 | 
						|
    "green3",
 | 
						|
    "green4",
 | 
						|
    "GreenYellow",
 | 
						|
    "grey",
 | 
						|
    "grey0",
 | 
						|
    "grey1",
 | 
						|
    "grey10",
 | 
						|
    "grey100",
 | 
						|
    "grey11",
 | 
						|
    "grey12",
 | 
						|
    "grey13",
 | 
						|
    "grey14",
 | 
						|
    "grey15",
 | 
						|
    "grey16",
 | 
						|
    "grey17",
 | 
						|
    "grey18",
 | 
						|
    "grey19",
 | 
						|
    "grey2",
 | 
						|
    "grey20",
 | 
						|
    "grey21",
 | 
						|
    "grey22",
 | 
						|
    "grey23",
 | 
						|
    "grey24",
 | 
						|
    "grey25",
 | 
						|
    "grey26",
 | 
						|
    "grey27",
 | 
						|
    "grey28",
 | 
						|
    "grey29",
 | 
						|
    "grey3",
 | 
						|
    "grey30",
 | 
						|
    "grey31",
 | 
						|
    "grey32",
 | 
						|
    "grey33",
 | 
						|
    "grey34",
 | 
						|
    "grey35",
 | 
						|
    "grey36",
 | 
						|
    "grey37",
 | 
						|
    "grey38",
 | 
						|
    "grey39",
 | 
						|
    "grey4",
 | 
						|
    "grey40",
 | 
						|
    "grey41",
 | 
						|
    "grey42",
 | 
						|
    "grey43",
 | 
						|
    "grey44",
 | 
						|
    "grey45",
 | 
						|
    "grey46",
 | 
						|
    "grey47",
 | 
						|
    "grey48",
 | 
						|
    "grey49",
 | 
						|
    "grey5",
 | 
						|
    "grey50",
 | 
						|
    "grey51",
 | 
						|
    "grey52",
 | 
						|
    "grey53",
 | 
						|
    "grey54",
 | 
						|
    "grey55",
 | 
						|
    "grey56",
 | 
						|
    "grey57",
 | 
						|
    "grey58",
 | 
						|
    "grey59",
 | 
						|
    "grey6",
 | 
						|
    "grey60",
 | 
						|
    "grey61",
 | 
						|
    "grey62",
 | 
						|
    "grey63",
 | 
						|
    "grey64",
 | 
						|
    "grey65",
 | 
						|
    "grey66",
 | 
						|
    "grey67",
 | 
						|
    "grey68",
 | 
						|
    "grey69",
 | 
						|
    "grey7",
 | 
						|
    "grey70",
 | 
						|
    "grey71",
 | 
						|
    "grey72",
 | 
						|
    "grey73",
 | 
						|
    "grey74",
 | 
						|
    "grey75",
 | 
						|
    "grey76",
 | 
						|
    "grey77",
 | 
						|
    "grey78",
 | 
						|
    "grey79",
 | 
						|
    "grey8",
 | 
						|
    "grey80",
 | 
						|
    "grey81",
 | 
						|
    "grey82",
 | 
						|
    "grey83",
 | 
						|
    "grey84",
 | 
						|
    "grey85",
 | 
						|
    "grey86",
 | 
						|
    "grey87",
 | 
						|
    "grey88",
 | 
						|
    "grey89",
 | 
						|
    "grey9",
 | 
						|
    "grey90",
 | 
						|
    "grey91",
 | 
						|
    "grey92",
 | 
						|
    "grey93",
 | 
						|
    "grey94",
 | 
						|
    "grey95",
 | 
						|
    "grey96",
 | 
						|
    "grey97",
 | 
						|
    "grey98",
 | 
						|
    "grey99",
 | 
						|
    "honeydew",
 | 
						|
    "honeydew1",
 | 
						|
    "honeydew2",
 | 
						|
    "honeydew3",
 | 
						|
    "honeydew4",
 | 
						|
    "HotPink",
 | 
						|
    "HotPink1",
 | 
						|
    "HotPink2",
 | 
						|
    "HotPink3",
 | 
						|
    "HotPink4",
 | 
						|
    "IndianRed",
 | 
						|
    "IndianRed1",
 | 
						|
    "IndianRed2",
 | 
						|
    "IndianRed3",
 | 
						|
    "IndianRed4",
 | 
						|
    "indigo",
 | 
						|
    "ivory",
 | 
						|
    "ivory1",
 | 
						|
    "ivory2",
 | 
						|
    "ivory3",
 | 
						|
    "ivory4",
 | 
						|
    "khaki",
 | 
						|
    "khaki1",
 | 
						|
    "khaki2",
 | 
						|
    "khaki3",
 | 
						|
    "khaki4",
 | 
						|
    "lavender",
 | 
						|
    "LavenderBlush",
 | 
						|
    "LavenderBlush1",
 | 
						|
    "LavenderBlush2",
 | 
						|
    "LavenderBlush3",
 | 
						|
    "LavenderBlush4",
 | 
						|
    "LawnGreen",
 | 
						|
    "LemonChiffon",
 | 
						|
    "LemonChiffon1",
 | 
						|
    "LemonChiffon2",
 | 
						|
    "LemonChiffon3",
 | 
						|
    "LemonChiffon4",
 | 
						|
    "LightBlue",
 | 
						|
    "LightBlue1",
 | 
						|
    "LightBlue2",
 | 
						|
    "LightBlue3",
 | 
						|
    "LightBlue4",
 | 
						|
    "LightCoral",
 | 
						|
    "LightCyan",
 | 
						|
    "LightCyan1",
 | 
						|
    "LightCyan2",
 | 
						|
    "LightCyan3",
 | 
						|
    "LightCyan4",
 | 
						|
    "LightGoldenrod",
 | 
						|
    "LightGoldenrod1",
 | 
						|
    "LightGoldenrod2",
 | 
						|
    "LightGoldenrod3",
 | 
						|
    "LightGoldenrod4",
 | 
						|
    "LightGoldenrodYellow",
 | 
						|
    "LightGray",
 | 
						|
    "LightGreen",
 | 
						|
    "LightGrey",
 | 
						|
    "LightPink",
 | 
						|
    "LightPink1",
 | 
						|
    "LightPink2",
 | 
						|
    "LightPink3",
 | 
						|
    "LightPink4",
 | 
						|
    "LightSalmon",
 | 
						|
    "LightSalmon1",
 | 
						|
    "LightSalmon2",
 | 
						|
    "LightSalmon3",
 | 
						|
    "LightSalmon4",
 | 
						|
    "LightSeaGreen",
 | 
						|
    "LightSkyBlue",
 | 
						|
    "LightSkyBlue1",
 | 
						|
    "LightSkyBlue2",
 | 
						|
    "LightSkyBlue3",
 | 
						|
    "LightSkyBlue4",
 | 
						|
    "LightSlateBlue",
 | 
						|
    "LightSlateGray",
 | 
						|
    "LightSlateGrey",
 | 
						|
    "LightSteelBlue",
 | 
						|
    "LightSteelBlue1",
 | 
						|
    "LightSteelBlue2",
 | 
						|
    "LightSteelBlue3",
 | 
						|
    "LightSteelBlue4",
 | 
						|
    "LightYellow",
 | 
						|
    "LightYellow1",
 | 
						|
    "LightYellow2",
 | 
						|
    "LightYellow3",
 | 
						|
    "LightYellow4",
 | 
						|
    "lime",
 | 
						|
    "LimeGreen",
 | 
						|
    "linen",
 | 
						|
    "magenta",
 | 
						|
    "magenta1",
 | 
						|
    "magenta2",
 | 
						|
    "magenta3",
 | 
						|
    "magenta4",
 | 
						|
    "maroon",
 | 
						|
    "maroon1",
 | 
						|
    "maroon2",
 | 
						|
    "maroon3",
 | 
						|
    "maroon4",
 | 
						|
    "MediumAquamarine",
 | 
						|
    "MediumBlue",
 | 
						|
    "MediumOrchid",
 | 
						|
    "MediumOrchid1",
 | 
						|
    "MediumOrchid2",
 | 
						|
    "MediumOrchid3",
 | 
						|
    "MediumOrchid4",
 | 
						|
    "MediumPurple",
 | 
						|
    "MediumPurple1",
 | 
						|
    "MediumPurple2",
 | 
						|
    "MediumPurple3",
 | 
						|
    "MediumPurple4",
 | 
						|
    "MediumSeaGreen",
 | 
						|
    "MediumSlateBlue",
 | 
						|
    "MediumSpringGreen",
 | 
						|
    "MediumTurquoise",
 | 
						|
    "MediumVioletRed",
 | 
						|
    "MidnightBlue",
 | 
						|
    "MintCream",
 | 
						|
    "MistyRose",
 | 
						|
    "MistyRose1",
 | 
						|
    "MistyRose2",
 | 
						|
    "MistyRose3",
 | 
						|
    "MistyRose4",
 | 
						|
    "moccasin",
 | 
						|
    "NavajoWhite",
 | 
						|
    "NavajoWhite1",
 | 
						|
    "NavajoWhite2",
 | 
						|
    "NavajoWhite3",
 | 
						|
    "NavajoWhite4",
 | 
						|
    "navy",
 | 
						|
    "NavyBlue",
 | 
						|
    "OldLace",
 | 
						|
    "olive",
 | 
						|
    "OliveDrab",
 | 
						|
    "OliveDrab1",
 | 
						|
    "OliveDrab2",
 | 
						|
    "OliveDrab3",
 | 
						|
    "OliveDrab4",
 | 
						|
    "orange",
 | 
						|
    "orange1",
 | 
						|
    "orange2",
 | 
						|
    "orange3",
 | 
						|
    "orange4",
 | 
						|
    "OrangeRed",
 | 
						|
    "OrangeRed1",
 | 
						|
    "OrangeRed2",
 | 
						|
    "OrangeRed3",
 | 
						|
    "OrangeRed4",
 | 
						|
    "orchid",
 | 
						|
    "orchid1",
 | 
						|
    "orchid2",
 | 
						|
    "orchid3",
 | 
						|
    "orchid4",
 | 
						|
    "PaleGoldenrod",
 | 
						|
    "PaleGreen",
 | 
						|
    "PaleGreen1",
 | 
						|
    "PaleGreen2",
 | 
						|
    "PaleGreen3",
 | 
						|
    "PaleGreen4",
 | 
						|
    "PaleTurquoise",
 | 
						|
    "PaleTurquoise1",
 | 
						|
    "PaleTurquoise2",
 | 
						|
    "PaleTurquoise3",
 | 
						|
    "PaleTurquoise4",
 | 
						|
    "PaleVioletRed",
 | 
						|
    "PaleVioletRed1",
 | 
						|
    "PaleVioletRed2",
 | 
						|
    "PaleVioletRed3",
 | 
						|
    "PaleVioletRed4",
 | 
						|
    "PapayaWhip",
 | 
						|
    "PeachPuff",
 | 
						|
    "PeachPuff1",
 | 
						|
    "PeachPuff2",
 | 
						|
    "PeachPuff3",
 | 
						|
    "PeachPuff4",
 | 
						|
    "peru",
 | 
						|
    "pink",
 | 
						|
    "pink1",
 | 
						|
    "pink2",
 | 
						|
    "pink3",
 | 
						|
    "pink4",
 | 
						|
    "plum",
 | 
						|
    "plum1",
 | 
						|
    "plum2",
 | 
						|
    "plum3",
 | 
						|
    "plum4",
 | 
						|
    "PowderBlue",
 | 
						|
    "purple",
 | 
						|
    "purple1",
 | 
						|
    "purple2",
 | 
						|
    "purple3",
 | 
						|
    "purple4",
 | 
						|
    "red",
 | 
						|
    "red1",
 | 
						|
    "red2",
 | 
						|
    "red3",
 | 
						|
    "red4",
 | 
						|
    "RosyBrown",
 | 
						|
    "RosyBrown1",
 | 
						|
    "RosyBrown2",
 | 
						|
    "RosyBrown3",
 | 
						|
    "RosyBrown4",
 | 
						|
    "RoyalBlue",
 | 
						|
    "RoyalBlue1",
 | 
						|
    "RoyalBlue2",
 | 
						|
    "RoyalBlue3",
 | 
						|
    "RoyalBlue4",
 | 
						|
    "SaddleBrown",
 | 
						|
    "salmon",
 | 
						|
    "salmon1",
 | 
						|
    "salmon2",
 | 
						|
    "salmon3",
 | 
						|
    "salmon4",
 | 
						|
    "SandyBrown",
 | 
						|
    "SeaGreen",
 | 
						|
    "SeaGreen1",
 | 
						|
    "SeaGreen2",
 | 
						|
    "SeaGreen3",
 | 
						|
    "SeaGreen4",
 | 
						|
    "seashell",
 | 
						|
    "seashell1",
 | 
						|
    "seashell2",
 | 
						|
    "seashell3",
 | 
						|
    "seashell4",
 | 
						|
    "sienna",
 | 
						|
    "sienna1",
 | 
						|
    "sienna2",
 | 
						|
    "sienna3",
 | 
						|
    "sienna4",
 | 
						|
    "silver",
 | 
						|
    "SkyBlue",
 | 
						|
    "SkyBlue1",
 | 
						|
    "SkyBlue2",
 | 
						|
    "SkyBlue3",
 | 
						|
    "SkyBlue4",
 | 
						|
    "SlateBlue",
 | 
						|
    "SlateBlue1",
 | 
						|
    "SlateBlue2",
 | 
						|
    "SlateBlue3",
 | 
						|
    "SlateBlue4",
 | 
						|
    "SlateGray",
 | 
						|
    "SlateGray1",
 | 
						|
    "SlateGray2",
 | 
						|
    "SlateGray3",
 | 
						|
    "SlateGray4",
 | 
						|
    "SlateGrey",
 | 
						|
    "snow",
 | 
						|
    "snow1",
 | 
						|
    "snow2",
 | 
						|
    "snow3",
 | 
						|
    "snow4",
 | 
						|
    "SpringGreen",
 | 
						|
    "SpringGreen1",
 | 
						|
    "SpringGreen2",
 | 
						|
    "SpringGreen3",
 | 
						|
    "SpringGreen4",
 | 
						|
    "SteelBlue",
 | 
						|
    "SteelBlue1",
 | 
						|
    "SteelBlue2",
 | 
						|
    "SteelBlue3",
 | 
						|
    "SteelBlue4",
 | 
						|
    "tan",
 | 
						|
    "tan1",
 | 
						|
    "tan2",
 | 
						|
    "tan3",
 | 
						|
    "tan4",
 | 
						|
    "teal",
 | 
						|
    "thistle",
 | 
						|
    "thistle1",
 | 
						|
    "thistle2",
 | 
						|
    "thistle3",
 | 
						|
    "thistle4",
 | 
						|
    "tomato",
 | 
						|
    "tomato1",
 | 
						|
    "tomato2",
 | 
						|
    "tomato3",
 | 
						|
    "tomato4",
 | 
						|
    "turquoise",
 | 
						|
    "turquoise1",
 | 
						|
    "turquoise2",
 | 
						|
    "turquoise3",
 | 
						|
    "turquoise4",
 | 
						|
    "violet",
 | 
						|
    "VioletRed",
 | 
						|
    "VioletRed1",
 | 
						|
    "VioletRed2",
 | 
						|
    "VioletRed3",
 | 
						|
    "VioletRed4",
 | 
						|
    "wheat",
 | 
						|
    "wheat1",
 | 
						|
    "wheat2",
 | 
						|
    "wheat3",
 | 
						|
    "wheat4",
 | 
						|
    "white",
 | 
						|
    "WhiteSmoke",
 | 
						|
    "yellow",
 | 
						|
    "yellow1",
 | 
						|
    "yellow2",
 | 
						|
    "yellow3",
 | 
						|
    "yellow4",
 | 
						|
    "YellowGreen",
 | 
						|
    NULL
 | 
						|
  };
 | 
						|
  gint i;
 | 
						|
 | 
						|
  if (!window)
 | 
						|
    {
 | 
						|
      window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
 | 
						|
      gtk_window_set_screen (GTK_WINDOW (window),
 | 
						|
                             gtk_widget_get_screen (do_widget));
 | 
						|
      gtk_window_set_title (GTK_WINDOW (window), "Flow Box");
 | 
						|
      gtk_window_set_default_size (GTK_WINDOW (window), 400, 600);
 | 
						|
 | 
						|
      g_signal_connect (window, "destroy",
 | 
						|
                        G_CALLBACK (gtk_widget_destroyed),
 | 
						|
                        &window);
 | 
						|
 | 
						|
      scrolled = gtk_scrolled_window_new (NULL, NULL);
 | 
						|
      gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
 | 
						|
      flowbox = gtk_flow_box_new ();
 | 
						|
      gtk_widget_set_valign (flowbox, GTK_ALIGN_START);
 | 
						|
      gtk_flow_box_set_max_children_per_line (GTK_FLOW_BOX (flowbox), 30);
 | 
						|
      gtk_flow_box_set_selection_mode (GTK_FLOW_BOX (flowbox), GTK_SELECTION_NONE);
 | 
						|
 | 
						|
      gtk_container_add (GTK_CONTAINER (scrolled), flowbox);
 | 
						|
      gtk_container_add (GTK_CONTAINER (window), scrolled);
 | 
						|
 | 
						|
      for (i = 0; colors[i]; i++)
 | 
						|
        {
 | 
						|
          gtk_container_add (GTK_CONTAINER (flowbox), color_swatch_new (colors[i]));
 | 
						|
        }
 | 
						|
 | 
						|
      gtk_widget_show_all (scrolled);
 | 
						|
    }
 | 
						|
 | 
						|
  if (!gtk_widget_get_visible (window))
 | 
						|
    gtk_widget_show (window);
 | 
						|
  else
 | 
						|
    gtk_widget_destroy (window);
 | 
						|
 | 
						|
  return window;
 | 
						|
}
 |