summaryrefslogtreecommitdiff
path: root/libs/canvas/test/gtk_scene.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/canvas/test/gtk_scene.cc')
-rw-r--r--libs/canvas/test/gtk_scene.cc66
1 files changed, 66 insertions, 0 deletions
diff --git a/libs/canvas/test/gtk_scene.cc b/libs/canvas/test/gtk_scene.cc
new file mode 100644
index 0000000000..95e9b9c299
--- /dev/null
+++ b/libs/canvas/test/gtk_scene.cc
@@ -0,0 +1,66 @@
+#include <iostream>
+#include <gtkmm.h>
+#include "canvas/canvas.h"
+#include "canvas/rectangle.h"
+#include "canvas/line.h"
+#include "canvas/pixbuf.h"
+
+using namespace std;
+using namespace ArdourCanvas;
+
+bool
+foo (GdkEvent* ev)
+{
+ cout << "click.\n";
+ return true;
+}
+
+int main (int argc, char* argv[])
+{
+ Gtk::Main kit (argc, argv);
+
+ Gtk::Window window;
+ window.set_title ("Hello world");
+ window.set_size_request (512, 512);
+
+ Gtk::VBox overall_vbox;
+ Gtk::HScrollbar h_scroll;
+ Gtk::VScrollbar v_scroll;
+
+ GtkCanvasViewport viewport (*h_scroll.get_adjustment(), *v_scroll.get_adjustment());
+ GtkCanvas* canvas = viewport.canvas ();
+
+ overall_vbox.pack_start (viewport, true, true);
+ overall_vbox.pack_start (h_scroll, false, false);
+
+ Rectangle a (canvas->root(), Rect (64, 64, 128, 128));
+ a.set_outline_color (0xff0000aa);
+ Rectangle b (canvas->root(), Rect (64, 64, 128, 128));
+ b.set_position (Duple (256, 256));
+ b.set_outline_width (4);
+ b.set_outline_what (0x2 | 0x8);
+ b.set_outline_color (0x0000ffff);
+ b.Event.connect (sigc::ptr_fun (foo));
+
+ Rectangle c (canvas->root(), Rect (2048, 2048, 2096, 2096));
+
+ Rectangle d (canvas->root(), Rect (0, 256, COORD_MAX, 284));
+ d.name = "d";
+
+ Line e (canvas->root());
+ e.set (Duple (256, 0), Duple (256, COORD_MAX));
+ e.name = "e";
+ e.set_outline_color (0xff0000ff);
+
+ Pixbuf pixbuf (canvas->root());
+ pixbuf.set_position (Duple (192, 192));
+ Glib::RefPtr<Gdk::Pixbuf> p = Gdk::Pixbuf::create_from_file ("../../libs/canvas/test/test.png");
+ pixbuf.set (p);
+
+ window.add (overall_vbox);
+ canvas->show ();
+ window.show_all ();
+
+ Gtk::Main::run (window);
+ return 0;
+}