GtkSharp/sample/tutorial/spinbutton/SpinButton.cs
Alejandro Sánchez Acosta e958fb6475 Added new sample for the GTK# tutorial.
svn path=/trunk/gtk-sharp/; revision=9681
2002-12-15 17:06:38 +00:00

225 lines
5.7 KiB
C#
Raw Blame History

// SpinButton.cs - Gtk# Tutorial example
//
// Author: Alejandro S<>nchez Acosta <raciel@es.gnu.org>
// Cesar Octavio Lopez Nataren <cesar@ciencias.unam.mx>
//
// (c) 2002 Alejandro S<>nchez Acosta
namespace GtkSharpTutorial {
using Gtk;
using GtkSharp;
using System;
using System.Drawing;
using System.Text;
public class SpinButtonSample
{
static Gtk.Window window;
static Frame frame;
static HBox hbox;
static VBox main_vbox;
static VBox vbox;
static VBox vbox2;
static SpinButton spinner;
static SpinButton spinner1;
static SpinButton spinner2;
static Button button;
static Label label;
static Label val_label;
static Adjustment adj;
static void toggle_snap (object obj, EventArgs args)
{
spinner1.SnapToTicks = ((ToggleButton) obj).Active;
}
static void toggle_numeric (object obj, EventArgs args)
{
spinner1.Numeric = ((ToggleButton) obj).Active;
}
// FIXME: exception emitted when called.
static void change_digits (object obj, EventArgs args)
{
spinner1.Digits = (uint) ((SpinButton) obj).ValueAsInt;
}
static void get_value (object obj, EventArgs args)
{
StringBuilder buff;
Label label;
SpinButton spin;
spin = spinner1;
buff =new StringBuilder ("ERROR");
label = new Label ("1");
label.Text = buff.ToString ();
}
static void delete_event (object obj, DeleteEventArgs args)
{
SignalArgs sa = (SignalArgs) args;
Application.Quit();
sa.RetVal = true;
}
static void exitbutton_event (object obj, EventArgs args)
{
Application.Quit();
}
public static void Main (string[] args)
{
Application.Init();
window = new Gtk.Window ("SpinButton#");
window.DeleteEvent += new DeleteEventHandler (delete_event);
main_vbox = new VBox (false, 5);
main_vbox.BorderWidth = 10;
window.Add (main_vbox);
frame = new Frame ("Not accelerated");
main_vbox.PackStart (frame, true, true, 0);
vbox = new VBox (false, 0);
vbox.BorderWidth = 5;
frame.Add (vbox);
// Day, month, year spinners
hbox = new HBox (false, 0);
vbox.PackStart (hbox, true, true, 5);
vbox2 = new VBox (false, 0);
hbox.PackStart (vbox2, true, true, 5);
label = new Label ("Day :");
((Gtk.Misc) label).SetAlignment ((float) 0.0, (float) 0.5);
vbox2.PackStart (label, false, true, 0);
adj = new Adjustment (1.0, 1.0, 31.0, 1.0, 5.0, 0.0);
spinner = new SpinButton (adj, 0, 0);
spinner.Wrap = true;
vbox2.PackStart (spinner, false, true, 0);
vbox2 = new VBox (false, 0);
hbox.PackStart (vbox2, true, true, 5);
label = new Label ("Month :");
((Gtk.Misc) label).SetAlignment ((float) 0.0, (float) 0.5);
vbox2.PackStart (label, false, true, 0);
adj = new Adjustment (1.0, 1.0, 12.0, 1.0,
5.0, 0.0);
spinner = new SpinButton (adj, 0, 0);
spinner.Wrap = true;
vbox2.PackStart (spinner, false, true, 0);
vbox2 = new VBox (false, 0);
hbox.PackStart (vbox2, true, true, 5);
label = new Label ("Year :");
((Gtk.Misc) label).SetAlignment ((float) 0.0, (float) 0.5);
vbox2.PackStart (label, false, true, 0);
adj = new Adjustment (1998.0, 0.0, 2100.0, 1.0, 100.0, 0.0);
spinner = new SpinButton (adj, 0, 0);
spinner.Wrap = false;
spinner.SetSizeRequest (55, -1);
vbox2.PackStart (spinner, false, true, 0);
frame = new Frame ("Accelerated");
main_vbox.PackStart (frame, true, true, 0);
vbox = new VBox (false, 0);
vbox.BorderWidth = 5;
frame.Add (vbox);
hbox = new HBox (false, 0);
vbox.PackStart (hbox, false, true, 5);
vbox2 = new VBox (false, 0);
hbox.PackStart (vbox2, true, true, 5);
label = new Label ("Value :");
((Gtk.Misc) label).SetAlignment ((float) 0.0, (float) 0.5);
vbox2.PackStart (label, false, true, 0);
adj = new Adjustment (0.0, -10000.0, 10000.0, 0.5, 100.0, 0.0);
spinner1 = new SpinButton (adj, 1.0, 2);
spinner1.Wrap = true;
spinner1.SetSizeRequest (100, -1);
vbox2.PackStart (spinner1, false, true, 0);
vbox2 = new VBox (false, 0);
hbox.PackStart (vbox2, true, true, 5);
label = new Label ("Digits :");
((Gtk.Misc) label).SetAlignment ((float) 0, (float) 0.5);
vbox2.PackStart (label, false, true, 0);
adj = new Adjustment (2, 1, 5, 1, 1, 0);
spinner2 = new SpinButton (adj, 0.0, 0);
spinner2.Wrap = true;
adj.ValueChanged += new EventHandler (change_digits);
vbox2.PackStart (spinner2, false, true, 0);
hbox = new HBox (false, 0);
vbox.PackStart (hbox, false, true, 5);
button = new CheckButton ("Snap to 0.5-ticks");
button.Clicked += new EventHandler (toggle_snap);
vbox.PackStart (button, true, true, 0);
((Gtk.ToggleButton) button).Active = true;
button = new CheckButton ("Numeric only input mode");
button.Clicked += new EventHandler (toggle_numeric);
vbox.PackStart (button, true, true, 0);
((Gtk.ToggleButton) button).Active = true;
val_label = new Label ("");
hbox = new HBox (false, 0);
vbox.PackStart (hbox, false, true, 5);
button = new Button ("Value as Int");
button.SetData ("user_data", val_label);
button.Clicked += new EventHandler (get_value);
hbox.PackStart (button, true, true, 5);
button = new Button ("Value as Float");
button.SetData ("user_data", val_label);
button.Clicked += new EventHandler (get_value);
hbox.PackStart (button, true, true, 5);
label.Text = "0";
vbox.PackStart (val_label, true, true, 0);
val_label.Text = "0";
hbox = new HBox (false, 0);
main_vbox.PackStart (hbox, false, true, 0);
button = new Button ("Close");
button.Clicked += new EventHandler (exitbutton_event);
hbox.PackStart (button, true, true, 5);
window.ShowAll();
Application.Run ();
}
}
}