﻿package com.adobe.captivate.widgets
{
	import flash.display.MovieClip;
	/**
		* This class describes the properties of the slide containing the widget.
		
		* @see CPMovieHandle#getSlideData
	*/
	public class CPSlideData
	{
		/**
     		* @private
     	*/
		public function CPSlideData(startFrameVal:uint=0,stopFrameVal:uint=0,slideUniqueIDVal:String="",slideLabelVal:String="",slideTypeVal:String="",slideMovieClipVal:MovieClip = null)
		{
			this._startFrame = startFrameVal;
			this._stopFrame = stopFrameVal;
			this._slideUniqueID = slideUniqueIDVal;
			this._slideLabel = slideLabelVal;
			this._slideType = slideTypeVal;
			this._slideMovieClip = slideMovieClipVal;
		}
		/**
     		* @private
     		*/
		private var _startFrame:uint;

		/**
     		* This function returns the frame number at which the slide begins. The indexing begins with zero.
			* @return An unsigned integer indicating the start frame number of the slide 
		*/
		public function get startFrame():uint
		{
			return _startFrame;
		}

		/**
     		* @private
     		*/
		private var _stopFrame:uint;
		
		/**
     		* This function returns the frame number at which the slide ends. The indexing begins with zero.
			* @return An unsigned integer indicating the end frame number of the slide 
		*/
		public function get stopFrame():uint
		{
			return _stopFrame;
		}

		/**
     		* @private
     		*/
		private var _slideUniqueID:String;

		/**
     		* This function returns a String which uniquely identifies the slide. 
			  Different slides will have different values of this unique identifier.
			  When the movie is republished after changing the order of the slides, the unique identifer remains the same for the slide
			  across different republishes
			  * @return A String that contains unique identifer of a slide.
		*/
		public function get slideUniqueID():String
		{
			return _slideUniqueID;
		}

		/**
     		* @private
     		*/
		private var _slideLabel:String;

		/**
     		* This function returns the label of the slide if any.
			* @return A String that contains the label of the slide .
		*/
		
		public function get slideLabel():String
		{
			return _slideLabel;
		}
		
		/**
     		* @private
     	*/
		private var _slideType:String;

		/**
     		* This function returns a String indicating the type of the slide.
			* The string has one of the following values : Normal Slide, Question Slide, or Random Question Slide. 
			* @return A String that contains the type of the slide .
		*/
		public function get slideType():String
		{
			return _slideType;
		}
		
		/**
     		* @private
     	*/
		private var _slideMovieClip:MovieClip;

		/**
     		* This function returns the movie clip of the slide.The movie clip will be available only when the slide is playing.
			* clients should not cache the movie clip because it can hamper garbage collection 
			* @return MovieClip of the Slide
		*/
		public function get slideMovieClip():MovieClip
		{
			return _slideMovieClip;
		}
		
		
	}
}
