diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2005-12-24 02:17:47 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2005-12-24 02:17:47 +0000 |
commit | 45addca9eb60a92acda39c8f811d25daa0cfb216 (patch) | |
tree | 12dc04771c301f5d6c6e1df9c1e0d1e379b4d49d /gtk2_ardour | |
parent | fc6242613634f0cd6a725a5e9d07a29580c74698 (diff) |
various changes to controls_layout size management
git-svn-id: svn://localhost/trunk/ardour2@205 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/editor.cc | 23 | ||||
-rw-r--r-- | gtk2_ardour/editor.h | 3 | ||||
-rw-r--r-- | gtk2_ardour/editor_canvas.cc | 15 | ||||
-rw-r--r-- | gtk2_ardour/editor_canvas_events.cc | 29 | ||||
-rw-r--r-- | gtk2_ardour/editor_route_list.cc | 2 | ||||
-rw-r--r-- | gtk2_ardour/main.cc | 2 | ||||
-rw-r--r-- | gtk2_ardour/time_axis_view.cc | 4 |
7 files changed, 46 insertions, 32 deletions
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index c413209f9b..baddbf2aac 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -365,7 +365,6 @@ Editor::Editor (AudioEngine& eng) range_marker_drag_rect = 0; marker_drag_line = 0; - mouse_mode = MouseZoom; /* force change in next call */ set_mouse_mode (MouseObject, true); frames_per_unit = 2048; /* too early to use set_frames_per_unit */ @@ -375,7 +374,7 @@ Editor::Editor (AudioEngine& eng) initialize_rulers (); initialize_canvas (); - edit_controls_vbox.set_spacing (track_spacing); + edit_controls_vbox.set_spacing (0); horizontal_adjustment.signal_value_changed().connect (mem_fun(*this, &Editor::canvas_horizontally_scrolled)); vertical_adjustment.signal_value_changed().connect (mem_fun(*this, &Editor::tie_vertical_scrolling)); @@ -389,8 +388,6 @@ Editor::Editor (AudioEngine& eng) controls_layout.add (edit_controls_vbox); controls_layout.set_name ("EditControlsBase"); controls_layout.add_events (Gdk::SCROLL_MASK); - controls_layout.signal_size_request().connect (mem_fun(*this, &Editor::set_layout_width), false); - controls_layout.signal_expose_event().connect (mem_fun(*this, &Editor::control_layout_expose), false); controls_layout.signal_scroll_event().connect (mem_fun(*this, &Editor::control_layout_scroll), false); controls_layout.add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::ENTER_NOTIFY_MASK|Gdk::LEAVE_NOTIFY_MASK); @@ -820,7 +817,6 @@ Editor::tie_vertical_scrolling () { double y1 = vertical_adjustment.get_value(); controls_layout.get_vadjustment()->set_value (y1); - playhead_cursor->set_y_axis(y1); edit_cursor->set_y_axis(y1); } @@ -3910,23 +3906,6 @@ Editor::transport_punch_location() } } -void -Editor::set_layout_width(Gtk::Requisition *r) -{ - edit_controls_vbox.check_resize(); - int w = edit_controls_vbox.get_width(); - cerr << "set_layout_width() called w = " << w << endl; - - controls_layout.set_size_request (w, -1); -} - -bool -Editor::control_layout_expose (GdkEventExpose* ex) -{ - cerr << "control layout_expose() called" << endl; - return true; -} - bool Editor::control_layout_scroll (GdkEventScroll* ev) { diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index 28b6598970..6b1342e2be 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -642,8 +642,6 @@ class Editor : public PublicEditor Gtk::Adjustment horizontal_adjustment; Gtk::Layout controls_layout; - void set_layout_width(Gtk::Requisition *); - bool Editor::control_layout_expose (GdkEventExpose* ev); bool Editor::control_layout_scroll (GdkEventScroll* ev); Gtk::HScrollbar edit_hscrollbar; @@ -1149,6 +1147,7 @@ class Editor : public PublicEditor bool canvas_playhead_cursor_event (GdkEvent* event, ArdourCanvas::Item*); bool canvas_edit_cursor_event (GdkEvent* event, ArdourCanvas::Item*); bool track_canvas_event (GdkEvent* event, ArdourCanvas::Item*); + bool track_canvas_scroll (GdkEventScroll* event); bool track_canvas_button_press_event (GdkEventButton *); bool track_canvas_button_release_event (GdkEventButton *); diff --git a/gtk2_ardour/editor_canvas.cc b/gtk2_ardour/editor_canvas.cc index 993ad24006..933d33eeb5 100644 --- a/gtk2_ardour/editor_canvas.cc +++ b/gtk2_ardour/editor_canvas.cc @@ -90,7 +90,7 @@ Editor::initialize_canvas () track_canvas.signal_event().connect (bind (mem_fun (*this, &Editor::track_canvas_event), (ArdourCanvas::Item*) 0)); track_canvas.set_name ("EditorMainCanvas"); - track_canvas.add_events (Gdk::POINTER_MOTION_HINT_MASK); + track_canvas.add_events (Gdk::POINTER_MOTION_HINT_MASK|Gdk::SCROLL_MASK); track_canvas.signal_leave_notify_event().connect (mem_fun(*this, &Editor::left_track_canvas)); /* set up drag-n-drop */ @@ -357,10 +357,11 @@ Editor::reset_scrolling_region (Gtk::Allocation* alloc) TreeModel::Children rows = route_display_model->children(); TreeModel::Children::iterator i; double pos; - + for (pos = 0, i = rows.begin(); i != rows.end(); ++i) { TimeAxisView *tv = (*i)[route_display_columns.tv]; pos += tv->effective_height; + pos += track_spacing; } RefPtr<Gdk::Screen> screen = get_screen(); @@ -369,13 +370,19 @@ Editor::reset_scrolling_region (Gtk::Allocation* alloc) screen = Gdk::Screen::get_default(); } - edit_controls_hbox.set_size_request (-1, min ((gint) pos, (screen->get_height() - 400))); - edit_controls_vbox.set_size_request (-1, min ((gint) pos, (screen->get_height() - 400))); double last_canvas_unit = ceil ((double) max_frames / frames_per_unit); track_canvas.set_scroll_region (0.0, 0.0, max (last_canvas_unit, canvas_width), pos); // XXX what is the correct height value for the time canvas ? this overstates it time_canvas.set_scroll_region ( 0.0, 0.0, max (last_canvas_unit, canvas_width), canvas_height); + + /* never let the width of the controls area shrink horizontally */ + + edit_controls_vbox.check_resize(); + int w = max (edit_controls_vbox.get_width(), controls_layout.get_width()); + + controls_layout.set_size_request (w, min ((gint) pos, (screen->get_height() - 400))); + controls_layout.set_size (w, (gint) pos); } bool diff --git a/gtk2_ardour/editor_canvas_events.cc b/gtk2_ardour/editor_canvas_events.cc index c4bd2081e7..f09c4d028f 100644 --- a/gtk2_ardour/editor_canvas_events.cc +++ b/gtk2_ardour/editor_canvas_events.cc @@ -45,10 +45,35 @@ using namespace ARDOUR; using namespace Gtk; bool +Editor::track_canvas_scroll (GdkEventScroll* ev) +{ + switch (ev->direction) { + case GDK_SCROLL_UP: + scroll_tracks_up_line (); + return true; + break; + + case GDK_SCROLL_DOWN: + scroll_tracks_down_line (); + return true; + + default: + /* no left/right handling yet */ + break; + } + + return false; +} + +bool Editor::track_canvas_event (GdkEvent *event, ArdourCanvas::Item* item) { gint x, y; + /* this is the handler for events that are not handled by + items. + */ + switch (event->type) { case GDK_MOTION_NOTIFY: /* keep those motion events coming */ @@ -64,6 +89,10 @@ Editor::track_canvas_event (GdkEvent *event, ArdourCanvas::Item* item) } break; + case GDK_SCROLL: + track_canvas_scroll (&event->scroll); + break; + default: break; } diff --git a/gtk2_ardour/editor_route_list.cc b/gtk2_ardour/editor_route_list.cc index f7f336beb3..9dc765ca49 100644 --- a/gtk2_ardour/editor_route_list.cc +++ b/gtk2_ardour/editor_route_list.cc @@ -238,7 +238,7 @@ Editor::route_list_reordered () */ if ((at = dynamic_cast<AudioTimeAxisView*> (tv)) != 0) { - at->route().set_order_key (N_("editor"), position); + at->route().set_order_key (N_("editor"), order); } } if (tv->marked_for_display()) { diff --git a/gtk2_ardour/main.cc b/gtk2_ardour/main.cc index 1c97e37352..3dc751de88 100644 --- a/gtk2_ardour/main.cc +++ b/gtk2_ardour/main.cc @@ -304,7 +304,7 @@ main (int argc, char *argv[]) pthread_setcanceltype (PTHREAD_CANCEL_ASYNCHRONOUS, 0); - catch_signals (); + // catch_signals (); text_receiver.listen_to (error); text_receiver.listen_to (info); diff --git a/gtk2_ardour/time_axis_view.cc b/gtk2_ardour/time_axis_view.cc index f2a529cdb2..b9079159f4 100644 --- a/gtk2_ardour/time_axis_view.cc +++ b/gtk2_ardour/time_axis_view.cc @@ -139,7 +139,7 @@ TimeAxisView::TimeAxisView (ARDOUR::Session& sess, PublicEditor& ed, TimeAxisVie controls_frame.add (controls_hbox); controls_frame.set_name ("TimeAxisViewControlsBaseUnselected"); - controls_frame.set_shadow_type (Gtk::SHADOW_IN); + controls_frame.set_shadow_type (Gtk::SHADOW_OUT); } TimeAxisView::~TimeAxisView() @@ -357,7 +357,7 @@ void TimeAxisView::set_height (TrackHeight h) { height = (guint32) h; - controls_frame.set_size_request (-1, height); + controls_frame.set_size_request (-1, height+2); if (canvas_item_visible (selection_group)) { /* resize the selection rect */ |