3 using System.Collections.Generic;
6 namespace ElmSharp.Wearable
8 public class MoreOption : Layout
11 public IList<MoreOptionItem> Items { get; private set; }
13 public event EventHandler<MoreOptionItemEventArgs> Selected;
14 public event EventHandler<MoreOptionItemEventArgs> Clicked;
15 public event EventHandler Opened;
16 public event EventHandler Closed;
18 SmartEvent<PointerEventArgs> _selectedEvent;
19 SmartEvent<PointerEventArgs> _clickedEvent;
20 SmartEvent _openedEvent;
21 SmartEvent _closedEvent;
23 public MoreOption(EvasObject parent) : base(parent)
25 Items = new MoreOptionList(this);
27 _selectedEvent = new SmartEvent<PointerEventArgs>(this, "item,selected", (d, o, info) => new PointerEventArgs { Pointer = info });
28 _clickedEvent = new SmartEvent<PointerEventArgs>(this, "item,clicked", (d, o, info) => new PointerEventArgs { Pointer = info });
29 _openedEvent = new SmartEvent(this, "more,option,opened");
30 _closedEvent = new SmartEvent(this, "more,option,closed");
32 _selectedEvent.On += (s, e) =>
34 MoreOptionItem selected = Items.FirstOrDefault(i => i.Handle == e.Pointer);
35 Selected?.Invoke(this, new MoreOptionItemEventArgs() { Item = selected });
38 _clickedEvent.On += (s, e) =>
40 MoreOptionItem selected = Items.FirstOrDefault(i => i.Handle == e.Pointer);
41 Clicked?.Invoke(this, new MoreOptionItemEventArgs() { Item = selected });
44 _openedEvent.On += (s, e) => Opened?.Invoke(this, EventArgs.Empty);
45 _closedEvent.On += (s, e) => Closed?.Invoke(this, EventArgs.Empty);
49 protected override IntPtr CreateHandle(EvasObject parent)
51 return Interop.Eext.eext_more_option_add(parent);
54 public MoreOptionDirection Direction
58 int dir = Interop.Eext.eext_more_option_direction_get(this);
59 return (MoreOptionDirection)dir;
64 Interop.Eext.eext_more_option_direction_set(this, (int)value);
72 return Interop.Eext.eext_more_option_opened_get(this);
77 Interop.Eext.eext_more_option_opened_set(this, value);
82 public enum MoreOptionDirection