diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2013-04-04 00:32:52 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2013-04-04 00:32:52 -0400 |
commit | aaea166135ace01709f7e0be64f40be80f4107ec (patch) | |
tree | 0e794ef7a723e4aaf909b841a6816e405b4ceca1 /libs/canvas/test/gtk_movement.cc | |
parent | 1d8bac08c0c00d44e22c581768a275e1b21a99a7 (diff) |
initial commit of hand merging, plus getting "ancient" waf script to work correctly
Diffstat (limited to 'libs/canvas/test/gtk_movement.cc')
-rw-r--r-- | libs/canvas/test/gtk_movement.cc | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/libs/canvas/test/gtk_movement.cc b/libs/canvas/test/gtk_movement.cc new file mode 100644 index 0000000000..24a517da71 --- /dev/null +++ b/libs/canvas/test/gtk_movement.cc @@ -0,0 +1,97 @@ +#include <iostream> +#include <gtkmm.h> +#include "canvas/canvas.h" +#include "canvas/rectangle.h" + +using namespace std; +using namespace ArdourCanvas; + +Rectangle* rectangle[2]; + +void +bigger_clicked () +{ + Rect r = rectangle[0]->get (); + r.x1 += 16; + r.y1 += 16; + rectangle[0]->set (r); +} + +void +smaller_clicked () +{ + Rect r = rectangle[0]->get (); + r.x1 -= 16; + r.y1 -= 16; + rectangle[0]->set (r); +} + +void +left_clicked () +{ + Duple p = rectangle[0]->position (); + p.x -= 16; + rectangle[0]->set_position (p); +} + +void +right_clicked () +{ + Duple p = rectangle[0]->position (); + p.x += 16; + rectangle[0]->set_position (p); +} + +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); + GtkCanvas canvas; + canvas.set_size_request (2048, 2048); + + rectangle[0] = new Rectangle (canvas.root(), Rect (64, 64, 128, 128)); + rectangle[0]->set_outline_color (0xff0000aa); + rectangle[1] = new Rectangle (canvas.root(), Rect (64, 64, 128, 128)); + rectangle[1]->set_position (Duple (256, 256)); + rectangle[1]->set_outline_width (4); + rectangle[1]->set_outline_color (0x00ff00ff); + rectangle[1]->set_fill (true); + rectangle[1]->set_fill_color (0x00ffffff); + rectangle[1]->set_outline_what ((Rectangle::What) (Rectangle::LEFT | Rectangle::RIGHT)); + + Gtk::VBox overall_box; + + Gtk::ScrolledWindow scroller; + scroller.add (canvas); + overall_box.pack_start (scroller); + + Gtk::HBox button_box; + + Gtk::Button bigger ("Bigger"); + bigger.signal_clicked().connect (sigc::ptr_fun (&bigger_clicked)); + button_box.pack_start (bigger); + + Gtk::Button smaller ("Smaller"); + smaller.signal_clicked().connect (sigc::ptr_fun (&smaller_clicked)); + button_box.pack_start (smaller); + + 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); + + overall_box.pack_start (button_box, false, false); + + window.add (overall_box); + canvas.show (); + window.show_all (); + + Gtk::Main::run (window); + return 0; +} |