<Type Name="ProgressBar" FullName="Gtk.ProgressBar">
  <TypeSignature Language="C#" Maintainer="John Luke" Value="public class ProgressBar : Gtk.Widget" />
  <AssemblyInfo>
    <AssemblyName>gtk-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>A widget which indicates progress visually.</summary>
    <remarks>
      <para>The <see cref="T:Gtk.ProgressBar" /> is typically used to display the progress of a long running operation.
				It provides a visual clue that processing is underway.
				The <see cref="T:Gtk.ProgressBar" /> can be used in two different modes: percentage mode and activity mode.</para>
      <para>When an application can determine how much work needs to take place (e.g. read a fixed number of bytes from a file) and can monitor its progress,
				it can use the <see cref="T:Gtk.ProgressBar" /> in percentage mode and the user sees a growing bar indicating the percentage of the work that has been completed.
				In this mode, the application is required to set <see cref="P:Gtk.ProgressBar.Fraction" /> periodically to update the progress bar.</para>
      <para>When an application has no accurate way of knowing the amount of work to do, it can use the <see cref="T:Gtk.ProgressBar" /> in activity mode, which shows activity by a block moving back and forth within the progress area.
				In this mode, the application is required to call <see cref="M:Gtk.ProgressBar.Pulse()" /> perodically to update the progress bar.</para>
      <para>There is quite a bit of flexibility provided to control the appearance of the <see cref="T:Gtk.ProgressBar" />.
				Functions are provided to control the orientation of the bar, optional text can be displayed along with the bar, and the step size used in activity mode can be set.</para>
      <para>
The following example show how percentage mode works
</para>
      <example>
        <code lang="C#">
using System;
using Gtk;

namespace TestGtkAlone
{
	public class TestProgress
	{
		static Gtk.ProgressBar PBar;
		static void Main()
		{
			 Gtk.Application.Init();
			 Gtk.Window WinPBar = new Window("Test Progress bar - Percentage mode");
			 Gtk.HBox HContainer = new Gtk.HBox(false, 2);
			 PBar = new ProgressBar();
			 Gtk.Button ButtonStart = new Gtk.Button("Start Progress");
			 HContainer.Add(PBar);
			 HContainer.Add(ButtonStart);
			 ButtonStart.Clicked += new EventHandler(ButtonStart_Clicked);
			 WinPBar.Add(HContainer);
			 WinPBar.ShowAll();
			 
			 Gtk.Application.Run();
		}
		
		public static void ButtonStart_Clicked(object sender, EventArgs args)
		{
			PBar.Adjustment.Lower = 0;
			PBar.Adjustment.Upper = 1000;
			while (PBar.Adjustment.Value &lt; PBar.Adjustment.Upper) {
				PBar.Adjustment.Value+=1;
			}
		}

	}

}

</code>
      </example>
    </remarks>
  </Docs>
  <Base>
    <BaseTypeName>Gtk.Widget</BaseTypeName>
  </Base>
  <Interfaces>
  </Interfaces>
  <Members>
    <Member MemberName="Pulse">
      <MemberSignature Language="C#" Value="public void Pulse ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Indicates an unknown amount of progress has been made</summary>
        <remarks>Indicates that some progress has been made, but you don't know how much.
					This causes the <see cref="T:Gtk.ProgressBar" /> to enter "activity mode," where a block bounces back and forth.
					Each call to <see cref="M:Gtk.ProgressBar.Pulse()" /> causes the block to move by a little bit (the amount of movement per pulse is determined by <see cref="P:Gtk.ProgressBar.PulseStep" />).</remarks>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public ProgressBar (IntPtr raw);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="raw" Type="System.IntPtr" />
      </Parameters>
      <Docs>
        <summary>Internal constructor</summary>
        <param name="raw">Pointer to the C object.</param>
        <remarks>
          <para>This is an internal constructor, and should not be used by user code.</para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public ProgressBar ();" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters />
      <Docs>
        <summary>Creates a new <see cref="T:Gtk.ProgressBar" />.</summary>
        <remarks>Creates a new <see cref="T:Gtk.ProgressBar" />.</remarks>
      </Docs>
    </Member>
    <Member MemberName="Adjustment">
      <MemberSignature Language="C#" Value="public Gtk.Adjustment Adjustment { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.Adjustment</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>Details about the increments used in updating the ProgressBar.</summary>
        <value>an object of type <see cref="T:Gtk.Adjustment" /></value>
        <remarks />
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("adjustment")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="DiscreteBlocks">
      <MemberSignature Language="C#" Value="public uint DiscreteBlocks { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt32</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>The number of blocks that the <see cref="T:Gtk.ProgressBar" /> is divided into.</summary>
        <value>an object of type <see cref="T:System.UInt32" /></value>
        <remarks>The number of blocks that the <see cref="T:Gtk.ProgressBar" /> is divided into when the style is discrete.</remarks>
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("discrete-blocks")</AttributeName>
        </Attribute>
        <Attribute>
          <AttributeName>System.Obsolete</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="Text">
      <MemberSignature Language="C#" Value="public string Text { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>The text displayed superimposed on the <see cref="T:Gtk.ProgressBar" />.</summary>
        <value>an object of type <see cref="T:System.String" /></value>
        <remarks>The text displayed superimposed on the <see cref="T:Gtk.ProgressBar" />, if any, otherwise <see langword="null" />.
					The return value is a reference to the text, not a copy of it, so will become invalid if you change the text in the <see cref="T:Gtk.ProgressBar" />.</remarks>
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("text")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="Orientation">
      <MemberSignature Language="C#" Value="public Gtk.ProgressBarOrientation Orientation { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.ProgressBarOrientation</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>The current <see cref="T:Gtk.ProgressBar" /> orientation.</summary>
        <value>an object of type <see cref="T:Gtk.ProgressBarOrientation" /></value>
        <remarks>The current <see cref="T:Gtk.ProgressBar" /> orientation.</remarks>
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("orientation")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="ActivityStep">
      <MemberSignature Language="C#" Value="public uint ActivityStep { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt32</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>The step value used when the <see cref="T:Gtk.ProgressBar" /> is in activity mode.</summary>
        <value>an object of type <see cref="T:System.UInt32" /></value>
        <remarks>The step value used when the <see cref="T:Gtk.ProgressBar" /> is in activity mode.
					The step is the amount by which the progress is incremented each iteration.</remarks>
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("activity-step")</AttributeName>
        </Attribute>
        <Attribute>
          <AttributeName>System.Obsolete</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="Fraction">
      <MemberSignature Language="C#" Value="public double Fraction { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Double</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>The current fraction of the task that has been completed.</summary>
        <value>an object of type <see cref="T:System.Double" /></value>
        <remarks>The current fraction of the task that has been completed.</remarks>
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("fraction")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="ActivityBlocks">
      <MemberSignature Language="C#" Value="public uint ActivityBlocks { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt32</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>The number of blocks used when the <see cref="T:Gtk.ProgressBar" /> is in activity mode.</summary>
        <value>an object of type <see cref="T:System.UInt32" /></value>
        <remarks>The number of blocks used when the <see cref="T:Gtk.ProgressBar" /> is in activity mode.
					Larger numbers make the visible block smaller.</remarks>
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("activity-blocks")</AttributeName>
        </Attribute>
        <Attribute>
          <AttributeName>System.Obsolete</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="BarStyle">
      <MemberSignature Language="C#" Value="public Gtk.ProgressBarStyle BarStyle { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.ProgressBarStyle</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>The style for drawing the <see cref="T:Gtk.ProgressBar" />.</summary>
        <value>an object of type <see cref="T:Gtk.ProgressBarStyle" /></value>
        <remarks>The style for drawing the <see cref="T:Gtk.ProgressBar" />.
					Continuous - The <see cref="T:Gtk.ProgressBar" /> grows in a smooth, continuous manner.
					Discrete - The <see cref="T:Gtk.ProgressBar" /> grows in discrete, visible blocks.</remarks>
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("bar-style")</AttributeName>
        </Attribute>
        <Attribute>
          <AttributeName>System.Obsolete</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="PulseStep">
      <MemberSignature Language="C#" Value="public double PulseStep { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Double</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>The fraction of total <see cref="T:Gtk.ProgressBar" /> length to move the bouncing block for each call to <see cref="M:Gtk.ProgressBar.Pulse()" />.</summary>
        <value>an object of type <see cref="T:System.Double" /></value>
        <remarks>The fraction of total <see cref="T:Gtk.ProgressBar" /> length to move the bouncing block for each call to <see cref="M:Gtk.ProgressBar.Pulse()" />.</remarks>
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("pulse-step")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="GType">
      <MemberSignature Language="C#" Value="public static GLib.GType GType { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>GLib.GType</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>GType Property.</summary>
        <value>a <see cref="T:GLib.GType" /></value>
        <remarks>Returns the native <see cref="T:GLib.GType" /> value for <see cref="T:Gtk.ProgressBar" />.</remarks>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="protected ProgressBar (GLib.GType gtype);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="gtype" Type="GLib.GType" />
      </Parameters>
      <Docs>
        <summary>Protected Constructor.</summary>
        <param name="gtype">a <see cref="T:GLib.GType" /></param>
        <remarks>Chain to this constructor if you have manually registered a native <see cref="T:GLib.GType" /> value for your subclass.</remarks>
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>System.Obsolete</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="Update">
      <MemberSignature Language="C#" Value="public void Update (double percentage);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="percentage" Type="System.Double" />
      </Parameters>
      <Docs>
        <summary>Update the progress bar with a new percentage-done.
It's marked as obsolete - it's better to use <see cref="M:Gtk.ProgressBar.Fraction" /></summary>
        <param name="percentage">a <see cref="T:System.Double" />, the percentage completed this bar should display.</param>
        <remarks>
        </remarks>
        <since version="Gtk# 2.4" />
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public ProgressBar (Gtk.Adjustment adjustment);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="adjustment" Type="Gtk.Adjustment" />
      </Parameters>
      <Docs>
        <summary>Public constructor.</summary>
        <param name="adjustment">a <see cref="T:Gtk.Adjustment" /></param>
        <remarks>
        </remarks>
        <since version="Gtk# 2.4" />
      </Docs>
    </Member>
    <Member MemberName="Ellipsize">
      <MemberSignature Language="C#" Value="public Pango.EllipsizeMode Ellipsize { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Pango.EllipsizeMode</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added</summary>
        <value>a <see cref="T:Pango.EllipsizeMode" /></value>
        <remarks>To be added</remarks>
        <since version="Gtk# 2.6" />
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("ellipsize")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
  </Members>
</Type>
