<Type Name="Component" FullName="Atk.Component">
  <TypeSignature Language="C#" Value="public abstract interface Component;" Maintainer="auto" />
  <AssemblyInfo>
    <AssemblyName>atk-sharp</AssemblyName>
    <AssemblyPublicKey>
    </AssemblyPublicKey>
    <AssemblyVersion>0.0.0.0</AssemblyVersion>
    <AssemblyCulture>neutral</AssemblyCulture>
    <Attributes />
  </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 occupy a physical area on the screen.</summary>
    <remarks>
      <para>
        The ATK interface provided by UI components which occupy a
        physical area on the screen.
      </para>
      <para>
        This should be implemented by most if not all UI elements with
        an actual on-screen presence, i.e. components which can be
        said to have a screen-coordinate bounding box. Virtually all
        widgets will need to have <see cref="T:Atk.Component" /> implementations
        provided for their corresponding <see cref="T:Atk.Object" /> class. In short,
        only UI elements which are* not* GUI elements will omit this
        ATK interface.
      </para>
      <para>
        A possible exception might be textual information with a
        transparent background, in which case text glyph bounding box
        information is provided by <see cref="T:Atk.Text" />.
      </para>
    </remarks>
  </Docs>
  <Base />
  <Interfaces>
    <Interface>
      <InterfaceName>GLib.IWrapper</InterfaceName>
    </Interface>
  </Interfaces>
  <Attributes />
  <Members>
    <Member MemberName="RemoveFocusHandler">
      <MemberSignature Language="C#" Value="public virtual void RemoveFocusHandler (uint handler_id);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="handler_id" Type="System.UInt32" />
      </Parameters>
      <Docs>
        <summary>
          Remove the handler from the list of functions to be executed
          when this object receives focus events (in or out).
        </summary>
        <param name="handler_id">The handler id of the focus handler to be removed from component.</param>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="SetPosition">
      <MemberSignature Language="C#" Value="public virtual bool SetPosition (int x, int y, Atk.CoordType coord_type);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="x" Type="System.Int32" />
        <Parameter Name="y" Type="System.Int32" />
        <Parameter Name="coord_type" Type="Atk.CoordType" />
      </Parameters>
      <Docs>
        <summary>Sets the postition of this component.</summary>
        <param name="x">X coordinate.</param>
        <param name="y">Y coordinate.</param>
        <param name="coord_type">
          Specifies whether the coordinates are relative to the screen
          or to the components top level window.
        </param>
        <returns>
          <see langword="true" /> or <see langword="false" /> whether or not the position was set or not.</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="GrabFocus">
      <MemberSignature Language="C#" Value="public virtual bool GrabFocus ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Grabs focus for this component</summary>
        <returns>
          <see langword="true" /> if successful, <see langword="false" /> otherwise.
        </returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="SetExtents">
      <MemberSignature Language="C#" Value="public virtual bool SetExtents (int x, int y, int width, int height, Atk.CoordType coord_type);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="x" Type="System.Int32" />
        <Parameter Name="y" Type="System.Int32" />
        <Parameter Name="width" Type="System.Int32" />
        <Parameter Name="height" Type="System.Int32" />
        <Parameter Name="coord_type" Type="Atk.CoordType" />
      </Parameters>
      <Docs>
        <summary>Sets the extents of this component.</summary>
        <param name="x">X coordinate.</param>
        <param name="y">Y coordinate.</param>
        <param name="width">Width to set for this component.</param>
        <param name="height">Height to set for this component.</param>
        <param name="coord_type">
          Specifies whether the coordinates are relative to the screen
          or to the components top level window.
        </param>
        <returns>
          <see langword="true" /> or <see langword="false" /> whether the extents were
          set or not.
        </returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="SetSize">
      <MemberSignature Language="C#" Value="public virtual bool SetSize (int width, int height);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="width" Type="System.Int32" />
        <Parameter Name="height" Type="System.Int32" />
      </Parameters>
      <Docs>
        <summary>Set the size of this component in terms of width and height.</summary>
        <param name="width">Width to set for this component.</param>
        <param name="height">Height to set for this component.</param>
        <returns>
          <see langword="true" /> or <see langword="false" /> whether the size was set or not.
        </returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="AddFocusHandler">
      <MemberSignature Language="C#" Value="public virtual uint AddFocusHandler (Atk.FocusHandler handler);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="handler" Type="Atk.FocusHandler" />
      </Parameters>
      <Docs>
        <summary>
          Add the specified handler to the set of functions to be
          called when this object receives focus events (in or out).
        </summary>
        <param name="handler">The <see cref="T:Atk.FocusHandler" /> to be attached to this component.</param>
        <returns>
          A handler id which can be used in
          <see cref="M:Atk.Component.RemoveFocusHandler" /> or zero if the handler
          was already added.
        </returns>
        <remarks>
          <para>
            Add the specified handler to the set of functions to be
            called when this object receives focus events (in or out).
          </para>
          <para>
            If the handler is already added it is not added again.
          </para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="Contains">
      <MemberSignature Language="C#" Value="public virtual bool Contains (int x, int y, Atk.CoordType coord_type);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="x" Type="System.Int32" />
        <Parameter Name="y" Type="System.Int32" />
        <Parameter Name="coord_type" Type="Atk.CoordType" />
      </Parameters>
      <Docs>
        <summary>Checks whether the specified point is within the extent of this component.</summary>
        <param name="x">X coordinate</param>
        <param name="y">Y coordinate</param>
        <param name="coord_type">
          Specifies whether the coordinates are relative to the screen
          or to the components top level window.
        </param>
        <returns>
          <see langword="true" /> or <see langword="false" /> indicating whether the specified point is
          within the extent of the component or not.
        </returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="RefAccessibleAtPoint">
      <MemberSignature Language="C#" Value="public virtual Atk.Object RefAccessibleAtPoint (int x, int y, Atk.CoordType coord_type);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Atk.Object</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="x" Type="System.Int32" />
        <Parameter Name="y" Type="System.Int32" />
        <Parameter Name="coord_type" Type="Atk.CoordType" />
      </Parameters>
      <Docs>
        <summary>To be added</summary>
        <param name="x">To be added: an object of type 'int'</param>
        <param name="y">To be added: an object of type 'int'</param>
        <param name="coord_type">To be added: an object of type 'Atk.CoordType'</param>
        <returns>To be added: an object of type 'Atk.Object'</returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="MdiZorder">
      <MemberSignature Language="C#" Value="public virtual int MdiZorder { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>Gets the Z order of the component.</summary>
        <returns>The value G_MININT will be returned if the layer of the component is not ATK_LAYER_MDI or ATK_LAYER_WINDOW.</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="Layer">
      <MemberSignature Language="C#" Value="public virtual Atk.Layer Layer { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Atk.Layer</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>Gets the layer of this component.</summary>
        <returns>An <see cref="T:Atk.Layer" /> which is the layer of the component.</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="GetPosition">
      <MemberSignature Language="C#" Value="public virtual void GetPosition (out int x, out int y, Atk.CoordType coord_type);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="x" Type="System.Int32&amp;" RefType="out" />
        <Parameter Name="y" Type="System.Int32&amp;" RefType="out" />
        <Parameter Name="coord_type" Type="Atk.CoordType" />
      </Parameters>
      <Docs>
        <summary>
          Gets the position of component in the form of a point
          specifying this component's top-left corner.
        </summary>
        <param name="x">X coordinate position</param>
        <param name="y">Y coordinate position</param>
        <param name="coord_type">
          Specifies whether the coordinates are relative to the screen
          or to the components top level window.
        </param>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="GetExtents">
      <MemberSignature Language="C#" Value="public virtual void GetExtents (out int x, out int y, out int width, out int height, Atk.CoordType coord_type);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="x" Type="System.Int32&amp;" RefType="out" />
        <Parameter Name="y" Type="System.Int32&amp;" RefType="out" />
        <Parameter Name="width" Type="System.Int32&amp;" RefType="out" />
        <Parameter Name="height" Type="System.Int32&amp;" RefType="out" />
        <Parameter Name="coord_type" Type="Atk.CoordType" />
      </Parameters>
      <Docs>
        <summary>Gets the rectangle which gives the extent of this component.</summary>
        <param name="x">X coordinate position</param>
        <param name="y">Y coordinate position</param>
        <param name="width">Width</param>
        <param name="height">Height</param>
        <param name="coord_type">
          Specifies whether the coordinates are relative to the screen
          or to the components top level window.
        </param>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="GetSize">
      <MemberSignature Language="C#" Value="public virtual void GetSize (out int width, out int height);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="width" Type="System.Int32&amp;" RefType="out" />
        <Parameter Name="height" Type="System.Int32&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <summary>Gets the size of this component in terms of width and height.</summary>
        <param name="width">Width</param>
        <param name="height">Height</param>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="BoundsChanged">
      <MemberSignature Language="C#" Value="public virtual event Atk.BoundsChangedHandler BoundsChanged;" />
      <MemberType>Event</MemberType>
      <ReturnValue>
        <ReturnType>Atk.BoundsChangedHandler</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added</summary>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
  </Members>
</Type>