<Type Name="EventButton" FullName="Gdk.EventButton">
  <TypeSignature Language="C#" Value="public sealed struct EventButton;" Maintainer="auto" />
  <AssemblyInfo>
    <AssemblyName>gdk-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>Used for button press and button release events.</summary>
    <remarks>
      <para>
        Used for button press and button release events. The type
        field will be one of <see cref="F:Gdk.EventType.ButtonPress" />,
        <see cref="F:Gdk.EventType.TwoButtonPress" />,
        <see cref="F:Gdk.EventType.ThreeButtonPress" />,
        and <see cref="F:Gdk.EventType.ButtonRelease" /></para>
      <para>
        Double and triple-clicks result in a sequence of events being received. For double-clicks the order of events will be:

        <list type="number">
          <item>
            <term>
              <see cref="T:Gdk.EventType.ButtonPress" />
            </term>
          </item>
          <item>
            <term>
              <see cref="T:Gdk.EventType.ButtonRelease" />
            </term>
          </item>
          <item>
            <term>
              <see cref="T:Gdk.EventType.ButtonPress" />
            </term>
          </item>
          <item>
            <term>
              <see cref="T:Gdk.EventType.TwoButtonPress" />
            </term>
          </item>
          <item>
            <term>
              <see cref="T:Gdk.EventType.ButtonRelease" />
            </term>
          </item>
        </list></para>
      <para>
        Note that the first click is received just like a normal
        button press, while the second click results in a
        <see cref="T:Gdk.EventType.TwoButtonPress" /> being received just after the
        <see cref="T:Gdk.EventType.ButtonPress" />. Triple-clicks are very similar to
        double-clicks, except that <see cref="T:Gdk.EventType.ThreeButtonPress" /> is inserted after
        the third click. The order of the events is:

        <list type="number">
          <item>
            <term>
              <see cref="T:Gdk.EventType.ButtonPress" />
            </term>
          </item>
          <item>
            <term>
              <see cref="T:Gdk.EventType.ButtonRelease" />
            </term>
          </item>
          <item>
            <term>
              <see cref="T:Gdk.EventType.ButtonPress" />
            </term>
          </item>
          <item>
            <term>
              <see cref="T:Gdk.EventType.TwoButtonPress" />
            </term>
          </item>
          <item>
            <term>
              <see cref="T:Gdk.EventType.ButtonRelease" />
            </term>
          </item>
          <item>
            <term>
              <see cref="T:Gdk.EventType.ButtonPress" />
            </term>
          </item>
          <item>
            <term>
              <see cref="T:Gdk.EventType.ThreeButtonPress" />
            </term>
          </item>
          <item>
            <term>
              <see cref="T:Gdk.EventType.ButtonRelease" />
            </term>
          </item>
        </list></para>
      <para>
        For a double click to occur, the second button press must
        occur within 1/4 of a second of the first. For a triple click
        to occur, the third button press must also occur within 1/2
        second of the first button press.
      </para>
    </remarks>
  </Docs>
  <Base>
    <BaseTypeName>Gdk.Event</BaseTypeName>
  </Base>
  <Interfaces />
  <Attributes />
  <Members>
    <Member MemberName="Time">
      <MemberSignature Language="C#" Value="public uint Time { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt32</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>The time of the event in milliseconds.</summary>
        <returns>a <see cref="T:System.UInt32" /></returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="State">
      <MemberSignature Language="C#" Value="public Gdk.ModifierType State { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gdk.ModifierType</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>A bit-mask representing the state of the modifier keys (e.g. Control, Shift and Alt) and the pointer buttons.</summary>
        <returns>a <see cref="T:Gdk.ModifierType" /></returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="X">
      <MemberSignature Language="C#" Value="public double X { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Double</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>The x coordinate of the pointer relative to the window.</summary>
        <returns>a <see cref="T:System.Double" /></returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="Y">
      <MemberSignature Language="C#" Value="public double Y { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Double</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>The y coordinate of the pointer relative to the window.</summary>
        <returns>a <see cref="T:System.Double" /></returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="XRoot">
      <MemberSignature Language="C#" Value="public double XRoot { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Double</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>The x coordinate of the pointer relative to the root of the screen.</summary>
        <returns>a <see cref="T:System.Double" /></returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="YRoot">
      <MemberSignature Language="C#" Value="public double YRoot { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Double</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>The y coordinate of the pointer relative to the root of the screen.</summary>
        <returns>a <see cref="T:System.Double" /></returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="Button">
      <MemberSignature Language="C#" Value="public uint Button { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt32</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>The button which was pressed or released, numbered from 1 to 5. Normally button 1 is the left mouse button, 2 is the middle button, and 3 is the right button. On 2-button mice, the middle button can often be simulated by pressing both mouse buttons together.</summary>
        <returns>a <see cref="T:System.UInt32" /></returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="Device">
      <MemberSignature Language="C#" Value="public Gdk.Device Device { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gdk.Device</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>The device where the event originated.</summary>
        <returns>a <see cref="T:Gdk.Device" /></returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="Axes">
      <MemberSignature Language="C#" Value="public double [] Axes { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Double[]</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>x, y translated to the axes of device, or null if device is the mouse.</summary>
        <returns>a <see cref="T:System.Double[]" /></returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public EventButton (IntPtr raw);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="raw" Type="System.IntPtr" />
      </Parameters>
      <Docs>
        <summary>Internal constructor</summary>
        <param name="raw">a <see cref="T:System.IntPtr" /> to a <see cref="T:Gdk.Event.Handle" /></param>
        <returns>a <see cref="T:Gdk.EventButton" /></returns>
        <remarks>This constructor is internal and should not be used.</remarks>
      </Docs>
    </Member>
  </Members>
</Type>