e958fb6475
svn path=/trunk/gtk-sharp/; revision=9681
225 lines
5.7 KiB
C#
225 lines
5.7 KiB
C#
// 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 ();
|
||
}
|
||
}
|
||
}
|