summaryrefslogtreecommitdiff
path: root/libs/canvas/test/gtk_viewport.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/canvas/test/gtk_viewport.cc')
-rw-r--r--libs/canvas/test/gtk_viewport.cc65
1 files changed, 65 insertions, 0 deletions
diff --git a/libs/canvas/test/gtk_viewport.cc b/libs/canvas/test/gtk_viewport.cc
new file mode 100644
index 0000000000..90bf819d86
--- /dev/null
+++ b/libs/canvas/test/gtk_viewport.cc
@@ -0,0 +1,65 @@
+#include <iostream>
+#include <gtkmm.h>
+#include "canvas/canvas.h"
+#include "canvas/rectangle.h"
+
+using namespace std;
+using namespace ArdourCanvas;
+
+Gtk::Adjustment* hadj;
+Gtk::Adjustment* vadj;
+
+void
+left_clicked ()
+{
+ hadj->set_value (hadj->get_value() - 64);
+}
+
+void
+right_clicked ()
+{
+ hadj->set_value (hadj->get_value() + 64);
+}
+
+int main (int argc, char* argv[])
+{
+ Gtk::Main kit (argc, argv);
+
+ Gtk::Window window;
+ window.set_title ("Hello world");
+ GtkCanvas canvas;
+
+ 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_color (0x00ff00ff);
+
+ Gtk::HBox button_box;
+
+ Gtk::Button left ("Left");
+ left.signal_clicked().connect (sigc::ptr_fun (&left_clicked));
+ button_box.pack_start (left);
+
+ Gtk::Button right ("Right");
+ right.signal_clicked().connect (sigc::ptr_fun (&right_clicked));
+ button_box.pack_start (right);
+
+ hadj = new Gtk::Adjustment (0, 0, 1e3);
+ vadj = new Gtk::Adjustment (0, 0, 1e3);
+
+ Gtk::Viewport viewport (*hadj, *vadj);
+ viewport.add (canvas);
+
+ Gtk::VBox overall_box;
+ overall_box.pack_start (viewport);
+ overall_box.pack_start (button_box, false, false);
+
+ window.add (overall_box);
+ canvas.show ();
+ window.show_all ();
+
+ Gtk::Main::run (window);
+ return 0;
+}