Some more buttons

This commit is contained in:
Pedro Larouca 2018-01-27 03:44:15 +00:00
parent 1ec9511bc2
commit 18f4b191fd

View File

@ -15,6 +15,11 @@ namespace Samples
AddItem(CreateImageButton());
AddItem(CreateImageTextButton());
AddItem(CreateActionButton());
AddItem(CreateToggleButton());
AddItem(CreateLinkButton());
AddItem(CreateSpinButton());
AddItem(CreateSwitchButton());
AddItem(CreateColorButton());
}
public (string, Widget) CreateSimpleButton()
@ -67,5 +72,70 @@ namespace Samples
return ("Action button:", btn);
}
public (string, Widget) CreateToggleButton()
{
var btn = new ToggleButton("Toggle Me");
btn.Toggled += (sender, e) => ApplicationOutput.WriteLine(sender, "Buton Toggled");
return ("Toggle button:", btn);
}
public (string, Widget) CreateLinkButton()
{
var btn = new LinkButton("A simple link button");
btn.Clicked += (sender, e) => ApplicationOutput.WriteLine(sender, "Link button Clicked");
return ("Link button:", btn);
}
public (string, Widget) CreateSpinButton()
{
// Spinbutton constructor takes MinValue, MaxValue and StepValue
var btn = new SpinButton(0, 1000, 1);
// Button constructor also takes the adjustment object
// and it can be redefined any time like CurrentVal, MinVal, MaxVal, Step, PageStep, PageSize
btn.Adjustment.Configure(888, 0, 1000, 1, 100, 0);
// Default values are double, use ValueAsInt method to get Int
btn.ValueChanged += (sender, e) =>
ApplicationOutput.WriteLine(sender, $"Spin button changed: {btn.ValueAsInt}");
return ("Spin button:", btn);
}
public (string, Widget) CreateSwitchButton()
{
var btn = new Switch();
btn.ButtonReleaseEvent += (o, args) =>
ApplicationOutput.WriteLine(o, $"Switch is now: {!btn.Active}");
return ("Switch:", btn);
}
public (string, Widget) CreateColorButton()
{
var btn = new ColorButton();
// Set RGBA color
btn.Rgba = new Gdk.RGBA()
{
Red = 0,
Green = 0,
Blue = 255,
Alpha = 0.2 // 20% translucent
};
// Or Parse hex
btn.Rgba.Parse("#729FCF");
// UseAlpha default is false
btn.UseAlpha = true;
return ("Color button:", btn);
}
}
}