namespace ElmSharp
{
+ /// <summary>
+ /// Enumeration of ContextPopup direction type.
+ /// </summary>
public enum ContextPopupDirection
{
+ /// <summary>
+ /// ContextPopup show appear below clicked area
+ /// /// </summary>
Down,
+ /// <summary>
+ /// ContextPopup show appear to the right of the clicked area
+ /// </summary>
Right,
+ /// <summary>
+ /// ContextPopup show appear to the left of the clicked area
+ /// </summary>
Left,
+ /// <summary>
+ /// ContextPopup show appear above the clicked area
+ /// </summary>
Up,
+ /// <summary>
+ /// ContextPopup does not determine it's direction yet
+ /// </summary>
Unknown
}
+ /// <summary>
+ /// It inherits <see cref="Layout"/>.
+ /// The ContextPopup is a widget that when it shown, pops up a list of items.
+ /// </summary>
public class ContextPopup : Layout
{
HashSet<ContextPopupItem> _children = new HashSet<ContextPopupItem>();
SmartEvent _dismissed;
Interop.Evas.SmartCallback _onSelected;
+ /// <summary>
+ /// Creates and initializes a new instance of the ContextPopup class.
+ /// </summary>
+ /// <param name="parent">The parent is a given container which will be attached by ContextPopup
+ /// as a child.It's <see cref="EvasObject"/> type.</param>
public ContextPopup(EvasObject parent) : base(parent)
{
_dismissed = new SmartEvent(this, this.RealHandle, "dismissed");
};
}
+ /// <summary>
+ /// Dismissed is raised when the ContextPopup item is dismissed.
+ /// </summary>
+ /// <remarks>
+ /// Outside of ContextPopup was clicked or it's parent area is changed or the language is changed. and then ContextPopup is dismissed.
+ /// </remarks>
public event EventHandler Dismissed;
+ /// <summary>
+ /// Gets the current direction of a ContextPopup.
+ /// </summary>
+ /// <remarks>
+ /// Once the ContextPopup showed up, the direction would be determined.
+ /// </remarks>
public ContextPopupDirection Direction
{
get
}
}
+ /// <summary>
+ /// Gets or sets the value of current ContextPopup object's orientation.
+ /// True for horizontal mode, False for vertical mode (or errors)
+ /// </summary>
public bool IsHorizontal
{
get
}
}
+ /// <summary>
+ /// Gets or sets whether ContextPopup hide automatically
+ /// or not when parent of ContextPopup is resized.
+ /// </summary>
+ /// <remarks>
+ /// Default value of AutoHide is False.
+ /// </remarks>
public bool AutoHide
{
get
}
}
+ /// <summary>
+ /// Clears all items in the given ContextPopup object.
+ /// </summary>
public void Clear()
{
Interop.Elementary.elm_ctxpopup_clear(Handle);
}
+ /// <summary>
+ /// Sets the direction priority of a ContextPopup.
+ /// </summary>
+ /// <param name="first">1st priority of direction </param>
+ /// <param name="second">2nd priority of direction </param>
+ /// <param name="third">3th priority of direction </param>
+ /// <param name="fourth">4th priority of direction</param>
public void SetDirectionPriorty(ContextPopupDirection first, ContextPopupDirection second, ContextPopupDirection third, ContextPopupDirection fourth)
{
Interop.Elementary.elm_ctxpopup_direction_priority_set(RealHandle, (int)first, (int)second, (int)third, (int)fourth);
}
+ /// <summary>
+ /// Gets the direction priority of a ContextPopup.
+ /// </summary>
+ /// <param name="first">1st priority of direction to be returned</param>
+ /// <param name="second">2nd priority of direction to be returned</param>
+ /// <param name="third">2nd priority of direction to be returned </param>
+ /// <param name="fourth">4th priority of direction to be returned</param>
public void GetDirectionPriority(out ContextPopupDirection first, out ContextPopupDirection second, out ContextPopupDirection third, out ContextPopupDirection fourth)
{
int firstOut, secondOut, thirdOut, fourthOut;
fourth = (ContextPopupDirection)fourthOut;
}
+ /// <summary>
+ /// Adds a new item to a ContextPopup object with label.
+ /// </summary>
+ /// <param name="label">The Label of the new item</param>
+ /// <returns>
+ /// A ContextPopupItem added or NULL, on errors
+ /// </returns>
public ContextPopupItem Append(string label)
{
return Append(label, null);
}
+ /// <summary>
+ /// Adds a new item to a ContextPopup object with label and icon.
+ /// </summary>
+ /// <param name="label">The Label of the new item</param>
+ /// <param name="icon">Icon to be set on new item</param>
+ /// <returns>A ContextPopupItem added or NULL, on errors</returns>
public ContextPopupItem Append(string label, EvasObject icon)
{
ContextPopupItem item = new ContextPopupItem(label, icon);
return item;
}
+ /// <summary>
+ /// Dismiss a ContextPopup object. The ContextPopup will be hidden and the "clicked" signal will be emitted.
+ /// </summary>
public void Dismiss()
{
Interop.Elementary.elm_ctxpopup_dismiss(RealHandle);
}
+ /// <summary>
+ /// Gets the possibility that the direction would be available
+ /// </summary>
+ /// <param name="direction">A direction user wants to check</param>
+ /// <returns>
+ /// Get false if you cannot put it in the direction. Gets true if it's possible.
+ /// </returns>
public bool IsAvailableDirection(ContextPopupDirection direction)
{
return Interop.Elementary.elm_ctxpopup_direction_available_get(RealHandle, (int)direction);
}
+ /// <summary>
+ /// Gets Alpha of a default Color Class.
+ /// </summary>
public override int Opacity
{
get