45 App.directive(
'tlTransition',
function(){
48 link:
function(scope, element, attrs){
59 var parentOffset = element.offset();
60 var mouseLoc =
e.pageX - parentOffset.left;
68 var vert_scroll_offset = $(
"#scrolling_tracks").
scrollTop();
69 var track_top = (parseInt(element.position().top) + parseInt(vert_scroll_offset));
70 var track_bottom = (parseInt(element.position().top) + parseInt(element.height()) + parseInt(vert_scroll_offset));
75 element.find(
'.point_icon').hide()
78 stop:
function(
e, ui) {
88 element.find(
'.point_icon').show()
91 var delta_x = ui.originalSize.width - ui.size.width;
92 var delta_time = delta_x/scope.pixelsPerSecond;
95 new_left = scope.transition.position;
96 new_right = (scope.transition.end - scope.transition.start);
98 if (dragLoc ==
'left'){
100 new_left += delta_time;
101 if (new_left < 0) new_left = 0;
103 new_right -= delta_time;
107 scope.$apply(
function(){
109 if (dragLoc ==
'right'){
110 scope.transition.end = new_right;
112 if (dragLoc ==
'left'){
113 scope.transition.position = new_left;
114 scope.transition.end -= delta_time;
119 timeline.update_transition_data(JSON.stringify(scope.transition));
126 resize:
function(
e, ui) {
130 $(
this).css(ui.originalPosition);
131 $(
this).
width(ui.originalSize.width);
136 var delta_x = ui.originalSize.width - ui.size.width;
137 var delta_time = Math.round(delta_x/scope.pixelsPerSecond);
140 new_left = scope.transition.position;
141 new_right = (scope.transition.end - scope.transition.start);
143 if (dragLoc ==
'left'){
145 new_left += delta_time;
147 ui.element.width(ui.size.width + (new_left * scope.pixelsPerSecond));
148 ui.element.css(
"left", ui.position.left - (new_left * scope.pixelsPerSecond));
150 ui.element.width(ui.size.width);
154 new_right -= delta_time;
155 ui.element.width(ui.size.width);
167 element.addClass(
"highlight_transition", 200,
"easeInOutCubic" );
173 element.removeClass(
"highlight_transition", 200,
"easeInOutCubic" );
186 start:
function(event, ui) {
189 if (!element.hasClass(
'ui-selected'))
192 var clear_selections =
false;
193 if ($(
".ui-selected").length > 0)
194 clear_selections =
true;
197 var
id = $(
this).attr(
"id");
198 if (element.hasClass(
'clip')) {
200 scope.SelectTransition(
"", clear_selections);
201 scope.SelectClip(
id, clear_selections);
203 }
else if (element.hasClass(
'transition')) {
205 scope.SelectClip(
"", clear_selections);
206 scope.SelectTransition(
id, clear_selections);
211 scope.$apply(
function(){});
213 var vert_scroll_offset = $(
"#scrolling_tracks").
scrollTop();
214 var horz_scroll_offset = $(
"#scrolling_tracks").scrollLeft();
220 $(
".ui-selected").
each(
function(){
221 start_transitions[$(
this).attr(
'id')] = {
"top": $(
this).position().top + vert_scroll_offset,
222 "left": $(
this).position().left + horz_scroll_offset};
223 move_transitions[$(
this).attr(
'id')] = {
"top": $(
this).position().top + vert_scroll_offset,
224 "left": $(
this).position().left + horz_scroll_offset};
235 stop:
function(event, ui) {
238 $(
event.toElement ).one(
'.transition_menu',
function(
e){
e.stopImmediatePropagation(); } );
241 scope.HideSnapline();
248 drag:
function(
e, ui) {
249 var previous_x = ui.originalPosition.left;
250 var previous_y = ui.originalPosition.top;
262 var x_offset = ui.position.left - previous_x;
263 var y_offset = ui.position.top - previous_y;
266 results =
moveBoundingBox(scope, previous_x, previous_y, x_offset, y_offset, ui.position.left, ui.position.top);
267 x_offset = results.x_offset;
268 y_offset = results.y_offset;
271 ui.position.left = results.position.left;
272 ui.position.top = results.position.top;
275 $(
".ui-selected").
each(
function(){
276 var pos = $(
this).position();
285 $(
this).css(
'left', newX);
286 $(
this).css(
'top', newY);
291 revert:
function(valid) {
294 $(
".ui-selected").
each(
function(){
298 $(
this).css(
'left', oldX);
299 $(
this).css(
'top', oldY);
function getTrackContainerHeight()
var track_container_height
function moveBoundingBox(scope, previous_x, previous_y, x_offset, y_offset, left, top)
function setBoundingBox(item)
Tween propHooks scrollTop
jQuery each(["height","width"], function(i, name){jQuery.cssHooks[name]={get:function(elem, computed, extra){if(computed){return elem.offsetWidth===0 &&rdisplayswap.test(jQuery.css(elem,"display"))?jQuery.swap(elem, cssShow, function(){return getWidthOrHeight(elem, name, extra);}):getWidthOrHeight(elem, name, extra);}}, set:function(elem, value, extra){var styles=extra &&getStyles(elem);return setPositiveNumber(elem, value, extra?augmentWidthOrHeight(elem, name, extra, jQuery.support.boxSizing &&jQuery.css(elem,"boxSizing", false, styles)==="border-box", styles):0);}};})
function hasLockedTrack(scope, top, bottom)
var previous_drag_position