From eea5fff754c6c78fd041335c397d055cf5422e53 Mon Sep 17 00:00:00 2001 From: Kangho Hur Date: Tue, 14 Nov 2017 16:40:36 +0900 Subject: [PATCH] [ElmSharp] Add ItemFocused/Unfocused to GenGrid Change-Id: I77f41a6830b95ef06f0b58715a57e46a27007bdd --- src/ElmSharp/ElmSharp/GenGrid.cs | 18 ++++++++++++++++++ test/ElmSharp.Test/TC/GenGridTest2.cs | 15 +++++++++++++++ 2 files changed, 33 insertions(+) mode change 100755 => 100644 src/ElmSharp/ElmSharp/GenGrid.cs diff --git a/src/ElmSharp/ElmSharp/GenGrid.cs b/src/ElmSharp/ElmSharp/GenGrid.cs old mode 100755 new mode 100644 index e9ec144..d493fa2 --- a/src/ElmSharp/ElmSharp/GenGrid.cs +++ b/src/ElmSharp/ElmSharp/GenGrid.cs @@ -60,6 +60,8 @@ namespace ElmSharp SmartEvent _realized; SmartEvent _unrealized; SmartEvent _longpressed; + SmartEvent _focused; + SmartEvent _unfocused; SmartEvent _changed; /// @@ -127,6 +129,18 @@ namespace ElmSharp public event EventHandler ItemLongPressed; /// + /// ItemFocussed is raised when a gengrid item has received focus. + /// + /// preview + public event EventHandler ItemFocused; + + /// + /// ItemUnfocussed is raised when a gengrid item has lost focus. + /// + /// preview + public event EventHandler ItemUnfocused; + + /// /// Changed is raised when an item is added, removed, resized or moved and when the gengrid is resized or gets "horizontal" property changes. /// /// preview @@ -623,6 +637,8 @@ namespace ElmSharp _realized = new SmartEvent(this, this.RealHandle, "realized", GenGridItemEventArgs.CreateFromSmartEvent); _unrealized = new SmartEvent(this, this.RealHandle, "unrealized", GenGridItemEventArgs.CreateFromSmartEvent); _longpressed = new SmartEvent(this, this.RealHandle, "longpressed", GenGridItemEventArgs.CreateFromSmartEvent); + _focused = new SmartEvent(this, this.RealHandle, "item,focused", GenGridItemEventArgs.CreateFromSmartEvent); + _unfocused = new SmartEvent(this, this.RealHandle, "item,unfocused", GenGridItemEventArgs.CreateFromSmartEvent); _changed = new SmartEvent(this, this.RealHandle, "changed"); _selected.On += (s, e) => { if (e.Item != null) ItemSelected?.Invoke(this, e); }; @@ -634,6 +650,8 @@ namespace ElmSharp _realized.On += (s, e) => { if (e.Item != null) ItemRealized?.Invoke(this, e); }; _unrealized.On += (s, e) => { if (e.Item != null) ItemUnrealized?.Invoke(this, e); }; _longpressed.On += (s, e) => { if (e.Item != null) ItemLongPressed?.Invoke(this, e); }; + _focused.On += (s, e) => { if (e.Item != null) ItemFocused?.Invoke(this, e); }; + _unfocused.On += (s, e) => { if (e.Item != null) ItemUnfocused?.Invoke(this, e); }; _changed.On += (s, e) => { Changed?.Invoke(this, e); }; } diff --git a/test/ElmSharp.Test/TC/GenGridTest2.cs b/test/ElmSharp.Test/TC/GenGridTest2.cs index c8de4b1..472c978 100644 --- a/test/ElmSharp.Test/TC/GenGridTest2.cs +++ b/test/ElmSharp.Test/TC/GenGridTest2.cs @@ -126,6 +126,21 @@ namespace ElmSharp.Test grid.ItemReleased += Grid_ItemReleased; grid.ItemLongPressed += Grid_ItemLongPressed; grid.ItemDoubleClicked += Grid_ItemDoubleClicked; + grid.ItemFocused += Grid_ItemFocused; + grid.ItemUnfocused += Grid_ItemUnfocused; + } + + private void Grid_ItemUnfocused(object sender, GenGridItemEventArgs e) + { + Color color = (Color)e.Item.Data; + Console.WriteLine("#{0:X}{1:X}{2:X} has lost focus", color.R, color.G, color.B); + } + + private void Grid_ItemFocused(object sender, GenGridItemEventArgs e) + { + e.Item.IsSelected = false; + Color color = (Color)e.Item.Data; + Console.WriteLine("#{0:X}{1:X}{2:X} has received focus", color.R, color.G, color.B); } private void Grid_ItemDoubleClicked(object sender, GenGridItemEventArgs e) -- 2.7.4