<Type Name="Action" FullName="Atk.Action">
  <TypeSignature Language="C#" Maintainer="auto" Value="public interface Action : GLib.IWrapper" />
  <AssemblyInfo>
    <AssemblyName>atk-sharp</AssemblyName>
    <AssemblyPublicKey>
    </AssemblyPublicKey>
    <AssemblyVersion>2.12.0.0</AssemblyVersion>
  </AssemblyInfo>
  <ThreadSafetyStatement>Gtk# is thread aware, but not thread safe; See the <link location="node:gtk-sharp/programming/threads">Gtk# Thread Programming</link> for details.</ThreadSafetyStatement>
  <Docs>
    <summary>
      The ATK interface provided by UI components which the user can
      activate/interact with, this should be implemented by instances
      of <see cref="T:Atk.Object" /> classes with which the user can interact
      directly, i.e. buttons, checkboxes, scrollbars, e.g. components
      which are not "passive" providers of UI information.
    </summary>
    <remarks>
      <para>
        The ATK interface provided by UI components which the user can
        activate/interact with, This should be implemented by
        instances of <see cref="T:Atk.Object" /> classes with which the
        user can interact directly, i.e. buttons, checkboxes,
        scrollbars, e.g. components which are not "passive" providers
        of UI information.
      </para>
      <para>
        Exceptions: when the user interaction is already covered by
        another appropriate interface such as <see cref="T:Atk.EditableText" /> (insert/delete test, etc.) or <see cref="T:Atk.Value" /> (set value) then these actions should not
        be exposed by <see cref="T:Atk.Action" /> as well.
      </para>
      <para>
        Also note that the <see cref="T:Atk.Action" /> API is limited in that
        parameters may not be passed to the object being activated;
        thus the action must be self-contained and specifiable via
        only a single "verb". Concrete examples include "press",
        "release", "click" for buttons, "drag" (meaning initiate drag)
        and "drop" for drag sources and drop targets, etc.
      </para>
      <para>
        Though most UI interactions on components should be invocable
        via keyboard as well as mouse, there will generally be a close
        mapping between "mouse actions" that are possible on a
        component and the <see cref="T:Atk.Actions" />. Where mouse and keyboard
        actions are redundant in effect, <see cref="T:Atk.Action" /> should expose
        only one action rather than exposing redundant actions if
        possible. By convention we have been using "mouse centric"
        terminology for <see cref="T:Atk.Action" /> names.
      </para>
    </remarks>
  </Docs>
  <Interfaces>
    <Interface>
      <InterfaceName>GLib.IWrapper</InterfaceName>
    </Interface>
  </Interfaces>
  <Members>
    <Member MemberName="GetDescription">
      <MemberSignature Language="C#" Value="public string GetDescription (int i);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="i" Type="System.Int32" />
      </Parameters>
      <Docs>
        <summary>Returns a description of the specified action of the object.</summary>
        <param name="i">The action index corresponding to the action to be performed.</param>
        <returns>A description string, or 0 if action does not implement this interface.</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="SetDescription">
      <MemberSignature Language="C#" Value="public bool SetDescription (int i, string desc);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="i" Type="System.Int32" />
        <Parameter Name="desc" Type="System.String" />
      </Parameters>
      <Docs>
        <summary>Sets a description of the specified action of the object.</summary>
        <param name="i">The action index corresponding to the action to be performed.</param>
        <param name="desc">The description to be assigned to this action.</param>
        <returns>A <see cref="T:System.Boolean" /> representing if the description was successfully set.</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="GetKeybinding">
      <MemberSignature Language="C#" Value="public string GetKeybinding (int i);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="i" Type="System.Int32" />
      </Parameters>
      <Docs>
        <summary>Returns a keybinding associated with this action, if one exists.</summary>
        <param name="i">The action index corresponding to the action to be performed.</param>
        <returns>A string representing the keybinding, or an empty string if there is no keybinding for this action.</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="GetName">
      <MemberSignature Language="C#" Value="public string GetName (int i);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="i" Type="System.Int32" />
      </Parameters>
      <Docs>
        <summary>Returns the name of the specified action of the object.</summary>
        <param name="i">The action index corresponding to the action to be performed.</param>
        <returns>A name string, or an empty string if action does not implement this interface.</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="DoAction">
      <MemberSignature Language="C#" Value="public bool DoAction (int i);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="i" Type="System.Int32" />
      </Parameters>
      <Docs>
        <summary>Perform the specified action on the object.</summary>
        <param name="i">The action index corresponding to the action to be performed.</param>
        <returns>
          <see langword="true" /> if success, <see langword="false" /> otherwise.</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="NActions">
      <MemberSignature Language="C#" Value="public int NActions { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>Gets the number of accessible actions available on the object.</summary>
        <value>A the number of actions, or 0 if action does not implement this interface.</value>
        <remarks>
          Gets the number of accessible actions available on the
          object. If there are more than one, the first one is
          considered the "default" action of the object.
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="GetLocalizedName">
      <MemberSignature Language="C#" Value="public string GetLocalizedName (int i);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="i" Type="System.Int32" />
      </Parameters>
      <Docs>
        <summary>Returns the localized name of the specified action of the object.</summary>
        <param name="i">The action index corresponding to the action to be performed.</param>
        <returns>A name string, or an empty string if action does not implement this interface.</returns>
        <remarks />
      </Docs>
    </Member>
  </Members>
</Type>
