123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396 |
- // Copyright © 2013 The CefSharp Authors. All rights reserved.
- //
- // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-
- namespace CefSharp
- {
- /// <summary>
- /// Supports creation and modification of menus. See <see cref="CefMenuCommand"/> for the command ids that have default implementations.
- /// All user-defined command ids should be between <see cref="CefMenuCommand.UserFirst"/> and <see cref="CefMenuCommand.UserFirst"/>.
- /// The methods of this class can only be accessed on the CEF UI thread, which by default is not the same as your application UI thread.
- /// </summary>
- public interface IMenuModel
- {
- /// <summary>
- /// Returns the number of items in this menu.
- /// </summary>
- int Count { get; }
-
- /// <summary>
- /// Remove all menu items. Can be used to disable the context menu. Returns true on success.
- /// </summary>
- /// <returns>Returns true on success</returns>
- bool Clear();
-
- /// <summary>
- /// Returns the label at the specified index or empty if not found due to
- /// invalid range or the index being a separator.
- /// </summary>
- /// <param name="index">specified index</param>
- /// <returns>Label or empty if not found due to invalid range or the index being a separator.</returns>
- string GetLabelAt(int index);
-
- /// <summary>
- /// Returns the command id at the specified index or -1 if not found due to invalid range or the index being a separator.
- /// </summary>
- /// <param name="index">the index</param>
- /// <returns>Command or -1 if not found due to invalid range or the index being a separator.</returns>
- CefMenuCommand GetCommandIdAt(int index);
-
- /// <summary>
- /// Removes the item with the specified commandId.
- /// </summary>
- /// <param name="commandId">the command Id</param>
- /// <returns>Returns true on success</returns>
- bool Remove(CefMenuCommand commandId);
-
- /// <summary>
- /// Add an item to the menu.
- /// </summary>
- /// <param name="commandId">the command Id</param>
- /// <param name="label">the label of the item</param>
- /// <returns>Returns true on success.</returns>
- bool AddItem(CefMenuCommand commandId, string label);
-
- /// <summary>
- /// Add a separator to the menu.
- /// </summary>
- /// <returns>Returns true on success.</returns>
- bool AddSeparator();
-
- /// <summary>
- /// Add a check item to the menu.
- /// </summary>
- /// <param name="commandId">the command Id</param>
- /// <param name="label">the label of the item</param>
- /// <returns>Returns true on success.</returns>
- bool AddCheckItem(CefMenuCommand commandId, string label);
-
- /// <summary>
- /// Add a radio item to the menu. Only a single item with the specified groupId can be checked at a time.
- /// </summary>
- /// <param name="commandId">the command Id</param>
- /// <param name="label">the label of the item</param>
- /// <param name="groupId">the group id</param>
- /// <returns>Returns true on success.</returns>
- bool AddRadioItem(CefMenuCommand commandId, string label, int groupId);
-
- /// <summary>
- /// Add a sub-menu to the menu. The new sub-menu is returned.
- /// </summary>
- /// <param name="commandId">the command Id</param>
- /// <param name="label">the label of the item</param>
- /// <returns>Returns the newly created <see cref="IMenuModel"/>.</returns>
- IMenuModel AddSubMenu(CefMenuCommand commandId, string label);
-
- /// <summary>
- /// Insert a separator in the menu at the specified index.
- /// </summary>
- /// <param name="index">index</param>
- /// <returns>Returns true on success.</returns>
- bool InsertSeparatorAt(int index);
-
- /// <summary>
- /// Insert an item in the menu at the specified index.
- /// </summary>
- /// <param name="index">index</param>
- /// <param name="commandId">the command Id</param>
- /// <param name="label">the label of the item</param>
- /// <returns>Returns true on success.</returns>
- bool InsertItemAt(int index, CefMenuCommand commandId, string label);
-
- /// <summary>
- /// Insert a check item in the menu at the specified index.
- /// </summary>
- /// <param name="index">index</param>
- /// <param name="commandId">the command Id</param>
- /// <param name="label">the label of the item</param>
- /// <returns>Returns true on success.</returns>
- bool InsertCheckItemAt(int index, CefMenuCommand commandId, string label);
-
- /// <summary>
- /// Insert a radio item in the menu at the specified index.
- /// Only a single item with the specified groupId can be checked at a time.
- /// </summary>
- /// <param name="index">index</param>
- /// <param name="commandId">the command Id</param>
- /// <param name="label">the label of the item</param>
- /// <param name="groupId">the group id</param>
- /// <returns>Returns true on success.</returns>
- bool InsertRadioItemAt(int index, CefMenuCommand commandId, string label, int groupId);
-
- /// <summary>
- /// Insert a sub-menu in the menu at the specified index.
- /// </summary>
- /// <param name="index">index</param>
- /// <param name="commandId">the command Id</param>
- /// <param name="label">the label of the item</param>
- /// <returns>Returns the newly created <see cref="IMenuModel"/>.</returns>
- IMenuModel InsertSubMenuAt(int index, CefMenuCommand commandId, string label);
-
- /// <summary>
- /// Removes the item at the specified index.
- /// </summary>
- /// <param name="index">index</param>
- /// <returns>Returns true on success.</returns>
- bool RemoveAt(int index);
-
- /// <summary>
- /// Returns the index associated with the specified commandId or -1 if not found due to the command id not existing in the menu.
- /// </summary>
- /// <param name="commandId">the command Id</param>
- /// <returns>Returns the index associated with the specified commandId or -1 if not found due to the command id not existing in the menu.</returns>
- int GetIndexOf(CefMenuCommand commandId);
-
- /// <summary>
- /// Sets the command id at the specified index.
- /// </summary>
- /// <param name="index">index</param>
- /// <param name="commandId">the command Id</param>
- /// <returns>Returns true on success.</returns>
- bool SetCommandIdAt(int index, CefMenuCommand commandId);
-
- /// <summary>
- /// Returns the label for the specified commandId or empty if not found.
- /// </summary>
- /// <param name="commandId">the command Id</param>
- /// <returns>Returns the label for the specified commandId or empty if not found.</returns>
- string GetLabel(CefMenuCommand commandId);
-
- /// <summary>
- /// Sets the label for the specified commandId.
- /// </summary>
- /// <param name="commandId">the command Id</param>
- /// <param name="label">the label</param>
- /// <returns>Returns true on success.</returns>
- bool SetLabel(CefMenuCommand commandId, string label);
-
- /// <summary>
- /// Set the label at the specified index.
- /// </summary>
- /// <param name="index">index</param>
- /// <param name="label">the label</param>
- /// <returns>Returns true on success.</returns>
- bool SetLabelAt(int index, string label);
-
- /// <summary>
- /// Returns the item type for the specified commandId.
- /// </summary>
- /// <param name="commandId">the command Id</param>
- /// <returns>Returns the item type for the specified commandId.</returns>
- MenuItemType GetType(CefMenuCommand commandId);
-
- /// <summary>
- /// Returns the item type at the specified index.
- /// </summary>
- /// <param name="index">index</param>
- /// <returns>Returns the item type at the specified index.</returns>
- MenuItemType GetTypeAt(int index);
-
- /// <summary>
- /// Returns the group id for the specified commandId or -1 if invalid.
- /// </summary>
- /// <param name="commandId">the command Id</param>
- /// <returns>Returns the group id for the specified commandId or -1 if invalid.</returns>
- int GetGroupId(CefMenuCommand commandId);
-
- /// <summary>
- /// Returns the group id at the specified index or -1 if invalid.
- /// </summary>
- /// <param name="index">index</param>
- /// <returns>Returns the group id at the specified index or -1 if invalid.</returns>
- int GetGroupIdAt(int index);
-
- /// <summary>
- /// Sets the group id for the specified commandId.
- /// </summary>
- /// <param name="commandId">the command Id</param>
- /// <param name="groupId">the group id</param>
- /// <returns>Returns true on success.</returns>
- bool SetGroupId(CefMenuCommand commandId, int groupId);
-
- /// <summary>
- /// Sets the group id at the specified index.
- /// </summary>
- /// <param name="index">index</param>
- /// <param name="groupId">the group id</param>
- /// <returns>Returns true on success.</returns>
- bool SetGroupIdAt(int index, int groupId);
-
- /// <summary>
- /// Returns the <see cref="IMenuModel"/> for the specified commandId or null if invalid.
- /// </summary>
- /// <param name="commandId">the command Id</param>
- /// <returns>Returns the <see cref="IMenuModel"/> for the specified commandId or null if invalid.</returns>
- IMenuModel GetSubMenu(CefMenuCommand commandId);
-
- /// <summary>
- /// Returns the <see cref="IMenuModel"/> at the specified index or empty if invalid.
- /// </summary>
- /// <param name="index">index</param>
- /// <returns>Returns the <see cref="IMenuModel"/> for the specified commandId or null if invalid.</returns>
- IMenuModel GetSubMenuAt(int index);
-
- /// <summary>
- /// Returns true if the specified commandId is visible.
- /// </summary>
- /// <param name="commandId">the command Id</param>
- /// <returns>Returns true if the specified commandId is visible.</returns>
- bool IsVisible(CefMenuCommand commandId);
-
- /// <summary>
- /// Returns true if the specified index is visible.
- /// </summary>
- /// <param name="index">index</param>
- /// <returns>Returns true if the specified index is visible.</returns>
- bool IsVisibleAt(int index);
-
- /// <summary>
- /// Change the visibility of the specified commandId.
- /// </summary>
- /// <param name="commandId">the command Id</param>
- /// <param name="visible">visible</param>
- /// <returns>Returns true on success.</returns>
- bool SetVisible(CefMenuCommand commandId, bool visible);
-
- /// <summary>
- /// Change the visibility at the specified index.
- /// </summary>
- /// <param name="index">index</param>
- /// <param name="visible">visible</param>
- /// <returns>Returns true on success.</returns>
- bool SetVisibleAt(int index, bool visible);
-
- /// <summary>
- /// Returns true if the specified commandId is enabled.
- /// </summary>
- /// <param name="commandId">the command Id</param>
- /// <returns>Returns true if the specified commandId is enabled.</returns>
- bool IsEnabled(CefMenuCommand commandId);
-
- /// <summary>
- /// Returns true if the specified index is enabled.
- /// </summary>
- /// <param name="index">index</param>
- /// <returns>Returns true if the specified index is enabled.</returns>
- bool IsEnabledAt(int index);
-
- /// <summary>
- /// Change the enabled status of the specified commandId.
- /// </summary>
- /// <param name="commandId">the command Id</param>
- /// <param name="enabled">is enabled</param>
- /// <returns>Returns true on success.</returns>
- bool SetEnabled(CefMenuCommand commandId, bool enabled);
-
- /// <summary>
- /// Change the enabled status at the specified index.
- /// </summary>
- /// <param name="index">index</param>
- /// <param name="enabled">is enabled</param>
- /// <returns>Returns true on success.</returns>
- bool SetEnabledAt(int index, bool enabled);
-
- /// <summary>
- /// Returns true if the specified commandId is checked. Only applies to check and radio items.
- /// </summary>
- /// <param name="commandId">the command Id</param>
- /// <returns>Returns true if the specified commandId is checked. Only applies to check and radio items.</returns>
- bool IsChecked(CefMenuCommand commandId);
-
- /// <summary>
- /// Returns true if the specified index is checked. Only applies to check and radio items.
- /// </summary>
- /// <param name="index">index</param>
- /// <returns>Returns true if the specified index is checked. Only applies to check and radio items.</returns>
- bool IsCheckedAt(int index);
-
- /// <summary>
- /// Check the specified commandId. Only applies to check and radio items.
- /// </summary>
- /// <param name="commandId">the command Id</param>
- /// <param name="isChecked">set checked</param>
- /// <returns>Returns true on success.</returns>
- bool SetChecked(CefMenuCommand commandId, bool isChecked);
-
- /// <summary>
- /// Check the specified index. Only applies to check and radio items.
- /// </summary>
- /// <param name="index">index</param>
- /// <param name="isChecked">set checked</param>
- /// <returns>Returns true on success.</returns>
- bool SetCheckedAt(int index, bool isChecked);
-
- /// <summary>
- /// Returns true if the specified commandId has a keyboard accelerator assigned.
- /// </summary>
- /// <param name="commandId">the command Id</param>
- /// <returns>Returns true if the specified commandId has a keyboard accelerator assigned.</returns>
- bool HasAccelerator(CefMenuCommand commandId);
-
- /// <summary>
- /// Returns true if the specified index has a keyboard accelerator assigned.
- /// </summary>
- /// <param name="index">index</param>
- /// <returns>Returns true if the specified index has a keyboard accelerator assigned.</returns>
- bool HasAcceleratorAt(int index);
-
- /// <summary>
- /// Set the keyboard accelerator for the specified commandId.
- /// </summary>
- /// <param name="commandId">the command Id</param>
- /// <param name="keyCode">keyCode can be any key or character value. </param>
- /// <param name="shiftPressed">shift key pressed</param>
- /// <param name="ctrlPressed">ctrl key pressed</param>
- /// <param name="altPressed">alt key pressed</param>
- /// <returns>Returns true on success.</returns>
- bool SetAccelerator(CefMenuCommand commandId, int keyCode, bool shiftPressed, bool ctrlPressed, bool altPressed);
-
- /// <summary>
- /// Set the keyboard accelerator at the specified index. keyCode can be any key or character value.
- /// </summary>
- /// <param name="index">index</param>
- /// <param name="keyCode">keyCode can be any key or character value. </param>
- /// <param name="shiftPressed">shift key pressed</param>
- /// <param name="ctrlPressed">ctrl key pressed</param>
- /// <param name="altPressed">alt key pressed</param>
- /// <returns>Returns true on success.</returns>
- bool SetAcceleratorAt(int index, int keyCode, bool shiftPressed, bool ctrlPressed, bool altPressed);
-
- /// <summary>
- /// Remove the keyboard accelerator for the specified commandId.
- /// </summary>
- /// <param name="commandId">the command Id</param>
- /// <returns>Returns true on success.</returns>
- bool RemoveAccelerator(CefMenuCommand commandId);
-
- /// <summary>
- /// Remove the keyboard accelerator at the specified index.
- /// </summary>
- /// <param name="index">index</param>
- /// <returns>Returns true on success.</returns>
- bool RemoveAcceleratorAt(int index);
-
- /// <summary>
- /// Retrieves the keyboard accelerator for the specified commandId.
- /// </summary>
- /// <param name="commandId">the command Id</param>
- /// <param name="keyCode">keyCode can be any key or character value. </param>
- /// <param name="shiftPressed">shift key pressed</param>
- /// <param name="ctrlPressed">ctrl key pressed</param>
- /// <param name="altPressed">alt key pressed</param>
- /// <returns>Returns true on success.</returns>
- bool GetAccelerator(CefMenuCommand commandId, out int keyCode, out bool shiftPressed, out bool ctrlPressed, out bool altPressed);
-
- /// <summary>
- /// Retrieves the keyboard accelerator for the specified index.
- /// </summary>
- /// <param name="index">index</param>
- /// <param name="keyCode">keyCode can be any key or character value. </param>
- /// <param name="shiftPressed">shift key pressed</param>
- /// <param name="ctrlPressed">ctrl key pressed</param>
- /// <param name="altPressed">alt key pressed</param>
- /// <returns>Returns true on success.</returns>
- bool GetAcceleratorAt(int index, out int keyCode, out bool shiftPressed, out bool ctrlPressed, out bool altPressed);
- }
- }
|