All pastes #835545 Raw Edit

Something

public text v1 · immutable
#835545 ·published 2007-12-28 22:42 UTC
rendered paste body
	update_row is
		local
			duration: INTEGER
			img: GTK_SPICE_IMAGE_BOX
			txt: GTK_SPICE_TEXT_BOX
			content_vid: MEDIA_CONTENT [MEDIA_VIDEO]
			content_aud: MEDIA_CONTENT [MEDIA_AUDIO]
			content_img: MEDIA_CONTENT [MEDIA_IMAGE]
			content_txt: TEXT_CONTENT
			it: ITERATOR [GTK_WIDGET]
			path_name: PATH_NAME
			thumbnail_update: THUMBNAIL_UPDATE
		do
			path_name := new_path
			if editor.video_background /= Void then
				path_name.make_from_string (editor.video_background.url)
				if row.background = Void or else not path_name.to_url.is_equal (row.background.media.url) then
					create content_vid.from_media (create {MEDIA_VIDEO}.from_file (path_name))
					content_vid.set_looped (video_loop_check_button.is_active)
					duration := editor.video_background.duration
					content_vid.set_markers ((video_in_marker.value * duration).force_to_integer_32,
					                         (video_out_marker.value * duration).force_to_integer_32)
					row.set_background (content_vid)
				end
			elseif editor.image_background /= Void then
				if row.background = Void or else not editor.image_background.to_url.is_equal (row.background.media.url) then
					create content_img.from_media (create {MEDIA_IMAGE}.from_file (editor.image_background))
					row.set_background (content_img)
				end
			else
				row.set_background (Void)
			end
			
			if editor.audio_background /= Void then
				path_name.make_from_string (editor.audio_background.url)
				if row.audio = Void or else not path_name.to_url.is_equal (row.audio.media.url) then
					create content_aud.from_media (create {MEDIA_AUDIO}.from_file (path_name))
					content_aud.set_looped (audio_loop_check_button.is_active)
					duration := editor.audio_background.duration
					content_aud.set_markers ((audio_in_marker.value * duration).force_to_integer_32,
					                         (audio_out_marker.value * duration).force_to_integer_32)
					row.set_audio (content_aud)
				end
			else
				row.set_audio (Void)
			end
			
			if row.is_slide then
				from until row.count = 0 loop
					row.remove (row.lower)
				end
				
				from it := editor.boxes.get_new_iterator until it.is_off loop
					if it.item /= Void then
						img ?= it.item
						txt ?= it.item
						if img /= Void then
							path_name.make_from_string (img.filename)
							content_img := create {MEDIA_CONTENT[MEDIA_IMAGE]}.from_media (
							               create {MEDIA_IMAGE}.from_file (path_name))
							content_img.set_scale (img.relative_scale_x, img.relative_scale_y)
							content_img.set_position (img.relative_x, img.relative_y)
							row.add_last (content_img)
						elseif txt /= Void then
							content_txt := create {TEXT_CONTENT}.with_markup (txt.markup)
							content_txt.set_scale (txt.relative_scale_x, txt.relative_scale_y)
							content_txt.set_position (txt.relative_x, txt.relative_y)
							row.add_last (content_txt)
						else
						end
					end
					it.next
				end
			end
			editor.clear_boxes
			if row.is_slide then
				create thumbnail_update.make (Void, row.as_slide, False)
			elseif row.is_segment then
				create thumbnail_update.make (row.as_segment, Void, True)
			end
		end