<?xml version="1.0"?>
<OriginStorage Label="colslideshow (User)" Display="652" FileName="C:\C\VC32\originlab\X-FUNCTIONS\Data Manipulation\Worksheet\colslideshow.OXF"><XFname NodeID="11" Label="Name" DataID="300">colslideshow</XFname><xFdescription NodeID="11" Label="Description" DataID="310">Slide Show of Dependent &amp;Graphs:View a slide show of all the graphs that depend on specified columns</xFdescription><attachTo NodeID="13" Label="Attach to Origin Object" Combo="None|Auto|Column|Sheet/Layer|Book/Graph" DataID="320" Show="0">1</attachTo><author NodeID="11" Label="Author" DataID="314"></author><AutoDependent NodeID="10" Label="Auto Compile Dependent Files" DataID="451">1.</AutoDependent><UsageCtxt NodeID="268435456" Label="Usage Context" DataID="329"><LabTalk NodeID="10" Label="Labtalk" DataID="357">1.</LabTalk><WksSel NodeID="10" Label="Worksheet Selection" DataID="350">0.</WksSel><GrObj NodeID="268435456" Label="Graphic Object Events" DataID="330" Use="0"><InitAnchors NodeID="10" Label="Initialization" DataID="339">1.</InitAnchors><Move NodeID="10" Label="Move" DataID="331">1.</Move><Moving NodeID="10" Label="Moving" DataID="332">0.</Moving><Resize NodeID="10" Label="Resize" DataID="333">0.</Resize><Resizing NodeID="10" Label="Resizing" DataID="334">0.</Resizing><Delete NodeID="10" Label="Delete" DataID="335">0.</Delete><Select NodeID="10" Label="Select" DataID="336">0.</Select><Unselect NodeID="10" Label="Unselect" DataID="337">0.</Unselect><BtnClick NodeID="10" Label="Button Click" DataID="338">0.</BtnClick><Rotate NodeID="10" Label="Rotate" DataID="340">0.</Rotate><Rotating NodeID="10" Label="Rotating" DataID="341">0.</Rotating><Skew NodeID="10" Label="Skew" DataID="342">0.</Skew><Skewing NodeID="10" Label="Skewing" DataID="343">0.</Skewing><EditEv NodeID="10" Label="Edit" DataID="344">0.</EditEv><Editing NodeID="10" Label="Editing" DataID="345">0.</Editing><NewSelection NodeID="10" Label="New Selection" DataID="346">0.</NewSelection><DeletePart NodeID="10" Label="Delete Part" DataID="347">0.</DeletePart><Keyboard NodeID="10" Label="Keyboard" DataID="348">0.</Keyboard><ObjType NodeID="13" Label="Type" Combo="Rect|Line" DataID="349">0.</ObjType></GrObj><Theme NodeID="268435456" Label="Theme" DataID="386"><UseInDialog NodeID="10" Label="Support Saving Themes in Dialog" DataID="372">0</UseInDialog><ShowInMenu NodeID="10" Label="Show Themes as Popups in Menu" DataID="352">0</ShowInMenu><SaveInBook NodeID="10" Label="Support Saving to Book" DataID="387">0.</SaveInBook><SaveInSheet NodeID="10" Label="Support Saving to Sheet" DataID="388">0.</SaveInSheet></Theme><mainmenu NodeID="268435456" Label="Menus" DataID="365" Use="3" BranchCombo="None|Main Menus|Context Menus|Both|Context Menus 1|Context Menus 2|Context Menus 3|Context Menus 4"><AddAsTool NodeID="10" Label="Add As Tool" DataID="366">0.</AddAsTool><ClassOp NodeID="10" Label="Class Operation" DataID="367">0.</ClassOp><GetN NodeID="13" Label="Auto GetN Dialog" Combo="None|Simple GetNBox|GetNGraphBox with Preview|GetNImageBox|Wizard|Custom" DataID="371">0</GetN><CustomDialog NodeID="11" Label="Custom Dialog Function" DataID="395" Show="0"></CustomDialog><DlgFromMenu NodeID="10" Label="Open Dialog from Menu for Option Index" DataID="374">1.</DlgFromMenu><checkMenu NodeID="10" Label="Check Menu" DataID="470">0.</checkMenu></mainmenu><windows NodeID="268435456" Label="Windows" DataID="450" Use="1"><graph NodeID="10" Label="Graph" DataID="368">0.</graph><worksheet NodeID="10" Label="Worksheet" DataID="369">1</worksheet><matrix NodeID="10" Label="Matrix" DataID="370">0.</matrix><report NodeID="10" Label="Report" DataID="360">0.</report><none NodeID="10" Label="Layout" DataID="359">0.</none><none NodeID="10" Label="None" DataID="361">0.</none></windows></UsageCtxt><outTree NodeID="10" Label="Generate LabTalk Tree upon execution" DataID="373">1.</outTree><askOutResultsLog NodeID="10" Label="Add Checkbox to Auto GetN Dialog about Results Log Output" DataID="393">0.</askOutResultsLog><outResultsLog NodeID="13" Label="Output to Results Log upon execution" Combo="None|All|Report Tree|First Input|First Output|All Outputs|All Except Trees" DataID="394">0.</outResultsLog><customButtons NodeID="11" Label="GetN Dialog Custom Buttons" DataID="391"></customButtons><syntax NodeID="41" Label="Command Line Usage" DataID="305" MultilineEditExpShrink="1" DispFormat="33554432" RowHeightRange="2-18"></syntax><vars NodeID="268435456" Label="Variables" Branch="1"/><modificationLog NodeID="41" Label="Modification Log" DataID="438" MultilineEditExpShrink="1" DispFormat="33554432" RowHeightRange="2-15">Max 9*01/2010 update menu description</modificationLog><codes NodeID="268435456" Label="Code" DataID="324"><rettype NodeID="11" Label="Return Type" Combo="void|int|double|string|vector" DataID="41">void</rettype><header NodeID="45" Label="Header" DataID="323" MultilineEditExpShrink="1" DispFormat="33554432" RowHeightRange="3-15"><![CDATA[//put additional include files here

//put your own support static functions here

/*------------------------------------------------------------------------------*
 * Modification Log:															*
 *	Folger 10/24/09 THROW_ERROR_WHEN_NO_COLUMN_SELECTED_TO_SLIDE_SHOW			*
 *	Sophy 3/25/2010 QA80-15232 SLIDE_SHOW_DISPLAY_ON_SAME_MONITOR_AS_ORIGIN_APP_WIN_SUPPORT
 *------------------------------------------------------------------------------*/

#define STR_COL_SLIDESHOW_REMINDER	"ColSlideShowHint"

#define IS_NUMBER_BETWEEN(num, n1, n2)	(n1 == num || n2 == num || (n1 < num && num < n2) || (n2 < num && num < n1) )

bool _is_plot_dependent_on_wks_col(const DataPlot& dp, const Worksheet& wks, const vector<int>& vnCols)
{
	ASSERT( dp.IsValid() && wks.IsValid() );
	DataRange dr;
	if ( dp.GetDataRange(dr) && dr )
	{
		for (int ii = 0; ii < dr.GetNumRanges(); ++ii)
		{
			Datasheet wksCur;
			int c1, c2;
			if ( dr.GetRange(wksCur, c1, c2, ii) )
			{
				for (int nn = 0; nn < vnCols.GetSize(); ++nn)
				{
					if ( IS_NUMBER_BETWEEN(vnCols[nn], c1, c2) && is_same_layer(wks, wksCur) )
					{
						return true;
					}
				}
			}
		}
	}
	return false;
}

bool _is_graph_slide_hidden(GraphPage& gp)
{
	ASSERT(gp.IsValid());
	Folder fd = gp.GetFolder();
	if (fd)
	{
		DWORD dw = gp.GetStatus(fd);
		if ( dw & PBFS_SLIDE_HIDDEN )
		{
			return true;
		}
	}
	return false;
}

int _get_wks_columns_dependents_pages(const Worksheet& wks, const vector<int>& vnCols, vector<string>& vsPageNames)
{
	vsPageNames.RemoveAll();
	if ( wks )
	{
		get_folder_pages_name(vsPageNames, OPTION_ALL_IN_OPJ);
		const int nPageSize = vsPageNames.GetSize();
		for (int ii = nPageSize-1; ii >= 0; --ii)
		{
			bool bIsDependent = false;
			GraphPage gp( vsPageNames[ii] );
			if ( gp && !_is_graph_slide_hidden(gp) )
			{
				foreach(GraphLayer gl in gp.Layers)
				{
					foreach(DataPlot dp in gl.DataPlots)
					{
						if ( _is_plot_dependent_on_wks_col(dp, wks, vnCols) )
						{
							bIsDependent = true;
							break;
						}
					}
				}
			}
			if ( !bIsDependent )
			{
				vsPageNames.RemoveAt(ii);
			}
		}
	}
	return vsPageNames.GetSize();
}
]]></header><code NodeID="45" Label="Expression" DataID="325" MultilineEditExpShrink="1" DispFormat="33554432" RowHeightRange="5-20"><![CDATA[Worksheet wks = Project.ActiveLayer();
if ( wks )
{
	vector<int> vnCols;
	if ( wks.GetSelectedColumns(vnCols) && vnCols.GetSize() > 0 )
	{
		vector<string> vsPageNames;
		int nDependentPage = _get_wks_columns_dependents_pages(wks, vnCols, vsPageNames);
		if ( vsPageNames.GetSize() <= 0 )
		{
			warning_msg_box(_L("There is no dependent graph of this column to show!"), false);
			return;
		}
		
		OptionalMessage(STR_COL_SLIDESHOW_REMINDER, MB_OK);

		int nTimer = 0;
		///Sophy 3/25/2010 QA80-15232 SLIDE_SHOW_DISPLAY_ON_SAME_MONITOR_AS_ORIGIN_APP_WIN_SUPPORT
		//DWORD dwCntrl = SLIDE_SHOW_TERMINATE | SLIDE_SHOW_INFOLINE_TOP;
		DWORD dwCntrl = SLIDE_SHOW_TERMINATE | SLIDE_SHOW_INFOLINE_TOP | SLIDE_SHOW_FOLLOW_ORIGIN;
		///end SLIDE_SHOW_DISPLAY_ON_SAME_MONITOR_AS_ORIGIN_APP_WIN_SUPPORT
		Project.StartSlideShow(vsPageNames, nTimer, dwCntrl);
	}
	///------ Folger 10/24/09 THROW_ERROR_WHEN_NO_COLUMN_SELECTED_TO_SLIDE_SHOW
	else
	{
		XF_THROW(XFERR_NO_ACTIVE_COLUMN);
	}
	///------ End THROW_ERROR_WHEN_NO_COLUMN_SELECTED_TO_SLIDE_SHOW
}]]></code><event1 NodeID="45" Label="Event1" DataID="327" MultilineEditExpShrink="1" DispFormat="33554432" RowHeightRange="5-20" Show="0"><![CDATA[return false;]]></event1><event2 NodeID="45" Label="Event2" DataID="376" MultilineEditExpShrink="1" DispFormat="33554432" RowHeightRange="5-20" Show="0"><![CDATA[return false;]]></event2><event3 NodeID="45" Label="Event3" DataID="378" MultilineEditExpShrink="1" DispFormat="33554432" RowHeightRange="5-20" Show="0"><![CDATA[]]></event3><event4 NodeID="45" Label="Event4" DataID="377" MultilineEditExpShrink="1" DispFormat="33554432" RowHeightRange="5-20" Show="0"><![CDATA[PictureHolder]]></event4><GetNEvent NodeID="47" Label="GetNBox Event" DataID="379" Show="0" TypeID="65543" BlobArrElementaryType="8" xmlns:dt="urn:schemas-microsoft-com:datatypes" dt:dt="bin.base64">AA==</GetNEvent></codes><SaveInOpj NodeID="10" Label="Save with Object" DataID="560">0.</SaveInOpj><optargindex NodeID="14" Label="Option Argument Index" DataID="72">0.</optargindex><version NodeID="14" Label="Version" DataID="73">1.</version><category NodeID="11" Label="Primary Category" DataID="74" Show="0">Data Manipulation\Worksheet</category><subcategory NodeID="11" Label="Primary Subcategory" DataID="77" Show="0"></subcategory><seccategory1 NodeID="11" Label="Secondary Category" DataID="75" Show="0"></seccategory1><secsubcategory1 NodeID="11" Label="Secondary Subcategory 1" DataID="78" Show="0"></secsubcategory1><seccategory2 NodeID="11" Label="Secondary Category 2" DataID="76" Show="0"></seccategory2><secsubcategory2 NodeID="11" Label="Secondary Subcategory 2" DataID="79" Show="0"></secsubcategory2><module NodeID="11" Label="Module" DataID="80"></module><subGroup NodeID="17" Label="Subgroup Index Within a Category" Combo="-10|-9|-8|-7|-6|-5|-4|-3|-2|-1|0|1|2|3|4|5|6|7|8|9" DataID="82">9.</subGroup><errmsgCount NodeID="14" Label="Number of Error Messages" DataID="412">0.</errmsgCount><helpe NodeID="268435456" Label="English Help" DataID="420" RepeatID="256"><info NodeID="41" Label="Auto Complete Hint" DataID="422" RowHeightRange="2-8"></info><summary NodeID="47" Label="Summary" DataID="421" Show="0"><![CDATA[]]></summary><example NodeID="47" Label="Examples" DataID="431" Show="0"><![CDATA[]]></example><ref NodeID="47" Label="References" DataID="432" Show="0"><![CDATA[]]></ref><algorithm NodeID="47" Label="Algorithm" DataID="434" Show="0"><![CDATA[]]></algorithm><parameters NodeID="47" Label="Parameters" DataID="444" Show="0"><![CDATA[]]></parameters><script NodeID="41" Label="LabTalk Script Example" Show="0" DataID="436" RowHeightRange="2-12"></script><errmsgs NodeID="47" Label="Error Messages" DataID="413" Show="0"></errmsgs></helpe><helpj NodeID="268435456" Label="Japanese Help" DataID="420" RepeatID="512"><description NodeID="11" Label="Description" DataID="440" CdPg="932">列に関連するグラフのスライドショー:指定した列と依存関係にある全てのグラフのスライドショーを行います</description><customButtons NodeID="11" Label="GetN Dialog Custom Buttons" DataID="448" CdPg="932"></customButtons><info NodeID="41" Label="Auto Complete Hint" DataID="422" RowHeightRange="2-8" CdPg="932"></info><summary NodeID="47" Label="Summary" DataID="421" Show="0" CdPg="932"><![CDATA[]]></summary><example NodeID="47" Label="Examples" DataID="431" Show="0" CdPg="932"><![CDATA[]]></example><ref NodeID="47" Label="References" DataID="432" Show="0" CdPg="932"><![CDATA[]]></ref><algorithm NodeID="47" Label="Algorithm" DataID="434" Show="0" CdPg="932"><![CDATA[]]></algorithm><parameters NodeID="47" Label="Parameters" DataID="444" Show="0" CdPg="932"><![CDATA[]]></parameters><script NodeID="41" Label="LabTalk Script Example" Show="0" DataID="436" RowHeightRange="2-12" CdPg="932"></script><errmsgs NodeID="47" Label="Error Messages" DataID="413" Show="0" CdPg="932"></errmsgs></helpj><helpg NodeID="268435456" Label="German Help" DataID="420" RepeatID="768"><description NodeID="11" Label="Description" DataID="440" CdPg="1252">Slide-Show der abhängigen Diagramme: Slide-Show aller Diagramme, die von den festgelegten Spalten abhängen</description><customButtons NodeID="11" Label="GetN Dialog Custom Buttons" DataID="448" CdPg="1252"></customButtons><info NodeID="41" Label="Auto Complete Hint" DataID="422" RowHeightRange="2-8" CdPg="1252"></info><summary NodeID="47" Label="Summary" DataID="421" Show="0" CdPg="1252"><![CDATA[]]></summary><example NodeID="47" Label="Examples" DataID="431" Show="0" CdPg="1252"><![CDATA[]]></example><ref NodeID="47" Label="References" DataID="432" Show="0" CdPg="1252"><![CDATA[]]></ref><algorithm NodeID="47" Label="Algorithm" DataID="434" Show="0" CdPg="1252"><![CDATA[]]></algorithm><parameters NodeID="47" Label="Parameters" DataID="444" Show="0" CdPg="1252"><![CDATA[]]></parameters><script NodeID="41" Label="LabTalk Script Example" Show="0" DataID="436" RowHeightRange="2-12" CdPg="1252"></script><errmsgs NodeID="47" Label="Error Messages" DataID="413" Show="0" CdPg="1252"></errmsgs></helpg><helpc NodeID="268435456" Label="Chinese Help" DataID="420" RepeatID="1024"><description NodeID="11" Label="Description" DataID="440" CdPg="936"></description><customButtons NodeID="11" Label="GetN Dialog Custom Buttons" DataID="448" CdPg="936"></customButtons><info NodeID="41" Label="Auto Complete Hint" DataID="422" RowHeightRange="2-8" CdPg="936"></info><summary NodeID="47" Label="Summary" DataID="421" Show="0" CdPg="936"><![CDATA[]]></summary><example NodeID="47" Label="Examples" DataID="431" Show="0" CdPg="936"><![CDATA[]]></example><ref NodeID="47" Label="References" DataID="432" Show="0" CdPg="936"><![CDATA[]]></ref><algorithm NodeID="47" Label="Algorithm" DataID="434" Show="0" CdPg="936"><![CDATA[]]></algorithm><parameters NodeID="47" Label="Parameters" DataID="444" Show="0" CdPg="936"><![CDATA[]]></parameters><script NodeID="41" Label="LabTalk Script Example" Show="0" DataID="436" RowHeightRange="2-12" CdPg="936"></script><errmsgs NodeID="47" Label="Error Messages" DataID="413" Show="0" CdPg="936"></errmsgs></helpc><SkipHiddenInDlg NodeID="10" Label="Skip hidden in dialog" DataID="295">0.</SkipHiddenInDlg><ClearMsg NodeID="10" Label="Auto Clear Error Message in dialog" DataID="296">1.</ClearMsg><KeepBtnStatus NodeID="10" Label="Keep Button Status for Event Handler" DataID="298">0.</KeepBtnStatus><SptApplyUndoButtonSts NodeID="10" Label="Control Apply and Undo button by User" DataID="294">0.</SptApplyUndoButtonSts><PreviewButton NodeID="10" Label="Show Preview Button" DataID="299">0.</PreviewButton><AutoApplyChkbox NodeID="10" Label="Show Auto Apply CheckBox" DataID="290">1.</AutoApplyChkbox><SkipHelpDoc NodeID="10" Label="Skip Help Document Processing" DataID="297">0.</SkipHelpDoc><SupportFolderLastUsed NodeID="10" Label="Support Folder Last Used Theme" DataID="291">0.</SupportFolderLastUsed><NotCloseOnEnterKey NodeID="10" Label="Do not Close Dialog upon Enter Key" DataID="292">0.</NotCloseOnEnterKey><seeAlso NodeID="11" Label="See Also" DataID="430"></seeAlso><relatedXF NodeID="11" Label="Related X-Functions" DataID="442"></relatedXF></OriginStorage>
