From 18f4b191fda427c2fe4ea5faca6acb8219010cd9 Mon Sep 17 00:00:00 2001 From: Pedro Larouca Date: Sat, 27 Jan 2018 03:44:15 +0000 Subject: [PATCH] Some more buttons --- .../Samples/Sections/Widgets/ButtonSection.cs | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/Source/Samples/Sections/Widgets/ButtonSection.cs b/Source/Samples/Sections/Widgets/ButtonSection.cs index d5f4d09e1..b100301c1 100644 --- a/Source/Samples/Sections/Widgets/ButtonSection.cs +++ b/Source/Samples/Sections/Widgets/ButtonSection.cs @@ -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); + } + } } \ No newline at end of file