diff options
Diffstat (limited to 'libs/canvas/test/gtk_scene.cc')
-rw-r--r-- | libs/canvas/test/gtk_scene.cc | 66 |
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; +} |