<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to feature-requests</title><link>https://sourceforge.net/p/sourcegrid/feature-requests/</link><description>Recent changes to feature-requests</description><atom:link href="https://sourceforge.net/p/sourcegrid/feature-requests/feed.rss" rel="self"/><language>en</language><lastBuildDate>Sun, 03 Feb 2008 11:38:03 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/sourcegrid/feature-requests/feed.rss" rel="self" type="application/rss+xml"/><item><title>Select all the cells using Ctrl+A</title><link>https://sourceforge.net/p/sourcegrid/feature-requests/29/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Select all the cells using Ctrl+A&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Davide Icardi</dc:creator><pubDate>Sun, 03 Feb 2008 11:38:03 -0000</pubDate><guid>https://sourceforge.netc6f7a37b658cf7e84bc259a1bc2d3bdbc64547fc</guid></item><item><title>Improving performance Rows/Columns</title><link>https://sourceforge.net/p/sourcegrid/feature-requests/28/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Here a suggestion on how to improve performance:&lt;/p&gt;
&lt;p&gt;---------------------------------------&lt;br /&gt;
First off all retreiving the row and column indices is very time&lt;br /&gt;
consuming - about 9% each in my app. The reason is, that IndexOf in&lt;br /&gt;
List&amp;lt;&amp;gt; has to iterate over the content to get the index back.&lt;/p&gt;
&lt;p&gt;If you add some little overhead and use a Dictionary&amp;lt;RowInfo,int&amp;gt;, you&lt;br /&gt;
can benifit from the hashtable the Dictionary uses for keys. The index&lt;br /&gt;
access would be multiple times faster. (See attachment)&lt;/p&gt;
&lt;p&gt;Another time consuming hot spot, i found while profiling, is&lt;br /&gt;
Range.Normalize(). I rewrote it to:&lt;/p&gt;
&lt;p&gt;private void Normalize()&lt;br /&gt;
{&lt;br /&gt;
if ((m_Start.Row &amp;lt;= m_End.Row) &amp;amp;&amp;amp; (m_Start.Column &amp;lt;= m_End.Column))&lt;br /&gt;
{&lt;br /&gt;
//nothing to do&lt;br /&gt;
return;&lt;br /&gt;
} //~ if&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
Position l_min = Position.Min( m_Start, m_End );&lt;br /&gt;
Position l_max = Position.Max( m_Start, m_End );&lt;br /&gt;
m_Start = l_min;&lt;br /&gt;
m_End = l_max;&lt;br /&gt;
} //~ else&lt;br /&gt;
} //~ method (void) Normalize&lt;/p&gt;
&lt;p&gt;But after checking the references to that method, i noticed that you&lt;br /&gt;
are instantiating mostly four instances of Position. The first pair by&lt;br /&gt;
the constructor and after that, the second pair by Normalize().&lt;/p&gt;
&lt;p&gt;After rewriting Position.Min and Position.Max to&lt;/p&gt;
&lt;p&gt;public static Position Min(Position p_Position1, Position p_Position2)&lt;br /&gt;
{&lt;br /&gt;
return new Position(Math.Min(p_Position1.Row, p_Position2.Row), Math.Min(p_Position1.Column, p_Position2.Column));&lt;br /&gt;
} //~ static method (Position) Min&lt;/p&gt;
&lt;p&gt;public static Position Max(Position p_Position1, Position p_Position2)&lt;br /&gt;
{&lt;br /&gt;
return new Position(Math.Max(p_Position1.Row, p_Position2.Row), Math.Max(p_Position1.Column, p_Position2.Column));&lt;br /&gt;
} //~ static method (Position) Max&lt;/p&gt;
&lt;p&gt;public static Position Max( int p_StartRow, int p_StartCol, int p_EndRow, int p_EndCol )&lt;br /&gt;
{&lt;br /&gt;
return new Position( Math.Max( p_StartRow,p_EndRow ), Math.Max( p_StartCol, p_EndCol ) );&lt;br /&gt;
} //~ static method (Position) Max&lt;/p&gt;
&lt;p&gt;public static Position Min( int p_StartRow, int p_StartCol, int p_EndRow, int p_EndCol )&lt;br /&gt;
{&lt;br /&gt;
return new Position( Math.Min( p_StartRow, p_EndRow ), Math.Min( p_StartCol, p_EndCol ) );&lt;br /&gt;
} //~ static method (Position) Min&lt;/p&gt;
&lt;p&gt;and the constructors of Range to&lt;/p&gt;
&lt;p&gt;public Range(int p_StartRow, int p_StartCol, int p_EndRow, int p_EndCol)&lt;br /&gt;
{&lt;br /&gt;
m_Start = Position.Min( p_StartRow, p_StartCol, p_EndRow, p_EndCol );&lt;br /&gt;
m_End = Position.Max( p_StartRow, p_StartCol, p_EndRow, p_EndCol );&lt;br /&gt;
} //~ constructor (void) Range&lt;/p&gt;
&lt;p&gt;private Range(Position p_Start, Position p_End, bool p_bCheck)&lt;br /&gt;
{&lt;/p&gt;
&lt;p&gt;if (p_bCheck)&lt;br /&gt;
{&lt;br /&gt;
m_Start = Position.Min( p_Start, p_End );&lt;br /&gt;
m_End = Position.Max( p_Start, p_End );&lt;br /&gt;
} //~ if&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
m_Start = p_Start;&lt;br /&gt;
m_End = p_End;&lt;br /&gt;
} //~ else&lt;br /&gt;
} //~ constructor (void) Range&lt;/p&gt;
&lt;p&gt;there is no need to use Normalize() anymore. The normalization is done&lt;br /&gt;
by Min and Max without the overhead.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;br /&gt;
Stephan&lt;br /&gt;
---------------------------------------&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Davide Icardi</dc:creator><pubDate>Tue, 15 Jan 2008 22:01:39 -0000</pubDate><guid>https://sourceforge.net396b181b0db9cf34d5f8b98ebb114328a847826e</guid></item><item><title>ProposedRow and ProposedColumn on Focus_Leaving events</title><link>https://sourceforge.net/p/sourcegrid/feature-requests/27/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;See attached file and:&lt;br /&gt;
&lt;a href="http://www.devage.com/Forum/ViewTopic.aspx?id=faedda6154054d8996deacb374425269#msg9c8ddcae545c4dd9b62daf4896f3d493" rel="nofollow"&gt;http://www.devage.com/Forum/ViewTopic.aspx?id=faedda6154054d8996deacb374425269#msg9c8ddcae545c4dd9b62daf4896f3d493&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;"""""""""&lt;br /&gt;
I attach a patch that adds a ProposedRow and ProposedColumn properties to the event args for FocusRowLeaving and FocusColumnLeaving.&lt;br /&gt;
The path is made against svn rev. 197.&lt;br /&gt;
"""""""""&lt;/p&gt;
&lt;p&gt;Thanks to Frank&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Davide Icardi</dc:creator><pubDate>Wed, 21 Nov 2007 22:52:56 -0000</pubDate><guid>https://sourceforge.net3d41e585edcbcdaa2447e798f59c6df49ff743f5</guid></item><item><title>Clipboard copy for many rows/ranges</title><link>https://sourceforge.net/p/sourcegrid/feature-requests/26/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Attached a patch file to support clipboard for many rows and ranges.&lt;/p&gt;
&lt;p&gt;See also:&lt;br /&gt;
&lt;a href="http://www.devage.com/Forum/ViewTopic.aspx?id=accaef36097b4396a49a59b0d971c084#msg134436ffc7914d0e836c1a06dd768319" rel="nofollow"&gt;http://www.devage.com/Forum/ViewTopic.aspx?id=accaef36097b4396a49a59b0d971c084#msg134436ffc7914d0e836c1a06dd768319&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Thanks to DarkCloud&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Davide Icardi</dc:creator><pubDate>Wed, 21 Nov 2007 11:32:41 -0000</pubDate><guid>https://sourceforge.net320f85111169d3f3e9243f74cfd8d975fd794d4d</guid></item><item><title>Virtual row height</title><link>https://sourceforge.net/p/sourcegrid/feature-requests/25/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;it's impossible to set height for a specific virtual row. Rows.SetHeight uses one value for all rows (RowHeight). so, it's pretty much unusable. I wanted to hide certain row when data source is a data table. couldn't. here's a simple code to fix this to work correctly.&lt;/p&gt;
&lt;p&gt;replace RowsSimpleBase.GetHeight &amp;amp; SetHeight with this:&lt;/p&gt;
&lt;p&gt;private readonly Dictionary&amp;lt; int, int &amp;gt; _heights = new Dictionary&amp;lt; int, int &amp;gt;();&lt;/p&gt;
&lt;p&gt;public void ResetHeights()&lt;br /&gt;
{&lt;br /&gt;
_heights.Clear();&lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;public override int GetHeight(int row)&lt;br /&gt;
{&lt;br /&gt;
if( _heights.ContainsKey( row ))&lt;br /&gt;
{&lt;br /&gt;
return _heights[ row ];&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
return RowHeight;&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
public override void SetHeight(int row, int height)&lt;br /&gt;
{&lt;br /&gt;
_heights[ row ] = height;&lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;if there's a better way, I'd like to know about it&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Davide Icardi</dc:creator><pubDate>Thu, 18 Oct 2007 13:16:54 -0000</pubDate><guid>https://sourceforge.net15928822b6dd83e02232b16f2ae3ae04c7bc9c8e</guid></item><item><title>Is it possible to add filtering feature to datagird?</title><link>https://sourceforge.net/p/sourcegrid/feature-requests/24/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Hi,&lt;br /&gt;
Is it possible to add filtering feature to datagrid? I mean that I want to filter columns by a combobox located on the column header. I'm capable of writing C# code. Perhaps you can give me a start point and some hints to handle this feature request. Faithfully...&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">ismail SEZEN</dc:creator><pubDate>Sat, 06 Oct 2007 21:31:23 -0000</pubDate><guid>https://sourceforge.net67f25a40a5307e31fcd4b14ffb23eb8e44d12be6</guid></item><item><title>DataGrid row height same for all rows</title><link>https://sourceforge.net/p/sourcegrid/feature-requests/23/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;When setting row height (or using Rows.AutoSize) for DataGrid (maybe it's even for all VirtaulGrids) all rows would be same size as last set row heigth. So after calling Rows.AutoSize all rows are in height measured for last row. I tried to find a reason for it but couldn't on my own. Any hint would be really appreciated as it's quite urgent for me. I will post fix once I find it. Thank's in advance.&lt;/p&gt;&lt;/div&gt;</description><pubDate>Wed, 03 Oct 2007 08:25:33 -0000</pubDate><guid>https://sourceforge.net82b3f42337635c053eaf4a20623ffde4183e1631</guid></item><item><title>Multi selection autoscroll</title><link>https://sourceforge.net/p/sourcegrid/feature-requests/22/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Implement autoscroll when moving the mouse for multi selection.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Davide Icardi</dc:creator><pubDate>Tue, 29 May 2007 13:26:20 -0000</pubDate><guid>https://sourceforge.nete629e333ad6cc3954dcbd8b8060aa9cff6fac135</guid></item><item><title>Multi Selection unselect</title><link>https://sourceforge.net/p/sourcegrid/feature-requests/21/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Implement selection remove (unselect) when holding the ctrl key and clicking on a select cell.&lt;/p&gt;
&lt;p&gt;See also:&lt;br /&gt;
&lt;a href="http://www.devage.com/Forum/ViewTopic.aspx?id=f40280488ef44d83b9899a64d0cfba2f" rel="nofollow"&gt;http://www.devage.com/Forum/ViewTopic.aspx?id=f40280488ef44d83b9899a64d0cfba2f&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Davide Icardi</dc:creator><pubDate>Tue, 29 May 2007 13:25:44 -0000</pubDate><guid>https://sourceforge.net4f7060d97c15ac830e62d2273572286c7e3788f3</guid></item><item><title>Cell Border and selection border overlap</title><link>https://sourceforge.net/p/sourcegrid/feature-requests/20/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;From forum: (http://www.devage.com/Forum/ViewTopic.aspx?id=32f12b705b8449eaaa073c65b2a2269c)&lt;br /&gt;
--------------&lt;br /&gt;
It seems like when the area is being calculated for the selection box that it should overlap with the top and left in order to make it look correct. I noticed that all of your samples use default widths and none really change much. If you modify Example17 Line 426 to have this line:&lt;/p&gt;
&lt;p&gt;grid1[r, c].View.Border = new DevAge.Drawing.RectangleBorder(new DevAge.Drawing.BorderLine(Color.HotPink, 1, DashStyle.Solid, 0), new DevAge.Drawing.BorderLine(Color.HotPink, 1, DashStyle.Solid, 0));&lt;/p&gt;
&lt;p&gt;And then launch it and click on a cell that is enabled. You will see the problem I'm talking about.&lt;br /&gt;
----------------&lt;/p&gt;
&lt;p&gt;The problem is that the border cells are independent from the other cells border. So for example if you set set border to 1 the result is that you will have a grid with a 2 pixel border.&lt;br /&gt;
This is also visible when you select the cell, because the selection border overlap the cell of the current border but leaving visible only the border at the top and at the left.&lt;/p&gt;
&lt;p&gt;One possible workaround is to create the selection border like this:&lt;br /&gt;
grid1.Selection.Border = new DevAge.Drawing.RectangleBorder(new DevAge.Drawing.BorderLine(Color.Black, 2, System.Drawing.Drawing2D.DashStyle.Solid, -1),&lt;br /&gt;
new DevAge.Drawing.BorderLine(Color.Black, 2, System.Drawing.Drawing2D.DashStyle.Solid, 0),&lt;br /&gt;
new DevAge.Drawing.BorderLine(Color.Black, 2, System.Drawing.Drawing2D.DashStyle.Solid, -1),&lt;br /&gt;
new DevAge.Drawing.BorderLine(Color.Black, 2, System.Drawing.Drawing2D.DashStyle.Solid, 0));&lt;/p&gt;
&lt;p&gt;In this way I use a -1 pixel padding for the Top and Left border.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Davide Icardi</dc:creator><pubDate>Sat, 26 May 2007 10:47:23 -0000</pubDate><guid>https://sourceforge.netced8570411ecdad8ed6e90d535cc59785ae8d86d</guid></item></channel></rss>