Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/xwt.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLluis Sanchez Gual <lluis@xamarin.com>2014-06-09 11:44:54 +0400
committerLluis Sanchez Gual <lluis@xamarin.com>2014-06-09 11:44:54 +0400
commitb9245b88bc08b2d5708a5c0e619cce69e01791fb (patch)
tree844c1bf9cf25e95de42e623850f76170a0336e2e
parent68a82ac1c178e2edbf80a52126c2c1582f737eaa (diff)
Track api changesnode-ref
-rw-r--r--TestApps/Samples/Samples/ListView1.cs4
-rw-r--r--Xwt.Gtk/Xwt.Gtk.csproj1
-rw-r--r--Xwt.Gtk/Xwt.GtkBackend.CellViews/CustomCellRendererText.cs4
-rw-r--r--Xwt.Gtk/Xwt.GtkBackend.CellViews/CustomCellRendererToggle.cs9
-rw-r--r--Xwt.Gtk/Xwt.GtkBackend/CustomListModel.cs20
-rw-r--r--Xwt.Gtk/Xwt.GtkBackend/ListStoreBackend.cs3
-rw-r--r--Xwt.Gtk/Xwt.GtkBackend/ListViewBackend.cs8
-rw-r--r--Xwt.Gtk/Xwt.GtkBackend/TreeStoreBackend.cs10
-rw-r--r--Xwt.Gtk/Xwt.GtkBackend/TreeViewBackend.cs17
-rw-r--r--Xwt.sln2
10 files changed, 49 insertions, 29 deletions
diff --git a/TestApps/Samples/Samples/ListView1.cs b/TestApps/Samples/Samples/ListView1.cs
index 5c159815..7397942e 100644
--- a/TestApps/Samples/Samples/ListView1.cs
+++ b/TestApps/Samples/Samples/ListView1.cs
@@ -20,7 +20,7 @@ namespace Samples
list.DataSource = store;
list.Columns.Add ("Name", icon, name);
list.Columns.Add ("Text", icon2, text);
- list.Columns.Add ("Progress", new TextCellView () { TextField = text }, new CustomCell () { ValueField = progress });
+ list.Columns.Add ("Progress", new TextCellView () { TextBinding = text }, new CustomCell () { ValueField = progress });
var png = Image.FromResource (typeof(App), "class.png");
@@ -105,7 +105,7 @@ namespace Samples
protected override void OnMouseMoved (MouseMovedEventArgs args)
{
- var data = GetValue (ValueField);
+ var data = GetValue<CellData> (ValueField);
data.Value = (int) (100 * ((args.X - Bounds.X) / Bounds.Width));
data.YPos = args.Y - Bounds.Y;
QueueDraw ();
diff --git a/Xwt.Gtk/Xwt.Gtk.csproj b/Xwt.Gtk/Xwt.Gtk.csproj
index a0a28272..adaa8d11 100644
--- a/Xwt.Gtk/Xwt.Gtk.csproj
+++ b/Xwt.Gtk/Xwt.Gtk.csproj
@@ -68,7 +68,6 @@
<Compile Include="Xwt.GtkBackend\Platform.cs" />
<Compile Include="Xwt.GtkBackend\ScrollViewBackend.cs" />
<Compile Include="Xwt.GtkBackend\ComboBoxBackend.cs" />
- <Compile Include="Xwt.GtkBackend\CustomTreeModel.cs" />
<Compile Include="Xwt.GtkBackend\CustomListModel.cs" />
<Compile Include="Xwt.GtkBackend\DesignerSurfaceBackend.cs" />
<Compile Include="Xwt.GtkBackend\CustomWidgetBackend.cs" />
diff --git a/Xwt.Gtk/Xwt.GtkBackend.CellViews/CustomCellRendererText.cs b/Xwt.Gtk/Xwt.GtkBackend.CellViews/CustomCellRendererText.cs
index 8de3cf42..93ae7be2 100644
--- a/Xwt.Gtk/Xwt.GtkBackend.CellViews/CustomCellRendererText.cs
+++ b/Xwt.Gtk/Xwt.GtkBackend.CellViews/CustomCellRendererText.cs
@@ -64,8 +64,8 @@ namespace Xwt.GtkBackend
if (!view.RaiseTextChanged () && view.TextBinding != null) {
Gtk.TreeIter iter;
- if (TreeModel.GetIterFromString (out iter, path))
- CellUtil.SetModelValue (TreeModel, iter, view.TextBinding.Index, view.TextBinding.FieldType, args.NewText);
+ if (TreeModel.GetIterFromString (out iter, args.Path))
+ view.TextBinding.SetValue (null, args.NewText);
}
}
}
diff --git a/Xwt.Gtk/Xwt.GtkBackend.CellViews/CustomCellRendererToggle.cs b/Xwt.Gtk/Xwt.GtkBackend.CellViews/CustomCellRendererToggle.cs
index 1b1dce89..0f718042 100644
--- a/Xwt.Gtk/Xwt.GtkBackend.CellViews/CustomCellRendererToggle.cs
+++ b/Xwt.Gtk/Xwt.GtkBackend.CellViews/CustomCellRendererToggle.cs
@@ -54,16 +54,15 @@ namespace Xwt.GtkBackend
SetCurrentEventRow ();
var view = (ICheckBoxCellViewFrontend) Frontend;
- IDataField field = (IDataField) view.StateBinding ?? view.ActiveBinding;
+ var field = view.StateBinding ?? view.ActiveBinding;
if (!view.RaiseToggled () && (field != null)) {
- Type type = field.FieldType;
Gtk.TreeIter iter;
if (TreeModel.GetIterFromString (out iter, args.Path)) {
CheckBoxState newState;
- if (view.AllowMixed && type == typeof(CheckBoxState)) {
+ if (view.AllowMixed && view.StateBinding != null) {
if (renderer.Inconsistent)
newState = CheckBoxState.Off;
else if (renderer.Active)
@@ -77,10 +76,10 @@ namespace Xwt.GtkBackend
newState = CheckBoxState.On;
}
- object newValue = type == typeof(CheckBoxState) ?
+ object newValue = view.StateBinding != null ?
(object) newState : (object) (newState == CheckBoxState.On);
- CellUtil.SetModelValue (TreeModel, iter, field.Index, type, newValue);
+ field.SetValue (null, newValue);
}
}
}
diff --git a/Xwt.Gtk/Xwt.GtkBackend/CustomListModel.cs b/Xwt.Gtk/Xwt.GtkBackend/CustomListModel.cs
index 31c543ae..5283b100 100644
--- a/Xwt.Gtk/Xwt.GtkBackend/CustomListModel.cs
+++ b/Xwt.Gtk/Xwt.GtkBackend/CustomListModel.cs
@@ -68,6 +68,7 @@ namespace Xwt.GtkBackend
public int Count;
public RowNode FirstChild;
public RowNode LastChild;
+ public RowNode Parent;
}
public CustomListModel (IntPtr p): base (p)
@@ -132,10 +133,17 @@ namespace Xwt.GtkBackend
break;
}
case NotifyCollectionChangedAction.Replace:
- for (int n = e.NewStartingIndex; n < e.NewStartingIndex + e.NewItems.Count; n++) {
- var p = new Gtk.TreePath (new int[] { n });
- var it = IterFromNode (n);
- adapter.EmitRowChanged (p, it);
+ {
+ var nod = GetNodeAtRow (data.Parent, e.NewStartingIndex);
+ var index = e.NewStartingIndex;
+ var count = e.NewItems.Count;
+ while (count-- > 0 && nod != null) {
+ var p = new Gtk.TreePath (new int[] { index });
+ var it = IterFromNode (nod);
+ adapter.EmitRowChanged (p, it);
+ nod = nod.Next;
+ }
+ break;
}
}
parentWidget.QueueResize ();
@@ -226,7 +234,7 @@ namespace Xwt.GtkBackend
var en = col.GetEnumerator ();
parent.Children.Enumerator = en;
if (en.MoveNext ())
- parent.Children.FirstChild = parent.Children.LastChild = CreateNode (0, en.Current);
+ return parent.Children.FirstChild = parent.Children.LastChild = CreateNode (0, en.Current);
else {
parent.Children = emptyCollection;
return null;
@@ -361,7 +369,7 @@ namespace Xwt.GtkBackend
public bool IterChildren (out Gtk.TreeIter iter, Gtk.TreeIter parent)
{
- var node = NodeFromIter (parent);
+ var node = !parent.Equals (Gtk.TreeIter.Zero) ? NodeFromIter (parent) : root;
if (node == null) {
iter = Gtk.TreeIter.Zero;
return false;
diff --git a/Xwt.Gtk/Xwt.GtkBackend/ListStoreBackend.cs b/Xwt.Gtk/Xwt.GtkBackend/ListStoreBackend.cs
index 47a69434..9e5cce8a 100644
--- a/Xwt.Gtk/Xwt.GtkBackend/ListStoreBackend.cs
+++ b/Xwt.Gtk/Xwt.GtkBackend/ListStoreBackend.cs
@@ -27,6 +27,7 @@
using System;
using Xwt.Backends;
using Xwt.Drawing;
+using System.Collections.Specialized;
namespace Xwt.GtkBackend
{
@@ -128,6 +129,8 @@ namespace Xwt.GtkBackend
{
List.Clear ();
}
+
+ public event NotifyCollectionChangedEventHandler CollectionChanged;
}
}
diff --git a/Xwt.Gtk/Xwt.GtkBackend/ListViewBackend.cs b/Xwt.Gtk/Xwt.GtkBackend/ListViewBackend.cs
index 7869247a..075a82d6 100644
--- a/Xwt.Gtk/Xwt.GtkBackend/ListViewBackend.cs
+++ b/Xwt.Gtk/Xwt.GtkBackend/ListViewBackend.cs
@@ -64,12 +64,8 @@ namespace Xwt.GtkBackend
public void SetSource (object source, IBackend sourceBackend)
{
- ListStoreBackend b = sourceBackend as ListStoreBackend;
- if (b == null) {
- CustomListModel model = new CustomListModel (source, Widget);
- Widget.Model = model.Store;
- } else
- Widget.Model = b.Store;
+ CustomListModel model = new CustomListModel (source, Widget);
+ Widget.Model = model.Store;
}
public void SelectRow (int row)
diff --git a/Xwt.Gtk/Xwt.GtkBackend/TreeStoreBackend.cs b/Xwt.Gtk/Xwt.GtkBackend/TreeStoreBackend.cs
index 65986259..c346042d 100644
--- a/Xwt.Gtk/Xwt.GtkBackend/TreeStoreBackend.cs
+++ b/Xwt.Gtk/Xwt.GtkBackend/TreeStoreBackend.cs
@@ -156,12 +156,22 @@ namespace Xwt.GtkBackend
SetValue (tpos.Iter, column, value);
}
+ public void SetValue (object pos, int column, object value)
+ {
+ SetValue ((TreePosition)pos, column, value);
+ }
+
public object GetValue (TreePosition pos, int column)
{
IterPos tpos = GetIterPos (pos);
return GetValue (tpos.Iter, column);
}
+ public object GetValue (object pos, int column)
+ {
+ return GetValue ((TreePosition)pos, column);
+ }
+
public TreePosition InsertBefore (TreePosition pos)
{
version++;
diff --git a/Xwt.Gtk/Xwt.GtkBackend/TreeViewBackend.cs b/Xwt.Gtk/Xwt.GtkBackend/TreeViewBackend.cs
index 72e6c0b4..cebf1464 100644
--- a/Xwt.Gtk/Xwt.GtkBackend/TreeViewBackend.cs
+++ b/Xwt.Gtk/Xwt.GtkBackend/TreeViewBackend.cs
@@ -27,6 +27,7 @@
using System;
using Xwt.Backends;
using System.Linq;
+using System.Collections.Generic;
namespace Xwt.GtkBackend
{
@@ -38,7 +39,11 @@ namespace Xwt.GtkBackend
protected new ITreeViewEventSink EventSink {
get { return (ITreeViewEventSink)base.EventSink; }
}
-
+
+ public void SetTemplates (IEnumerable<TreeItemTemplate> templates)
+ {
+ }
+
public override void EnableEvent (object eventId)
{
base.EnableEvent (eventId);
@@ -159,12 +164,12 @@ namespace Xwt.GtkBackend
public void SetSource (ITreeDataSource source, IBackend sourceBackend)
{
- TreeStoreBackend b = sourceBackend as TreeStoreBackend;
- if (b == null) {
- CustomTreeModel model = new CustomTreeModel (source);
+ // TreeStoreBackend b = sourceBackend as TreeStoreBackend;
+ //if (b == null) {
+ CustomListModel model = new CustomListModel (source, Widget);
Widget.Model = model.Store;
- } else
- Widget.Model = b.Store;
+ //} else
+ // Widget.Model = b.Store;
}
public TreePosition[] SelectedRows {
diff --git a/Xwt.sln b/Xwt.sln
index 6dcea8e5..9bb1d2e7 100644
--- a/Xwt.sln
+++ b/Xwt.sln
@@ -576,7 +576,7 @@ Global
{C1DF0C90-0C4C-4AB5-A45C-A1805587A844} = {83D74DDF-581E-4E2A-AE02-F4047A5B96C7}
EndGlobalSection
GlobalSection(MonoDevelopProperties) = preSolution
- StartupItem = TestApps\WpfTest\WpfTest.csproj
+ StartupItem = TestApps\GtkOnMacTest\GtkOnMacTest.csproj
Policies = $0
$0.DotNetNamingPolicy = $1
$1.DirectoryNamespaceAssociation = None