[gtkmm-documentation] Add Gtk::FlowBox book example
- From: Murray Cumming <murrayc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtkmm-documentation] Add Gtk::FlowBox book example
- Date: Wed, 9 Apr 2014 07:18:16 +0000 (UTC)
commit 02576f2c5e9cd5008965af4385fb5cd4088dabbf
Author: Juan R. GarcĂa Blanco <juanrgar gmail com>
Date: Sun Apr 6 13:47:13 2014 +0200
Add Gtk::FlowBox book example
examples/Makefile.am | 6 +
examples/book/flowbox/examplewindow.cc | 189 ++++++++++++++++++++++++++++++++
examples/book/flowbox/examplewindow.h | 48 ++++++++
examples/book/flowbox/main.cc | 28 +++++
4 files changed, 271 insertions(+), 0 deletions(-)
---
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..1debbef
--- /dev/null
+++ b/examples/book/flowbox/examplewindow.cc
@@ -0,0 +1,189 @@
+/* gtkmm example Copyright (C) 2014 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()
+{
+ // 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();
+
+ // Color swatches
+ fill_color_names();
+ for (int i(0); i != m_color_names.size(); ++i)
+ {
+ Gtk::Button* color_swatch = create_color_swatch(i);
+ m_flow_box.add(*color_swatch);
+ }
+
+ // Layout
+ m_scrolled_window.add(m_flow_box);
+ add(m_scrolled_window);
+
+ show_all_children();
+}
+
+ExampleWindow::~ExampleWindow()
+{
+ while(!m_color_swatches.empty())
+ {
+ Gtk::Button* color_swatch = m_color_swatches.back();
+ delete color_swatch;
+ m_color_swatches.pop_back();
+ }
+
+ while(!m_color_drawing_areas.empty())
+ {
+ Gtk::DrawingArea* drawing_area = m_color_drawing_areas.back();
+ delete drawing_area;
+ m_color_drawing_areas.pop_back();
+ }
+}
+
+Gtk::Button* ExampleWindow::create_color_swatch(int swatch_i)
+{
+ Gdk::RGBA rgba(m_color_names[swatch_i]);
+ Gtk::DrawingArea* drawing_area = new Gtk::DrawingArea();
+ Gtk::Button* color_swatch = new Gtk::Button();
+
+ m_color_drawing_areas.push_back(drawing_area);
+ m_color_swatches.push_back(color_swatch);
+
+ drawing_area->set_size_request(24, 24);
+ drawing_area->override_background_color(rgba);
+
+ color_swatch->add(*drawing_area);
+
+ return color_swatch;
+}
+
+void ExampleWindow::fill_color_names()
+{
+ m_color_names.push_back("AliceBlue");
+ m_color_names.push_back("AntiqueWhite");
+ m_color_names.push_back("AntiqueWhite1");
+ m_color_names.push_back("AntiqueWhite2");
+ m_color_names.push_back("AntiqueWhite3");
+ m_color_names.push_back("AntiqueWhite4");
+ m_color_names.push_back("aqua");
+ m_color_names.push_back("aquamarine");
+ m_color_names.push_back("aquamarine1");
+ m_color_names.push_back("aquamarine2");
+ m_color_names.push_back("aquamarine3");
+ m_color_names.push_back("aquamarine4");
+ m_color_names.push_back("azure");
+ m_color_names.push_back("azure1");
+ m_color_names.push_back("azure2");
+ m_color_names.push_back("azure3");
+ m_color_names.push_back("azure4");
+ m_color_names.push_back("beige");
+ m_color_names.push_back("bisque");
+ m_color_names.push_back("bisque1");
+ m_color_names.push_back("bisque2");
+ m_color_names.push_back("bisque3");
+ m_color_names.push_back("bisque4");
+ m_color_names.push_back("black");
+ m_color_names.push_back("BlanchedAlmond");
+ m_color_names.push_back("blue");
+ m_color_names.push_back("blue1");
+ m_color_names.push_back("blue2");
+ m_color_names.push_back("blue3");
+ m_color_names.push_back("blue4");
+ m_color_names.push_back("BlueViolet");
+ m_color_names.push_back("brown");
+ m_color_names.push_back("brown1");
+ m_color_names.push_back("brown2");
+ m_color_names.push_back("brown3");
+ m_color_names.push_back("brown4");
+ m_color_names.push_back("burlywood");
+ m_color_names.push_back("burlywood1");
+ m_color_names.push_back("burlywood2");
+ m_color_names.push_back("burlywood3");
+ m_color_names.push_back("burlywood4");
+ m_color_names.push_back("CadetBlue");
+ m_color_names.push_back("CadetBlue1");
+ m_color_names.push_back("CadetBlue2");
+ m_color_names.push_back("CadetBlue3");
+ m_color_names.push_back("CadetBlue4");
+ m_color_names.push_back("chartreuse");
+ m_color_names.push_back("chartreuse1");
+ m_color_names.push_back("chartreuse2");
+ m_color_names.push_back("chartreuse3");
+ m_color_names.push_back("chartreuse4");
+ m_color_names.push_back("chocolate");
+ m_color_names.push_back("chocolate1");
+ m_color_names.push_back("chocolate2");
+ m_color_names.push_back("chocolate3");
+ m_color_names.push_back("chocolate4");
+ m_color_names.push_back("coral");
+ m_color_names.push_back("coral1");
+ m_color_names.push_back("coral2");
+ m_color_names.push_back("coral3");
+ m_color_names.push_back("coral4");
+ m_color_names.push_back("CornflowerBlue");
+ m_color_names.push_back("cornsilk");
+ m_color_names.push_back("cornsilk1");
+ m_color_names.push_back("cornsilk2");
+ m_color_names.push_back("cornsilk3");
+ m_color_names.push_back("cornsilk4");
+ m_color_names.push_back("crimson");
+ m_color_names.push_back("cyan");
+ m_color_names.push_back("cyan1");
+ m_color_names.push_back("cyan2");
+ m_color_names.push_back("cyan3");
+ m_color_names.push_back("cyan4");
+ m_color_names.push_back("DarkBlue");
+ m_color_names.push_back("DarkCyan");
+ m_color_names.push_back("DarkGoldenrod");
+ m_color_names.push_back("DarkGoldenrod1");
+ m_color_names.push_back("DarkGoldenrod2");
+ m_color_names.push_back("DarkGoldenrod3");
+ m_color_names.push_back("DarkGoldenrod4");
+ m_color_names.push_back("DarkGray");
+ m_color_names.push_back("DarkGreen");
+ m_color_names.push_back("DarkGrey");
+ m_color_names.push_back("DarkKhaki");
+ m_color_names.push_back("DarkMagenta");
+ m_color_names.push_back("DarkOliveGreen");
+ m_color_names.push_back("DarkOliveGreen1");
+ m_color_names.push_back("DarkOliveGreen2");
+ m_color_names.push_back("DarkOliveGreen3");
+ m_color_names.push_back("DarkOliveGreen4");
+ m_color_names.push_back("DarkOrange");
+ m_color_names.push_back("DarkOrange1");
+ m_color_names.push_back("DarkOrange2");
+ m_color_names.push_back("DarkOrange3");
+ m_color_names.push_back("DarkOrange4");
+ m_color_names.push_back("DarkOrchid");
+ m_color_names.push_back("DarkOrchid1");
+ m_color_names.push_back("DarkOrchid2");
+ m_color_names.push_back("DarkOrchid3");
+ m_color_names.push_back("DarkOrchid4");
+ m_color_names.push_back("DarkRed");
+ m_color_names.push_back("DarkSalmon");
+ m_color_names.push_back("DarkSeaGreen");
+ m_color_names.push_back("DarkSeaGreen1");
+}
diff --git a/examples/book/flowbox/examplewindow.h b/examples/book/flowbox/examplewindow.h
new file mode 100644
index 0000000..045443f
--- /dev/null
+++ b/examples/book/flowbox/examplewindow.h
@@ -0,0 +1,48 @@
+/* gtkmm example Copyright (C) 2014 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>
+
+#include <vector>
+
+class ExampleWindow : public Gtk::Window
+{
+public:
+ ExampleWindow();
+ virtual ~ExampleWindow();
+
+protected:
+ // Slots
+
+ // Widgets
+ std::vector<Gtk::Button*> m_color_swatches;
+ std::vector<Gtk::DrawingArea*> m_color_drawing_areas;
+
+ // Containers
+ Gtk::ScrolledWindow m_scrolled_window;
+ Gtk::FlowBox m_flow_box;
+
+private:
+ void fill_color_names();
+ Gtk::Button* create_color_swatch(int swatch_i);
+
+ std::vector<Glib::ustring> m_color_names;
+};
+
+#endif // GTKMM_EXAMPLEWINDOW_H
diff --git a/examples/book/flowbox/main.cc b/examples/book/flowbox/main.cc
new file mode 100644
index 0000000..6b643d6
--- /dev/null
+++ b/examples/book/flowbox/main.cc
@@ -0,0 +1,28 @@
+/* gtkmm example Copyright (C) 2014 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);
+}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]