226 lines
5.7 KiB
C#
226 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 ();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|