#include "ui_config.h"
#include "verbose_cursor.h"
-#include "i18n.h"
+#include "pbd/i18n.h"
using namespace std;
using namespace ARDOUR;
_verbose_cursor = new VerboseCursor (this);
- /* on the bottom, an image */
-
- if (Profile->get_sae()) {
- Image img (::get_icon (X_("saelogo")));
- // logo_item = new ArdourCanvas::Pixbuf (_track_canvas->root(), 0.0, 0.0, img.get_pixbuf());
- // logo_item->property_height_in_pixels() = true;
- // logo_item->property_width_in_pixels() = true;
- // logo_item->property_height_set() = true;
- // logo_item->property_width_set() = true;
- // logo_item->show ();
- }
-
/*a group to hold global rects like punch/loop indicators */
global_rect_group = new ArdourCanvas::Container (hv_scroll_group);
CANVAS_DEBUG_NAME (global_rect_group, "global rect group");
playhead_cursor = new EditorCursor (*this, &Editor::canvas_playhead_cursor_event);
- if (logo_item) {
- logo_item->lower_to_bottom ();
- }
-
_canvas_drop_zone = new ArdourCanvas::Rectangle (hv_scroll_group, ArdourCanvas::Rect (0.0, 0.0, ArdourCanvas::COORD_MAX, 0.0));
/* this thing is transparent */
_canvas_drop_zone->set_fill (false);
edit_controls_vbox.size_request (req);
w = req.width;
- if (_group_tabs->is_mapped()) {
+ if (_group_tabs->is_visible()) {
_group_tabs->size_request (req);
w += req.width;
}
InstrumentSelector is; // instantiation builds instrument-list and sets default.
do_import (midi_paths, Editing::ImportDistinctFiles, ImportAsTrack, SrcBest, frame, is.selected_instrument());
- if (Profile->get_sae() || UIConfiguration::instance().get_only_copy_imported_files() || copy) {
+ if (UIConfiguration::instance().get_only_copy_imported_files() || copy) {
do_import (audio_paths, Editing::ImportDistinctFiles, Editing::ImportAsTrack, SrcBest, frame);
} else {
do_embed (audio_paths, Editing::ImportDistinctFiles, ImportAsTrack, frame);
do_import (midi_paths, Editing::ImportSerializeFiles, ImportToTrack, SrcBest, frame);
- if (Profile->get_sae() || UIConfiguration::instance().get_only_copy_imported_files() || copy) {
+ if (UIConfiguration::instance().get_only_copy_imported_files() || copy) {
do_import (audio_paths, Editing::ImportSerializeFiles, Editing::ImportToTrack, SrcBest, frame);
} else {
do_embed (audio_paths, Editing::ImportSerializeFiles, ImportToTrack, frame);
snap_to (frame);
bool copy = ((context->get_actions() & (Gdk::ACTION_COPY | Gdk::ACTION_LINK | Gdk::ACTION_MOVE)) == Gdk::ACTION_COPY);
-#ifdef GTKOSX
+#ifdef __APPLE__
/* We are not allowed to call recursive main event loops from within
the main event loop with GTK/Quartz. Since import/embed wants
to push up a progress dialog, defer all this till we go idle.
void
Editor::maybe_autoscroll (bool allow_horiz, bool allow_vert, bool from_headers)
{
+ Gtk::Window* toplevel = dynamic_cast<Gtk::Window*>(contents().get_toplevel());
+
+ if (!toplevel) {
+ return;
+ }
+
if (!UIConfiguration::instance().get_autoscroll_editor () || autoscroll_active ()) {
return;
}
int x, y;
Gdk::ModifierType mask;
- get_window()->get_pointer (x, y, mask);
+ toplevel->get_window()->get_pointer (x, y, mask);
if ((allow_horiz && ((x < scrolling_boundary.x0 && leftmost_frame > 0) || x >= scrolling_boundary.x1)) ||
(allow_vert && ((y < scrolling_boundary.y0 && vertical_adjustment.get_value() > 0)|| y >= scrolling_boundary.y1))) {
Gdk::ModifierType mask;
frameoffset_t dx = 0;
bool no_stop = false;
+ Gtk::Window* toplevel = dynamic_cast<Gtk::Window*>(contents().get_toplevel());
+
+ if (!toplevel) {
+ return false;
+ }
- get_window()->get_pointer (x, y, mask);
+ toplevel->get_window()->get_pointer (x, y, mask);
VisualChange vc;
bool vertical_motion = false;
scroll_up_one_track ();
vertical_motion = true;
}
+ no_stop = true;
} else if (y > autoscroll_boundary.y1) {
scroll_down_one_track ();
vertical_motion = true;
}
+ no_stop = true;
}
- no_stop = true;
}
if (vc.pending || vertical_motion) {
int cx;
int cy;
- translate_coordinates (*_track_canvas, x, y, cx, cy);
+ toplevel->translate_coordinates (*_track_canvas, x, y, cx, cy);
/* clamp x and y to remain within the autoscroll boundary,
* which is defined in window coordinates
ArdourCanvas::Duple d = _track_canvas->window_to_canvas (ArdourCanvas::Duple (cx, cy));
ev.x = d.x;
ev.y = d.y;
+ ev.state = mask;
motion_handler (0, (GdkEvent*) &ev, true);
}
y = min (max ((ArdourCanvas::Coord) y, autoscroll_boundary.y0), autoscroll_boundary.y1);
- translate_coordinates (*_track_canvas_viewport, x, y, cx, cy);
+ toplevel->translate_coordinates (*_track_canvas_viewport, x, y, cx, cy);
ArdourCanvas::Duple d = _track_canvas->window_to_canvas (ArdourCanvas::Duple (cx, cy));
ev.x = d.x;
ev.y = d.y;
+ ev.state = mask;
motion_handler (0, (GdkEvent*) &ev, true);
stop_canvas_autoscroll ();
- autoscroll_cnt = 0;
autoscroll_horizontal_allowed = allow_horiz;
autoscroll_vertical_allowed = allow_vert;
autoscroll_boundary = boundary;
Editor::stop_canvas_autoscroll ()
{
autoscroll_connection.disconnect ();
+ autoscroll_cnt = 0;
}
Editor::EnterContext*