2 * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the License);
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
21 public enum GenItemSelectionMode
24 /// Default select mode.
29 /// Always select mode.
39 /// No select mode with no finger size rule.
45 /// It inherits <see cref="ItemObject"/>.
46 /// A base class for <see cref="GenGridItem"/> and <see cref="GenListItem"/>.
47 /// It contains genitem class and data to display data.
49 public abstract class GenItem : ItemObject
51 internal Interop.Elementary.Elm_Tooltip_Item_Content_Cb _tooltipCb;
52 GetTooltipContentDelegate _tooltipContentDelegate = null;
55 /// The delegate returning the tooltip contents.
57 public delegate EvasObject GetTooltipContentDelegate();
59 internal GenItem(object data, GenItemClass itemClass) : base(IntPtr.Zero)
62 ItemClass = itemClass;
63 _tooltipCb = (d, obj, tooltip, item) => { return TooltipContentDelegate(); };
67 /// Gets the item class that defines how to display data. It returns <see cref="GenItemClass"/> type.
69 public GenItemClass ItemClass { get; protected set; }
72 /// It's a abstract property. It's implemented by <see cref="GenGridItem.TooltipContent"/> and <see cref="GenListItem.TooltipContent"/>.
74 public GetTooltipContentDelegate TooltipContentDelegate
78 return _tooltipContentDelegate;
82 _tooltipContentDelegate = value;
83 UpdateTooltipDelegate();
87 public abstract GenItemSelectionMode SelectionMode { get; set; }
89 public abstract string Cursor { get; set; }
90 public abstract string CursorStyle { get; set; }
92 public abstract bool IsUseEngineCursor { get; set; }
95 /// Gets item data that is added through calling <see cref="GenGrid.Append(GenItemClass, object)"/>, <see cref="GenGrid.Prepend(GenItemClass, object)"/> or <see cref="GenGrid.InsertBefore(GenItemClass, object, GenGridItem)"/> methods.
97 public object Data { get; protected set; }
100 /// It's a abstract property. It's implemented by <see cref="GenGridItem.IsSelected"/> and <see cref="GenListItem.IsSelected"/>.
102 public abstract bool IsSelected { get; set; }
105 /// It's a abstract property. It's implemented by <see cref="GenGridItem.TooltipStyle"/> and <see cref="GenListItem.TooltipStyle"/>.
107 public abstract string TooltipStyle { get; set; }
109 public abstract void SetTooltipText(string tooltip);
110 public abstract void UnsetTooltip();
113 /// It's a abstract method. It's implemented by <see cref="GenGridItem.Update"/> and <see cref="GenListItem.Update"/>.
115 public abstract void Update();
118 /// The override method for delete item class and item data. It's called when the item is deleting.
120 protected override void OnInvalidate()
122 ItemClass?.SendItemDeleted(Data);
127 protected abstract void UpdateTooltipDelegate();