See Also: Statusbar Members
The Statusbar widget displays textual messages to the user. Statusbars are typically placed at the bottom of application Gtk.Windows.
A Statusbar may provide a regular commentary of the application's status (as is usually the case in a web browser, for example), or may be used to simply output a message when the status changes, (when an upload is complete in an FTP client, for example).
As a finishing touch to the StatusBar, it can have a "resize grip" added in the lower right corner. This is a triangular area that can be clicked on to resize the window containing the statusbar.
Status bars in Gtk maintain a stack of messages. The message at the top of the each bar's stack is the one that will currently be displayed.
Any messages added to a statusbar's stack must specify a context_id that is used to uniquely identify the source of a message. This context_id can be generated with Statusbar.GetContextId, given a message. Note that messages are stored in a stack, and when choosing which message to display, the stack structure is adhered to, regardless of the context identifier of a message.
Messages are added to the bar's stack with Statusbar.Push, and the message at the top of the stack can be removed using Statusbar.Pop. A message can be removed from anywhere in the stack if it's message_id was recorded at the time it was added. This is done using Statusbar.Remove.
C# Example
using System; using Gtk; class StatusbarSample { Statusbar sb; const int id = 1; int count; static void Main () { new StatusbarSample (); } StatusbarSample () { Application.Init (); count = 0; Window win = new Window ("StatusbarSample"); win.DeleteEvent += new DeleteEventHandler (OnWinDelete); win.SetDefaultSize (150, 100); VBox vbox = new VBox (false, 1); win.Add (vbox); Button btn = new Button ("Add to counter"); btn.Clicked += new EventHandler (OnButtonClicked); vbox.Add (btn); sb = new Statusbar (); sb.Push (id, "Welcome!"); sb.HasResizeGrip = false; vbox.Add (sb); win.ShowAll (); Application.Run (); } void OnButtonClicked (object obj, EventArgs args) { count ++; string message = String.Format ("Pushed {0} times", count); sb.Pop (id); sb.Push (id, message); } void OnWinDelete (object obj, DeleteEventArgs args) { Application.Quit (); } }