summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor.cc
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2008-02-02 17:22:04 +0000
committerDavid Robillard <d@drobilla.net>2008-02-02 17:22:04 +0000
commit80c3677c837cc9eb432df3d65a34aba543fa7258 (patch)
treeca23bb7e5bff6c35c151d73221002a9ce3abfe1a /gtk2_ardour/editor.cc
parent9f63ab9931e6478472853bdda58da47ea29ac125 (diff)
Merge with 2.0-ongoing R2988
git-svn-id: svn://localhost/ardour2/branches/3.0@2991 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/editor.cc')
-rw-r--r--gtk2_ardour/editor.cc39
1 files changed, 31 insertions, 8 deletions
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc
index 5c93877e07..d26f01f76b 100644
--- a/gtk2_ardour/editor.cc
+++ b/gtk2_ardour/editor.cc
@@ -1803,12 +1803,25 @@ Editor::add_region_context_items (StreamView* sv, boost::shared_ptr<Region> regi
items.push_back (CheckMenuElem (_("Lock")));
CheckMenuItem* region_lock_item = static_cast<CheckMenuItem*>(&items.back());
- fooc = region_lock_item->signal_activate().connect (mem_fun(*this, &Editor::toggle_region_lock));
if (region->locked()) {
- fooc.block (true);
region_lock_item->set_active();
- fooc.block (false);
}
+ region_lock_item->signal_activate().connect (mem_fun(*this, &Editor::toggle_region_lock));
+
+ items.push_back (CheckMenuElem (_("Glue to Bars&Beats")));
+ CheckMenuItem* bbt_glue_item = static_cast<CheckMenuItem*>(&items.back());
+
+ switch (region->positional_lock_style()) {
+ case Region::MusicTime:
+ bbt_glue_item->set_active (true);
+ break;
+ default:
+ bbt_glue_item->set_active (true);
+ break;
+ }
+
+ bbt_glue_item->signal_activate().connect (bind (mem_fun (*this, &Editor::set_region_lock_style), Region::MusicTime));
+
items.push_back (CheckMenuElem (_("Mute")));
CheckMenuItem* region_mute_item = static_cast<CheckMenuItem*>(&items.back());
fooc = region_mute_item->signal_activate().connect (mem_fun(*this, &Editor::toggle_region_mute));
@@ -3366,15 +3379,25 @@ Editor::hide_verbose_canvas_cursor ()
verbose_cursor_visible = false;
}
+double
+Editor::clamp_verbose_cursor_x (double x)
+{
+ return min (horizontal_adjustment.get_value() + canvas_width - 75.0, x);
+}
+
+double
+Editor::clamp_verbose_cursor_y (double y)
+{
+ return min (vertical_adjustment.get_value() + canvas_height - 50.0, y);
+}
+
void
Editor::set_verbose_canvas_cursor (const string & txt, double x, double y)
{
- /* XXX get origin of canvas relative to root window,
- add x and y and check compared to gdk_screen_{width,height}
- */
verbose_canvas_cursor->property_text() = txt.c_str();
- verbose_canvas_cursor->property_x() = x;
- verbose_canvas_cursor->property_y() = y;
+ /* don't get too close to the edge */
+ verbose_canvas_cursor->property_x() = clamp_verbose_cursor_x (x);
+ verbose_canvas_cursor->property_y() = clamp_verbose_cursor_x (y);
}
void