Merge pull request #950 from tig/remove_ienumerable

POC to remove IEnumerable from View & Window
This commit is contained in:
Charlie Kindel
2020-10-21 16:18:09 -06:00
committed by GitHub
7 changed files with 29 additions and 31 deletions

View File

@@ -185,16 +185,16 @@ static class Demo {
};
var tf = new Button (3, 19, "Ok");
var frameView = new FrameView (new Rect (3, 10, 25, 6), "Options");
frameView.Add (new CheckBox (1, 0, "Remember me"));
frameView.Add (new RadioGroup (1, 2, new ustring [] { "_Personal", "_Company" }));
// Add some content
container.Add (
login,
loginText,
password,
passText,
new FrameView (new Rect (3, 10, 25, 6), "Options"){
new CheckBox (1, 0, "Remember me"),
new RadioGroup (1, 2, new ustring [] { "_Personal", "_Company" }),
},
frameView,
new ListView (new Rect (59, 6, 16, 4), new string [] {
"First row",
"<>",

View File

@@ -111,7 +111,7 @@ namespace Terminal.Gui {
/// frames for the vies that use <see cref="LayoutStyle.Computed"/>.
/// </para>
/// </remarks>
public partial class View : Responder, IEnumerable, ISupportInitializeNotification {
public partial class View : Responder, ISupportInitializeNotification {
internal enum Direction {
Forward,
@@ -386,15 +386,15 @@ namespace Terminal.Gui {
}
}
/// <summary>
/// Gets an enumerator that enumerates the subviews in this view.
/// </summary>
/// <returns>The enumerator.</returns>
public IEnumerator GetEnumerator ()
{
foreach (var v in InternalSubviews)
yield return v;
}
///// <summary>
///// Gets an enumerator that enumerates the subviews in this view.
///// </summary>
///// <returns>The enumerator.</returns>
//public IEnumerator GetEnumerator ()
//{
// foreach (var v in InternalSubviews)
// yield return v;
//}
LayoutStyle layoutStyle;

View File

@@ -20,7 +20,7 @@ namespace Terminal.Gui {
/// The 'client area' of a <see cref="Window"/> is a rectangle deflated by one or more rows/columns from <see cref="View.Bounds"/>. A this time there is no
/// API to determine this rectangle.
/// </remarks>
public class Window : Toplevel, IEnumerable {
public class Window : Toplevel {
View contentView;
ustring title;
@@ -122,14 +122,14 @@ namespace Terminal.Gui {
base.Add (contentView);
}
/// <summary>
/// Enumerates the various <see cref="View"/>s in the embedded <see cref="ContentView"/>.
/// </summary>
/// <returns>The enumerator.</returns>
public new IEnumerator GetEnumerator ()
{
return contentView.GetEnumerator ();
}
///// <summary>
///// Enumerates the various <see cref="View"/>s in the embedded <see cref="ContentView"/>.
///// </summary>
///// <returns>The enumerator.</returns>
//public new IEnumerator GetEnumerator ()
//{
// return contentView.GetEnumerator ();
//}
/// <inheritdoc/>
public override void Add (View view)

View File

@@ -14,9 +14,9 @@
e.g. If AssemblyVersion is 1.2.3.4, Version could be EITHER 1.2.3.4 or 1.2.3-pre.4 depending on whether it's a pre-release or not.
-->
<Version>1.0.0-pre.4</Version>
<AssemblyVersion>1.0.0.4</AssemblyVersion>
<FileVersion>1.0.0.4</FileVersion>
<Version>1.0.0-pre.5</Version>
<AssemblyVersion>1.0.0.5</AssemblyVersion>
<FileVersion>1.0.0.5</FileVersion>
<Authors>Miguel de Icaza, Charlie Kindel (@tig), @BDisp</Authors>
</PropertyGroup>

View File

@@ -24,7 +24,8 @@
<PackageReleaseNotes>
v1.00 -
* If StatusBar.Visible is set to false, TopLevel resizes correctly enabling hiding/showing of a StatusBar. UICatalog demonstrates.
* New sample/demo app - ReactiveExample - Shows how to use reactive extensions and ReactiveUI with gui.cs.
* New sample/demo app - ReactiveExample - Shows how to use reactive extensions and ReactiveUI with gui.cs. (Thanks @worldbeater)
* BREAKING API CHANGE - Removed IEnumerable from View and Window. Use Subviews property instead. See #950.
v0.90 - "Feature Complete" pre-release of Terminal.Gui (aka gui.cs) 1.0. This release is a signficant upgrade from the previous published release (0.81). Most of the major changes and bug fixes are listed below. NOTE: This release includes breaking changes to the API; we will strive to avoid any more breaking changes before 1.0.

View File

@@ -643,7 +643,7 @@ namespace Terminal.Gui {
void SetViewsNeedsDisplay ()
{
foreach (View view in contentView) {
foreach (View view in contentView.Subviews) {
view.SetNeedsDisplay ();
}
}

View File

@@ -35,7 +35,6 @@ namespace Terminal.Gui {
Assert.Empty (r.Subviews);
Assert.False (r.WantContinuousButtonPressed);
Assert.False (r.WantMousePositionReports);
Assert.Null (r.GetEnumerator ().Current);
Assert.Null (r.SuperView);
Assert.Null (r.MostFocused);
@@ -59,7 +58,6 @@ namespace Terminal.Gui {
Assert.Empty (r.Subviews);
Assert.False (r.WantContinuousButtonPressed);
Assert.False (r.WantMousePositionReports);
Assert.Null (r.GetEnumerator ().Current);
Assert.Null (r.SuperView);
Assert.Null (r.MostFocused);
@@ -83,7 +81,6 @@ namespace Terminal.Gui {
Assert.Empty (r.Subviews);
Assert.False (r.WantContinuousButtonPressed);
Assert.False (r.WantMousePositionReports);
Assert.Null (r.GetEnumerator ().Current);
Assert.Null (r.SuperView);
Assert.Null (r.MostFocused);