switch (ev->direction) {
case GDK_SCROLL_UP:
if (Keyboard::modifier_state_equals (ev->state, Keyboard::TertiaryModifier)) {
- step_height (true);
+ step_height (false);
return true;
} else if (Keyboard::no_modifiers_active (ev->state)) {
_editor.scroll_tracks_up_line();
case GDK_SCROLL_DOWN:
if (Keyboard::modifier_state_equals (ev->state, Keyboard::TertiaryModifier)) {
- step_height (false);
+ step_height (true);
return true;
} else if (Keyboard::no_modifiers_active (ev->state)) {
_editor.scroll_tracks_down_line();
Hiding ();
}
+/** Steps through the defined heights for this TrackView.
+ * @param coarser true if stepping should decrease in size, otherwise false.
+ */
void
-TimeAxisView::step_height (bool bigger)
+TimeAxisView::step_height (bool coarser)
{
static const uint32_t step = 25;
- if (bigger) {
- if (height == preset_height(HeightSmall)) {
- set_height_enum (HeightSmaller);
- } else if (height == preset_height(HeightSmaller)) {
- set_height_enum (HeightNormal);
- } else {
- set_height (height + step);
- }
-
- } else {
+ if (coarser) {
+
if (height == preset_height (HeightSmall)) {
return;
}
set_height_enum (HeightSmaller);
} else {
set_height (height - step);
- }
+ }
+
+ } else {
+
+ if (height == preset_height(HeightSmall)) {
+ set_height_enum (HeightSmaller);
+ } else if (height == preset_height(HeightSmaller)) {
+ set_height_enum (HeightNormal);
+ } else {
+ set_height (height + step);
+ }
+
}
}
}
void
-TimeAxisView::set_height_enum (Height h)
+TimeAxisView::set_height_enum (Height h, bool apply_to_selection)
{
- set_height (preset_height (h));
+ if (apply_to_selection) {
+ _editor.get_selection().tracks.foreach_time_axis (boost::bind (&TimeAxisView::set_height_enum, _1, h, false));
+ } else {
+ set_height (preset_height (h));
+ }
}
void
void
TimeAxisView::popup_display_menu (guint32 when)
{
- if (display_menu == 0) {
- build_display_menu ();
- }
-
conditionally_add_to_selection ();
+
+ build_display_menu ();
display_menu->popup (1, when);
}
void
TimeAxisView::color_handler ()
{
- for (list<GhostRegion*>::iterator i=ghosts.begin(); i != ghosts.end(); i++ ) {
+ for (list<GhostRegion*>::iterator i = ghosts.begin(); i != ghosts.end(); i++) {
(*i)->set_colors();
}
void
TimeAxisView::build_size_menu ()
{
- if (_size_menu) {
+ if (_size_menu && _size_menu->gobj ()) {
return;
}
+
+ delete _size_menu;
using namespace Menu_Helpers;
_size_menu->set_name ("ArdourContextMenu");
MenuList& items = _size_menu->items();
- items.push_back (MenuElem (_("Largest"), sigc::bind (sigc::mem_fun (*this, &TimeAxisView::set_height_enum), HeightLargest)));
- items.push_back (MenuElem (_("Larger"), sigc::bind (sigc::mem_fun (*this, &TimeAxisView::set_height_enum), HeightLarger)));
- items.push_back (MenuElem (_("Large"), sigc::bind (sigc::mem_fun (*this, &TimeAxisView::set_height_enum), HeightLarge)));
- items.push_back (MenuElem (_("Normal"), sigc::bind (sigc::mem_fun (*this, &TimeAxisView::set_height_enum), HeightNormal)));
- items.push_back (MenuElem (_("Smaller"), sigc::bind (sigc::mem_fun (*this, &TimeAxisView::set_height_enum), HeightSmaller)));
- items.push_back (MenuElem (_("Small"), sigc::bind (sigc::mem_fun (*this, &TimeAxisView::set_height_enum), HeightSmall)));
+ items.push_back (MenuElem (_("Largest"), sigc::bind (sigc::mem_fun (*this, &TimeAxisView::set_height_enum), HeightLargest, true)));
+ items.push_back (MenuElem (_("Larger"), sigc::bind (sigc::mem_fun (*this, &TimeAxisView::set_height_enum), HeightLarger, true)));
+ items.push_back (MenuElem (_("Large"), sigc::bind (sigc::mem_fun (*this, &TimeAxisView::set_height_enum), HeightLarge, true)));
+ items.push_back (MenuElem (_("Normal"), sigc::bind (sigc::mem_fun (*this, &TimeAxisView::set_height_enum), HeightNormal, true)));
+ items.push_back (MenuElem (_("Smaller"), sigc::bind (sigc::mem_fun (*this, &TimeAxisView::set_height_enum), HeightSmaller, true)));
+ items.push_back (MenuElem (_("Small"), sigc::bind (sigc::mem_fun (*this, &TimeAxisView::set_height_enum), HeightSmall, true)));
}