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.
22 /// Enumeration for select mode of GenItem.
24 public enum GenItemSelectionMode
27 /// Default select mode.
32 /// Always select mode.
42 /// No select mode with no finger size rule.
48 /// It inherits <see cref="ItemObject"/>.
49 /// A base class for <see cref="GenGridItem"/> and <see cref="GenListItem"/>.
50 /// It contains genitem class and data to display data.
52 public abstract class GenItem : ItemObject
54 internal Interop.Elementary.Elm_Tooltip_Item_Content_Cb _tooltipCb;
55 GetTooltipContentDelegate _tooltipContentDelegate = null;
58 /// The delegate returning the tooltip contents.
60 public delegate EvasObject GetTooltipContentDelegate();
62 internal GenItem(object data, GenItemClass itemClass) : base(IntPtr.Zero)
65 ItemClass = itemClass;
66 _tooltipCb = (d, obj, tooltip, item) => { return TooltipContentDelegate(); };
70 /// Gets the item class that defines how to display data. It returns <see cref="GenItemClass"/> type.
72 public GenItemClass ItemClass { get; protected set; }
75 /// Sets or gets tooltip content delegate.
77 public GetTooltipContentDelegate TooltipContentDelegate
81 return _tooltipContentDelegate;
85 _tooltipContentDelegate = value;
86 UpdateTooltipDelegate();
91 /// It's a abstract property.
93 public abstract GenItemSelectionMode SelectionMode { get; set; }
96 /// Sets or gets the cursor to be shown when mouse is over the gengrid item
98 public abstract string Cursor { get; set; }
101 /// Sets or gets the style for this item cursor.
103 public abstract string CursorStyle { get; set; }
106 /// Sets or gets the cursor engine only usage for this item cursor.
108 public abstract bool IsUseEngineCursor { get; set; }
111 /// 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.
113 public object Data { get; protected set; }
116 /// It's a abstract property. It's implemented by <see cref="GenGridItem.IsSelected"/> and <see cref="GenListItem.IsSelected"/>.
118 public abstract bool IsSelected { get; set; }
121 /// It's a abstract property. It's implemented by <see cref="GenGridItem.TooltipStyle"/> and <see cref="GenListItem.TooltipStyle"/>.
123 public abstract string TooltipStyle { get; set; }
126 /// Set tooltip text.
128 /// <param name="tooltip">The text to set.</param>
129 public abstract void SetTooltipText(string tooltip);
134 public abstract void UnsetTooltip();
137 /// It's a abstract method. It's implemented by <see cref="GenGridItem.Update"/> and <see cref="GenListItem.Update"/>.
139 public abstract void Update();
142 /// The override method for delete item class and item data. It's called when the item is deleting.
144 protected override void OnInvalidate()
146 ItemClass?.SendItemDeleted(Data);
152 /// Abstract method for updating tooltip content.
154 protected abstract void UpdateTooltipDelegate();