<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.linuxmce.org/index.php?action=history&amp;feed=atom&amp;title=DataGrid_Objects</id>
	<title>DataGrid Objects - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.linuxmce.org/index.php?action=history&amp;feed=atom&amp;title=DataGrid_Objects"/>
	<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=DataGrid_Objects&amp;action=history"/>
	<updated>2026-10-27T11:18:27Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=DataGrid_Objects&amp;diff=23810&amp;oldid=prev</id>
		<title>Marie.o: beautification</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=DataGrid_Objects&amp;diff=23810&amp;oldid=prev"/>
		<updated>2010-05-17T21:06:22Z</updated>

		<summary type="html">&lt;p&gt;beautification&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 21:06, 17 May 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l7&quot;&gt;Line 7:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 7:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Additionally in the Data Grid generator you can attach attributes to each cell, which are a pair of strings, such as color=blue, size=l, etc.  In Designer you can specify as parameters for the datagrid PK_DesignObj_Row1, PK_DesignObj_Coll1 and PK_DesignObj_Cell.  In this case those objects will be used in place of the normally rendered cells; the objects are positioned in Designer in a grid for the rows and columns, and are automatically hidden when there is no corresponding cell.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Additionally in the Data Grid generator you can attach attributes to each cell, which are a pair of strings, such as color=blue, size=l, etc.  In Designer you can specify as parameters for the datagrid PK_DesignObj_Row1, PK_DesignObj_Coll1 and PK_DesignObj_Cell.  In this case those objects will be used in place of the normally rendered cells; the objects are positioned in Designer in a grid for the rows and columns, and are automatically hidden when there is no corresponding cell.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Example for Add Software grid&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;:&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== &lt;/ins&gt;Example for Add Software grid &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;We have a grid that lists software modules the user can install.  Each row needs to list the title of the module, show an icon for the software, and display a check box if it&amp;#039;s virus free.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;We have a grid that lists software modules the user can install.  Each row needs to list the title of the module, show an icon for the software, and display a check box if it&amp;#039;s virus free.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;We create an object in Designer for the cells in the grid, and on it place a text object with &quot;&amp;lt;%=CA:Title%&amp;gt;&quot;.  This means the text will contain the cell&#039;s attribute &quot;Title&quot;.  Create a blank bitmap object with no graphic to represent the icon, and another which contains a check box for &#039;virus free&#039;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;We create an object in Designer for the cells in the grid, and on it place a text object with &quot;&amp;lt;%=CA:Title%&amp;gt;&quot;.  This means the text will contain the cell&#039;s attribute &quot;Title&quot;.   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &lt;/ins&gt;Create a blank bitmap object with no graphic to represent the icon, and another which contains a check box for &#039;virus free&#039;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Create a new DataGrid in Designer and place on it all 3 of those objects, marking the &#039;virus free&#039; one as &#039;can hide&#039;, meaning it won&#039;t always be visible.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &lt;/ins&gt;Create a new DataGrid in Designer and place on it all 3 of those objects, marking the &#039;virus free&#039; one as &#039;can hide&#039;, meaning it won&#039;t always be visible.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &lt;/ins&gt;Create a data grid generator (in this case in general info plugin) and register it as follows:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Create a data grid generator (in this case in general info plugin) and register it as follows:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/ins&gt;bool General_Info_Plugin::Register() {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/ins&gt;...&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &lt;/del&gt;bool General_Info_Plugin::Register() {&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &lt;/del&gt;...&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   	m_pDatagrid_Plugin-&amp;gt;RegisterDatagridGenerator(&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   	m_pDatagrid_Plugin-&amp;gt;RegisterDatagridGenerator(&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   		new DataGridGeneratorCallBack(this, (DCEDataGridGeneratorFn) (&amp;amp;General_Info_Plugin::AddSoftware)),&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   		new DataGridGeneratorCallBack(this, (DCEDataGridGeneratorFn) (&amp;amp;General_Info_Plugin::AddSoftware)),&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l25&quot;&gt;Line 25:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 22:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;in the generator code we retrieve the software modules from the database and create a cell for each with the correct attributes:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;in the generator code we retrieve the software modules from the database and create a cell for each with the correct attributes:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &lt;/del&gt;class DataGridTable *General_Info_Plugin::AddSoftware( string GridID, string Parms, void *ExtraData, int *iPK_Variable, string&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/ins&gt;class DataGridTable *General_Info_Plugin::AddSoftware( string GridID, string Parms, void *ExtraData, int *iPK_Variable, string&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  *sValue_To_Assign, class Message *pMessage ) {&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  *sValue_To_Assign, class Message *pMessage ) {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   	DataGridTable *pDataGrid = new DataGridTable();&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   	DataGridTable *pDataGrid = new DataGridTable();&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   	DataGridCell *pCell;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   	DataGridCell *pCell;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   	string sql=&amp;quot;SELECT PK_Software, Iconstr, Title, Category, Rating, Virus_Free, Installation_status, Description, Homeurl  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   	string sql=&amp;quot;SELECT PK_Software, Iconstr, Title, Category, Rating, Virus_Free, Installation_status, Description, Homeurl  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   FROM Software WHERE FK_Device=&amp;quot;+sPK_Device_PC+&amp;quot; ORDER BY Title&amp;quot;;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   FROM Software WHERE FK_Device=&amp;quot;+sPK_Device_PC+&amp;quot; ORDER BY Title&amp;quot;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   	int iRow=0;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   	int iRow=0;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   	if( (result.r = m_pDatabase_pluto_main-&amp;gt;mysql_query_result(sql)) )&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   	if( (result.r = m_pDatabase_pluto_main-&amp;gt;mysql_query_result(sql)) )&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Marie.o</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=DataGrid_Objects&amp;diff=5155&amp;oldid=prev</id>
		<title>Rwilson131 at 02:19, 6 September 2007</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=DataGrid_Objects&amp;diff=5155&amp;oldid=prev"/>
		<updated>2007-09-06T02:19:26Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 02:19, 6 September 2007&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l144&quot;&gt;Line 144:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 144:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   	return false; // Keep processing it&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   	return false; // Keep processing it&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   }&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category: Programmer&#039;s Guide]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Rwilson131</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=DataGrid_Objects&amp;diff=3465&amp;oldid=prev</id>
		<title>Jerry finn at 16:13, 16 March 2007</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=DataGrid_Objects&amp;diff=3465&amp;oldid=prev"/>
		<updated>2007-03-16T16:13:07Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 16:13, 16 March 2007&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;table width=&quot;100%&quot;&amp;gt; &amp;lt;tr&amp;gt;&amp;lt;td bgcolor=&quot;#FFCFCF&quot;&amp;gt;This page was written by Pluto and imported with their permission when LinuxMCE branched off in February, 2007.  In general any information should apply to LinuxMCE.  However, this page should be edited to reflect changes to LinuxMCE and remove old references to Pluto.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &amp;lt;/table&amp;gt;&lt;/del&gt;Data grids are objects shown on the Orbiters which have dynamically changing data in the rows and columns, which data is specified in code.  To create a DataGrid you must add a new DataGrid to the DataGrid table in pluto_main, and create a function, usually in a plugin, which builds the rows and columns of data.  Upon startup call the function RegisterDatagridGenerator in the DataGrid plugin to specify the function that provides the data for the data grid.  In Designer create a data grid object on a screen and specify the data grid id and the parameters to be passed to the data grid generator in the DesignObjParameter &#039;options&#039;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Data grids are objects shown on the Orbiters which have dynamically changing data in the rows and columns, which data is specified in code.  To create a DataGrid you must add a new DataGrid to the DataGrid table in pluto_main, and create a function, usually in a plugin, which builds the rows and columns of data.  Upon startup call the function RegisterDatagridGenerator in the DataGrid plugin to specify the function that provides the data for the data grid.  In Designer create a data grid object on a screen and specify the data grid id and the parameters to be passed to the data grid generator in the DesignObjParameter &#039;options&#039;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In the Data Grid Generator create cells in rows and columns, and attach to each cell a &amp;#039;value&amp;#039; and optionally &amp;#039;text&amp;#039;.  When the screen with a DataGrid first appears Orbiter will fire the command &amp;quot;Populate DataGrid&amp;quot; which will result in the DataGrid Generator getting called to populate the entire contents of the grid, and then every time it needs to render a block of rows/columns it sends the command &amp;quot;Request DataGrid Contents&amp;quot;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In the Data Grid Generator create cells in rows and columns, and attach to each cell a &amp;#039;value&amp;#039; and optionally &amp;#039;text&amp;#039;.  When the screen with a DataGrid first appears Orbiter will fire the command &amp;quot;Populate DataGrid&amp;quot; which will result in the DataGrid Generator getting called to populate the entire contents of the grid, and then every time it needs to render a block of rows/columns it sends the command &amp;quot;Request DataGrid Contents&amp;quot;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Jerry finn</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=DataGrid_Objects&amp;diff=2782&amp;oldid=prev</id>
		<title>Wikiadmin: spelling corrections</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=DataGrid_Objects&amp;diff=2782&amp;oldid=prev"/>
		<updated>2006-12-10T15:01:09Z</updated>

		<summary type="html">&lt;p&gt;spelling corrections&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 15:01, 10 December 2006&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;table width=&quot;100%&quot;&amp;gt; &amp;lt;tr&amp;gt;&amp;lt;td bgcolor=&quot;#FFCFCF&quot;&amp;gt;This page was written by Pluto and imported with their permission when LinuxMCE branched off in February, 2007.  In general any information should apply to LinuxMCE.  However, this page should be edited to reflect changes to LinuxMCE and remove old references to Pluto.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &amp;lt;/table&amp;gt;Data grids are objects shown on the Orbiters which have dynamically changing data in the rows and columns, which data is specified in code.  To create a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;datagrid &lt;/del&gt;you must add a new DataGrid to the DataGrid table in pluto_main, and create a function, usually in a plugin, which builds the rows and columns of data.  Upon startup call the function RegisterDatagridGenerator in the DataGrid plugin to specify the function that provides the data for the data grid.  In Designer create a data grid object on a screen and specify the data grid id and the parameters to be passed to the data grid generator in the DesignObjParameter &#039;options&#039;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;table width=&quot;100%&quot;&amp;gt; &amp;lt;tr&amp;gt;&amp;lt;td bgcolor=&quot;#FFCFCF&quot;&amp;gt;This page was written by Pluto and imported with their permission when LinuxMCE branched off in February, 2007.  In general any information should apply to LinuxMCE.  However, this page should be edited to reflect changes to LinuxMCE and remove old references to Pluto.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &amp;lt;/table&amp;gt;Data grids are objects shown on the Orbiters which have dynamically changing data in the rows and columns, which data is specified in code.  To create a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;DataGrid &lt;/ins&gt;you must add a new DataGrid to the DataGrid table in pluto_main, and create a function, usually in a plugin, which builds the rows and columns of data.  Upon startup call the function RegisterDatagridGenerator in the DataGrid plugin to specify the function that provides the data for the data grid.  In Designer create a data grid object on a screen and specify the data grid id and the parameters to be passed to the data grid generator in the DesignObjParameter &#039;options&#039;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In the Data Grid Generator create cells in rows and columns, and attach to each cell a &#039;value&#039; and optionally &#039;text&#039;.  When the screen with a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;datagrid &lt;/del&gt;first appears Orbiter will fire the command &quot;Populate &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Datagrid&lt;/del&gt;&quot; which will result in the &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Datagrid &lt;/del&gt;Generator getting called to populate the entire contents of the grid, and then every time it needs to render a block of rows/columns it sends the command &quot;Request &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Datagrid &lt;/del&gt;Contents&quot;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In the Data Grid Generator create cells in rows and columns, and attach to each cell a &#039;value&#039; and optionally &#039;text&#039;.  When the screen with a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;DataGrid &lt;/ins&gt;first appears Orbiter will fire the command &quot;Populate &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;DataGrid&lt;/ins&gt;&quot; which will result in the &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;DataGrid &lt;/ins&gt;Generator getting called to populate the entire contents of the grid, and then every time it needs to render a block of rows/columns it sends the command &quot;Request &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;DataGrid &lt;/ins&gt;Contents&quot;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;When a cell in the &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;datagrid &lt;/del&gt;is selected orbiter will store the &#039;value&#039; for the cell into the variable specified in the parameter for the &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;datagrid&lt;/del&gt;, and Orbiter will fire all the commands in the &quot;On Activate&quot; list.  You can also use ScreenHandler&#039;s RegisterCallBack method to create a function that is called whenever a cell is selected (use the type cbDataGridSelected).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;When a cell in the &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;DataGrid &lt;/ins&gt;is selected orbiter will store the &#039;value&#039; for the cell into the variable specified in the parameter for the &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;DataGrid&lt;/ins&gt;, and Orbiter will fire all the commands in the &quot;On Activate&quot; list.  You can also use ScreenHandler&#039;s RegisterCallBack method to create a function that is called whenever a cell is selected (use the type cbDataGridSelected).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Additionally in the Data Grid generator you can attach attributes to each cell, which are a pair of strings, such as color=blue, size=l, etc.  In Designer you can specify as parameters for the datagrid PK_DesignObj_Row1, PK_DesignObj_Coll1 and PK_DesignObj_Cell.  In this case those objects will be used in place of the normally rendered cells; the objects are positioned in Designer in a grid for the rows and columns, and are automatically hidden when there is no corresponding cell.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Additionally in the Data Grid generator you can attach attributes to each cell, which are a pair of strings, such as color=blue, size=l, etc.  In Designer you can specify as parameters for the datagrid PK_DesignObj_Row1, PK_DesignObj_Coll1 and PK_DesignObj_Cell.  In this case those objects will be used in place of the normally rendered cells; the objects are positioned in Designer in a grid for the rows and columns, and are automatically hidden when there is no corresponding cell.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l13&quot;&gt;Line 13:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 13:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;We create an object in Designer for the cells in the grid, and on it place a text object with &amp;quot;&amp;lt;%=CA:Title%&amp;gt;&amp;quot;.  This means the text will contain the cell&amp;#039;s attribute &amp;quot;Title&amp;quot;.  Create a blank bitmap object with no graphic to represent the icon, and another which contains a check box for &amp;#039;virus free&amp;#039;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;We create an object in Designer for the cells in the grid, and on it place a text object with &amp;quot;&amp;lt;%=CA:Title%&amp;gt;&amp;quot;.  This means the text will contain the cell&amp;#039;s attribute &amp;quot;Title&amp;quot;.  Create a blank bitmap object with no graphic to represent the icon, and another which contains a check box for &amp;#039;virus free&amp;#039;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Create a new &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;datagrid &lt;/del&gt;in Designer and place on it all 3 of those objects, marking the &#039;virus free&#039; one as &#039;can hide&#039;, meaning it won&#039;t always be visible.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Create a new &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;DataGrid &lt;/ins&gt;in Designer and place on it all 3 of those objects, marking the &#039;virus free&#039; one as &#039;can hide&#039;, meaning it won&#039;t always be visible.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Create a data grid generator (in this case in general info plugin) and register it as follows:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Create a data grid generator (in this case in general info plugin) and register it as follows:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=DataGrid_Objects&amp;diff=2679&amp;oldid=prev</id>
		<title>Wikiadmin: Changed identation</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=DataGrid_Objects&amp;diff=2679&amp;oldid=prev"/>
		<updated>2006-10-30T10:50:17Z</updated>

		<summary type="html">&lt;p&gt;Changed identation&lt;/p&gt;
&lt;a href=&quot;http://wiki.linuxmce.org/index.php?title=DataGrid_Objects&amp;amp;diff=2679&amp;amp;oldid=2678&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=DataGrid_Objects&amp;diff=2678&amp;oldid=prev</id>
		<title>Wikiadmin at 05:06, 30 October 2006</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=DataGrid_Objects&amp;diff=2678&amp;oldid=prev"/>
		<updated>2006-10-30T05:06:01Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;table width=&amp;quot;100%&amp;quot;&amp;gt; &amp;lt;tr&amp;gt;&amp;lt;td bgcolor=&amp;quot;#FFCFCF&amp;quot;&amp;gt;This page was written by Pluto and imported with their permission when LinuxMCE branched off in February, 2007.  In general any information should apply to LinuxMCE.  However, this page should be edited to reflect changes to LinuxMCE and remove old references to Pluto.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &amp;lt;/table&amp;gt;Data grids are objects shown on the Orbiters which have dynamically changing data in the rows and columns, which data is specified in code.  To create a datagrid you must add a new DataGrid to the DataGrid table in pluto_main, and create a function, usually in a plugin, which builds the rows and columns of data.  Upon startup call the function RegisterDatagridGenerator in the DataGrid plugin to specify the function that provides the data for the data grid.  In Designer create a data grid object on a screen and specify the data grid id and the parameters to be passed to the data grid generator in the DesignObjParameter &amp;#039;options&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
In the Data Grid Generator create cells in rows and columns, and attach to each cell a &amp;#039;value&amp;#039; and optionally &amp;#039;text&amp;#039;.  When the screen with a datagrid first appears Orbiter will fire the command &amp;quot;Populate Datagrid&amp;quot; which will result in the Datagrid Generator getting called to populate the entire contents of the grid, and then every time it needs to render a block of rows/columns it sends the command &amp;quot;Request Datagrid Contents&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
When a cell in the datagrid is selected orbiter will store the &amp;#039;value&amp;#039; for the cell into the variable specified in the parameter for the datagrid, and Orbiter will fire all the commands in the &amp;quot;On Activate&amp;quot; list.  You can also use ScreenHandler&amp;#039;s RegisterCallBack method to create a function that is called whenever a cell is selected (use the type cbDataGridSelected).&lt;br /&gt;
&lt;br /&gt;
Additionally in the Data Grid generator you can attach attributes to each cell, which are a pair of strings, such as color=blue, size=l, etc.  In Designer you can specify as parameters for the datagrid PK_DesignObj_Row1, PK_DesignObj_Coll1 and PK_DesignObj_Cell.  In this case those objects will be used in place of the normally rendered cells; the objects are positioned in Designer in a grid for the rows and columns, and are automatically hidden when there is no corresponding cell.&lt;br /&gt;
&lt;br /&gt;
Example for Add Software grid:&lt;br /&gt;
&lt;br /&gt;
We have a grid that lists software modules the user can install.  Each row needs to list the title of the module, show an icon for the software, and display a check box if it&amp;#039;s virus free.&lt;br /&gt;
&lt;br /&gt;
We create an object in Designer for the cells in the grid, and on it place a text object with &amp;quot;&amp;lt;%=CA:Title%&amp;gt;&amp;quot;.  This means the text will contain the cell&amp;#039;s attribute &amp;quot;Title&amp;quot;.  Create a blank bitmap object with no graphic to represent the icon, and another which contains a check box for &amp;#039;virus free&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Create a new datagrid in Designer and place on it all 3 of those objects, marking the &amp;#039;virus free&amp;#039; one as &amp;#039;can hide&amp;#039;, meaning it won&amp;#039;t always be visible.&lt;br /&gt;
&lt;br /&gt;
Create a data grid generator (in this case in general info plugin) and register it as follows:&lt;br /&gt;
&lt;br /&gt;
bool General_Info_Plugin::Register() {&lt;br /&gt;
...&lt;br /&gt;
	m_pDatagrid_Plugin-&amp;gt;RegisterDatagridGenerator(&lt;br /&gt;
		new DataGridGeneratorCallBack(this, (DCEDataGridGeneratorFn) (&amp;amp;General_Info_Plugin::AddSoftware)),&lt;br /&gt;
		DATAGRID_Installable_Apps_CONST, PK_DeviceTemplate_get());&lt;br /&gt;
&lt;br /&gt;
in the generator code we retrieve the software modules from the database and create a cell for each with the correct attributes:&lt;br /&gt;
&lt;br /&gt;
class DataGridTable *General_Info_Plugin::AddSoftware( string GridID, string Parms, void *ExtraData, int *iPK_Variable, string *sValue_To_Assign, class Message *pMessage ) {&lt;br /&gt;
	DataGridTable *pDataGrid = new DataGridTable();&lt;br /&gt;
	DataGridCell *pCell;&lt;br /&gt;
&lt;br /&gt;
	string sql=&amp;quot;SELECT PK_Software, Iconstr, Title, Category, Rating, Virus_Free, Installation_status, Description, Homeurl FROM Software WHERE FK_Device=&amp;quot;+sPK_Device_PC+&amp;quot; ORDER BY Title&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	int iRow=0;&lt;br /&gt;
	if( (result.r = m_pDatabase_pluto_main-&amp;gt;mysql_query_result(sql)) )&lt;br /&gt;
	{&lt;br /&gt;
		unsigned long *lengths;&lt;br /&gt;
		while((row=mysql_fetch_row(result.r))){&lt;br /&gt;
			lengths=mysql_fetch_lengths(result.r);&lt;br /&gt;
			int size = 0;&lt;br /&gt;
			char *data = NULL;&lt;br /&gt;
&lt;br /&gt;
			pCell = new DataGridCell(&amp;quot;&amp;quot;, row[0]);&lt;br /&gt;
			if(lengths[1]){&lt;br /&gt;
				char *Data=new char[lengths[1]];&lt;br /&gt;
				memcpy(Data,row[1],lengths[1]);&lt;br /&gt;
				pCell-&amp;gt;SetImage(Data, lengths[1], GR_PNG);&lt;br /&gt;
			}&lt;br /&gt;
			pCell-&amp;gt;m_mapAttributes[&amp;quot;Title&amp;quot;] = row[2] ? row[2] : &amp;quot;&amp;quot;;&lt;br /&gt;
			pCell-&amp;gt;m_mapAttributes[&amp;quot;Category&amp;quot;] = row[3] ? row[3] : &amp;quot;&amp;quot;;&lt;br /&gt;
			pCell-&amp;gt;m_mapAttributes[&amp;quot;Rating&amp;quot;] = row[4] ? row[4] : &amp;quot;&amp;quot;;&lt;br /&gt;
			pCell-&amp;gt;m_mapAttributes[&amp;quot;Rating&amp;quot;] = row[4] ? row[4] : &amp;quot;&amp;quot;;&lt;br /&gt;
			pCell-&amp;gt;m_mapAttributes[&amp;quot;Virus_Free&amp;quot;] = row[5] ? row[5] : &amp;quot;&amp;quot;;&lt;br /&gt;
			pCell-&amp;gt;m_mapAttributes[&amp;quot;Installation_status&amp;quot;] = row[6] ? row[6] : &amp;quot;&amp;quot;;&lt;br /&gt;
			pCell-&amp;gt;m_mapAttributes[&amp;quot;Description&amp;quot;] = row[7] ? row[7] : &amp;quot;&amp;quot;;&lt;br /&gt;
			pDataGrid-&amp;gt;SetData(0,iRow++,pCell);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	return pDataGrid;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Then in orbiter we create a screen handler for this screen and register interceptors:&lt;br /&gt;
&lt;br /&gt;
/*virtual*/ void ScreenHandler::SCREEN_Add_Software(long PK_Screen)&lt;br /&gt;
{&lt;br /&gt;
	ScreenHandlerBase::SCREEN_Add_Software(PK_Screen);&lt;br /&gt;
	RegisterCallBack(cbDataGridSelected, (ScreenHandlerCallBack) &amp;amp;ScreenHandler::AddSoftware_GridSelected, new DatagridCellBackData());&lt;br /&gt;
	RegisterCallBack(cbDataGridRendering, (ScreenHandlerCallBack) &amp;amp;ScreenHandler::AddSoftware_GridRendering,	new DatagridAcquiredBackData());&lt;br /&gt;
}&lt;br /&gt;
//-----------------------------------------------------------------------------------------------------&lt;br /&gt;
bool ScreenHandler::AddSoftware_GridRendering(CallBackData *pData)&lt;br /&gt;
{&lt;br /&gt;
	// This is called every time a new section of the grid is to be rendered.  We want to find the child object for the &amp;#039;virus free&amp;#039; check and hide it if it&amp;#039;s virus free,&lt;br /&gt;
	// and also find the child object for the icon and assign it the picture associated with the cell.&lt;br /&gt;
	DatagridAcquiredBackData *pDatagridAcquiredBackData = (DatagridAcquiredBackData *) pData;  // Call back data containing relevant values for the grid/table being rendered&lt;br /&gt;
&lt;br /&gt;
	// Iterate through all the cells&lt;br /&gt;
	for(MemoryDataTable::iterator it=pDatagridAcquiredBackData-&amp;gt;m_pDataGridTable-&amp;gt;m_MemoryDataTable.begin();it!=pDatagridAcquiredBackData-&amp;gt;m_pDataGridTable-&amp;gt;m_MemoryDataTable.end();++it)&lt;br /&gt;
	{&lt;br /&gt;
		DataGridCell *pCell = it-&amp;gt;second;&lt;br /&gt;
		pair&amp;lt;int,int&amp;gt; colRow = DataGridTable::CovertColRowType(it-&amp;gt;first);  // Get the column/row for the cell&lt;br /&gt;
&lt;br /&gt;
		// See if there is an object assigned for this column/row&lt;br /&gt;
		map&amp;lt; pair&amp;lt;int,int&amp;gt;, DesignObj_Orbiter *&amp;gt;::iterator itobj = pDatagridAcquiredBackData-&amp;gt;m_pObj-&amp;gt;m_mapChildDgObjects.find( colRow );&lt;br /&gt;
		if( itobj!=pDatagridAcquiredBackData-&amp;gt;m_pObj-&amp;gt;m_mapChildDgObjects.end() )&lt;br /&gt;
		{&lt;br /&gt;
			DesignObj_Orbiter *pObj = itobj-&amp;gt;second;  // This is the cell&amp;#039;s object.&lt;br /&gt;
			DesignObj_DataList::iterator iHao;&lt;br /&gt;
&lt;br /&gt;
			// Iterate through all the object&amp;#039;s children&lt;br /&gt;
			for( iHao=pObj-&amp;gt;m_ChildObjects.begin(  ); iHao != pObj-&amp;gt;m_ChildObjects.end(  ); ++iHao )&lt;br /&gt;
			{&lt;br /&gt;
				DesignObj_Orbiter *pDesignObj_Orbiter = (DesignObj_Orbiter *)( *iHao );&lt;br /&gt;
				if( pDesignObj_Orbiter-&amp;gt;m_iBaseObjectID==DESIGNOBJ_Installed_Apps_Not_Virus_Free_CONST )&lt;br /&gt;
					pDesignObj_Orbiter-&amp;gt;m_bHidden = pCell-&amp;gt;m_mapAttributes_Find(&amp;quot;Virus_Free&amp;quot;)==&amp;quot;Yes&amp;quot;;  // Hide this if it&amp;#039;s virus fee&lt;br /&gt;
				if( pDesignObj_Orbiter-&amp;gt;m_iBaseObjectID==DESIGNOBJ_Installed_Apps_Icon_CONST )&lt;br /&gt;
					m_pOrbiter-&amp;gt;m_pOrbiterRenderer-&amp;gt;UpdateObjectImage(pDesignObj_Orbiter-&amp;gt;m_ObjectID, &amp;quot;PNG&amp;quot;,&lt;br /&gt;
						pCell-&amp;gt;m_pGraphicData, pCell-&amp;gt;m_GraphicLength, &amp;quot;0&amp;quot;);  // Store the icon, which is cell&amp;#039;s picture&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	return false;&lt;br /&gt;
}&lt;br /&gt;
//-----------------------------------------------------------------------------------------------------&lt;br /&gt;
bool ScreenHandler::AddSoftware_GridSelected(CallBackData *pData)&lt;br /&gt;
{&lt;br /&gt;
	DatagridCellBackData *pCellInfoData = (DatagridCellBackData *)pData;&lt;br /&gt;
	if( pCellInfoData-&amp;gt;m_pDataGridCell )&lt;br /&gt;
	{&lt;br /&gt;
		int PK_Software = atoi(pCellInfoData-&amp;gt;m_pDataGridCell-&amp;gt;GetValue());&lt;br /&gt;
		string sText,sCommand;&lt;br /&gt;
		if( PK_Software&amp;gt;0 )&lt;br /&gt;
		{&lt;br /&gt;
			sText = m_pOrbiter-&amp;gt;m_mapTextString[TEXT_Confirm_Add_Software_CONST];&lt;br /&gt;
			sCommand = StringUtils::itos(m_pOrbiter-&amp;gt;m_dwPK_Device) + &amp;quot; &amp;quot; + StringUtils::itos(m_pOrbiter-&amp;gt;m_dwPK_Device_GeneralInfoPlugIn)&lt;br /&gt;
				+ &amp;quot; 1 &amp;quot; + TOSTRING(COMMAND_Add_Software_CONST) + &amp;quot; &amp;quot; + TOSTRING(COMMANDPARAMETER_PK_Software_CONST)&lt;br /&gt;
				+ &amp;quot; &amp;quot; + pCellInfoData-&amp;gt;m_pDataGridCell-&amp;gt;GetValue() + &amp;quot; &amp;quot; TOSTRING(COMMANDPARAMETER_PK_Device_CONST) &amp;quot; &amp;quot;&lt;br /&gt;
				+ StringUtils::itos(m_pOrbiter-&amp;gt;m_pLocationInfo-&amp;gt;m_dwPK_Device_MediaDirector) + &amp;quot; &amp;quot; TOSTRING(COMMANDPARAMETER_TrueFalse_CONST) &amp;quot; 1&amp;quot;;&lt;br /&gt;
		}&lt;br /&gt;
		else if( PK_Software&amp;lt;0 )&lt;br /&gt;
		{&lt;br /&gt;
			sText = m_pOrbiter-&amp;gt;m_mapTextString[TEXT_Confirm_Add_Software_CONST];&lt;br /&gt;
			sCommand = StringUtils::itos(m_pOrbiter-&amp;gt;m_dwPK_Device) + &amp;quot; &amp;quot; + StringUtils::itos(m_pOrbiter-&amp;gt;m_dwPK_Device_GeneralInfoPlugIn)&lt;br /&gt;
				+ &amp;quot; 1 &amp;quot; + TOSTRING(COMMAND_Add_Software_CONST) + &amp;quot; &amp;quot; + TOSTRING(COMMANDPARAMETER_PK_Software_CONST)&lt;br /&gt;
				+ &amp;quot; &amp;quot; + StringUtils::itos(PK_Software*-1) + &amp;quot; &amp;quot; TOSTRING(COMMANDPARAMETER_PK_Device_CONST) &amp;quot; &amp;quot;&lt;br /&gt;
				+ StringUtils::itos(m_pOrbiter-&amp;gt;m_pLocationInfo-&amp;gt;m_dwPK_Device_MediaDirector) + &amp;quot; &amp;quot; TOSTRING(COMMANDPARAMETER_TrueFalse_CONST) &amp;quot; 0&amp;quot;;&lt;br /&gt;
		}&lt;br /&gt;
		else&lt;br /&gt;
			return false; // No software was selected&lt;br /&gt;
&lt;br /&gt;
		DataGridCell *pCell = pCellInfoData-&amp;gt;m_pDesignObj_DataGrid-&amp;gt;DataGridTable_Get() ? pCellInfoData-&amp;gt;m_pDesignObj_DataGrid-&amp;gt;DataGridTable_Get()-&amp;gt;GetData( 0, pCellInfoData-&amp;gt;m_Row ) : NULL;&lt;br /&gt;
		if( pCell )&lt;br /&gt;
			sText+=&amp;quot;\n&amp;quot; + pCell-&amp;gt;m_mapAttributes[&amp;quot;Title&amp;quot;];&lt;br /&gt;
		DisplayMessageOnOrbiter(0,sText,false,&amp;quot;30&amp;quot;,false,m_pOrbiter-&amp;gt;m_mapTextString[TEXT_YES_CONST],sCommand,m_pOrbiter-&amp;gt;m_mapTextString[TEXT_NO_CONST]);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	return false; // Keep processing it&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
	</entry>
</feed>