From ad1063e4c1c63985964134d4362649741e44dcab Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Juan=20R=2E=20Garc=C3=ADa=20Blanco?= <juanrgar@gmail.com>
Date: Sun, 6 Apr 2014 13:47:13 +0200
Subject: [PATCH] Add Gtk::FlowBox book example

---
 examples/Makefile.am                   |   6 +
 examples/book/flowbox/examplewindow.cc | 769 +++++++++++++++++++++++++++++++++
 examples/book/flowbox/examplewindow.h  |  51 +++
 examples/book/flowbox/main.cc          |  28 ++
 4 files changed, 854 insertions(+)
 create mode 100644 examples/book/flowbox/examplewindow.cc
 create mode 100644 examples/book/flowbox/examplewindow.h
 create mode 100644 examples/book/flowbox/main.cc

diff --git a/examples/Makefile.am b/examples/Makefile.am
index 31ae157..fe89ad8 100644
--- a/examples/Makefile.am
+++ b/examples/Makefile.am
@@ -53,6 +53,7 @@ check_PROGRAMS =					\
 	book/entry/simple/example			\
 	book/eventbox/example				\
 	book/expander/example				\
+	book/flowbox/example				\
 	book/frame/example				\
 	book/giomm/directory_list/example		\
 	book/giomm/getline/getline			\
@@ -388,6 +389,11 @@ book_expander_example_SOURCES =		\
 	book/expander/examplewindow.h	\
 	book/expander/main.cc
 
+book_flowbox_example_SOURCES =		\
+	book/flowbox/examplewindow.cc	\
+	book/flowbox/examplewindow.h	\
+	book/flowbox/main.cc
+
 book_frame_example_SOURCES =		\
 	book/frame/examplewindow.cc	\
 	book/frame/examplewindow.h	\
diff --git a/examples/book/flowbox/examplewindow.cc b/examples/book/flowbox/examplewindow.cc
new file mode 100644
index 0000000..8c14311
--- /dev/null
+++ b/examples/book/flowbox/examplewindow.cc
@@ -0,0 +1,769 @@
+/* gtkmm example Copyright (C) 2013 gtkmm development team
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include "examplewindow.h"
+
+ExampleWindow::ExampleWindow()
+: m_children_per_line_label("Max. children per line"),
+  m_box(Gtk::ORIENTATION_HORIZONTAL)
+{
+  // Window properties
+  set_title("FlowBox Example");
+  set_default_size(600, 400);
+  set_border_width(6);
+
+  // Scrolled window
+  m_scrolled_window.set_policy(Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC);
+
+  // Flow box
+  m_flow_box.set_max_children_per_line(30);
+  m_flow_box.set_selection_mode(Gtk::SELECTION_NONE);
+  m_flow_box.set_homogeneous();
+
+  // Add children
+  for (int i(0); i != N_COLORS; ++i)
+  {
+    configure_color_swatch(i);
+    m_flow_box.add(m_color_swatch[i]);
+  }
+
+  // Controls
+  m_controls.set_column_spacing(6);
+  m_controls.set_row_spacing(6);
+  m_controls.attach(m_children_per_line_label, 0, 0, 1, 1);
+  m_controls.attach(m_children_per_line_spin, 1, 0, 1, 1);
+
+  // Children per line
+  m_children_per_line_label.set_alignment(1.0, 0.5);
+  m_children_per_line_spin.set_digits(0);
+  m_children_per_line_spin.set_increments(1, 10);
+  m_children_per_line_spin.set_range(0, 40);
+  m_children_per_line_spin.set_value(30);
+  m_children_per_line_spin.signal_value_changed().connect(sigc::mem_fun(*this, &ExampleWindow::on_children_per_line_changed));
+
+  // Layout
+  m_box.set_spacing(6);
+  m_scrolled_window.add(m_flow_box);
+  m_box.pack_start(m_controls, Gtk::PACK_EXPAND_PADDING, 0);
+  m_box.pack_end(m_scrolled_window, Gtk::PACK_EXPAND_WIDGET, 0);
+  add(m_box);
+
+  show_all_children();
+}
+
+ExampleWindow::~ExampleWindow()
+{
+}
+
+void ExampleWindow::on_children_per_line_changed()
+{
+  int children_per_line = m_children_per_line_spin.get_value_as_int();
+  m_flow_box.set_max_children_per_line(children_per_line);
+}
+
+void ExampleWindow::configure_color_swatch(int swatch_i)
+{
+const char *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"
+};
+
+  Gdk::RGBA rgba(colors[swatch_i]);
+  m_color_drawing_area[swatch_i].set_size_request(24, 24);
+  m_color_drawing_area[swatch_i].override_background_color(rgba);
+  m_color_swatch[swatch_i].add(m_color_drawing_area[swatch_i]);
+}
+
+//GtkWidget*
+//color_swatch_new (const gchar *color)
+//{
+//  GtkWidget *button, *area;
+//  GdkRGBA rgba;
+//
+//  gdk_rgba_parse (&rgba, color);
+//
+//  button = gtk_button_new ();
+//  area = gtk_drawing_area_new ();
+//  gtk_widget_set_size_request (area, 24, 24);
+//  gtk_widget_override_background_color (area, 0, &rgba);
+//  gtk_container_add (GTK_CONTAINER (button), area);
+//  gtk_widget_show_all (button);
+//
+//  return button;
+//}
diff --git a/examples/book/flowbox/examplewindow.h b/examples/book/flowbox/examplewindow.h
new file mode 100644
index 0000000..433dc6d
--- /dev/null
+++ b/examples/book/flowbox/examplewindow.h
@@ -0,0 +1,51 @@
+/* gtkmm example Copyright (C) 2013 gtkmm development team
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#ifndef GTKMM_EXAMPLEWINDOW_H
+#define GTKMM_EXAMPLEWINDOW_H
+
+#include <gtkmm.h>
+
+class ExampleWindow : public Gtk::Window
+{
+  // Number of colors
+  static const int N_COLORS = 665;
+
+public:
+  ExampleWindow();
+  virtual ~ExampleWindow();
+
+protected:
+  // Slots
+  void on_children_per_line_changed();
+
+  // Widgets
+  Gtk::Button m_color_swatch[N_COLORS];
+  Gtk::DrawingArea m_color_drawing_area[N_COLORS];
+  Gtk::Label m_children_per_line_label;
+  Gtk::SpinButton m_children_per_line_spin;
+
+  // Containers
+  Gtk::Box m_box;
+  Gtk::Grid m_controls;
+  Gtk::ScrolledWindow m_scrolled_window;
+  Gtk::FlowBox m_flow_box;
+
+private:
+  void configure_color_swatch(int swatch_i);
+};
+
+#endif // GTKMM_EXAMPLEWINDOW_H
diff --git a/examples/book/flowbox/main.cc b/examples/book/flowbox/main.cc
new file mode 100644
index 0000000..3d09f02
--- /dev/null
+++ b/examples/book/flowbox/main.cc
@@ -0,0 +1,28 @@
+/* gtkmm example Copyright (C) 2013 gtkmm development team
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include "examplewindow.h"
+#include <gtkmm/application.h>
+
+int main(int argc, char *argv[])
+{
+  Glib::RefPtr<Gtk::Application> app = Gtk::Application::create(argc, argv, "org.gtkmm.example.flowbox");
+
+  ExampleWindow window;
+
+  // Shows the window and returns when it is closed.
+  return app->run(window);
+}
-- 
1.9.1

