diff options
author | E.Z. Hart <hartez@users.noreply.github.com> | 2016-04-19 01:01:58 -0600 |
---|---|---|
committer | Jason Smith <jason.smith@xamarin.com> | 2016-04-19 00:01:58 -0700 |
commit | a98f3fb2aae3c5b6a3fa5140e51f51ec67843a49 (patch) | |
tree | 654fa47cbd3cc889061466939630dcd5133cc837 /Xamarin.Forms.Controls.Issues | |
parent | 89a50d4bc1f4aaf83d5f92a28c2a7a96282cc0d3 (diff) | |
download | xamarin-forms-a98f3fb2aae3c5b6a3fa5140e51f51ec67843a49.tar.gz xamarin-forms-a98f3fb2aae3c5b6a3fa5140e51f51ec67843a49.tar.bz2 xamarin-forms-a98f3fb2aae3c5b6a3fa5140e51f51ec67843a49.zip |
Add TextColor Property to Picker, TimePicker, DatePicker (#84)
* Add TextColor property to TimePicker
Add TextColor page to TimePicker gallery
Add TimePicker color toggling to color toggle test page
Split color toggle tests up among tabs
* Implement TimePicker.TextColor in iOS
* Implement TimePicker.TextColor for WinRT tablet
* Add IsEnabled=false tests to DefaultColorToggleTest Button and TimePicker
Consolidate ColorStates array
Fix IsEnabled changing color bug on iOS
* Implement TimePicker.TextColor for WP8
* Add TextColor property to DatePicker
Add DatePicker section to DefaultColorToggleTest
Impement DatePicker.TextColor for WP8
* Implement DatePicker.TextColor for WinRT/UWP/Windows Phone 8.1
* Implement DatePicker.TextColor for iOS
* Add TextColor to DatePicker Gallery Page
* Implement DatePicker.TextColor for Android
* Add Picker Gallery page for TextColor
Implement Picker.TextColor on Android
Consolidate TextColor management for Button, Picker, DatePicker, TimePicker
Implement
* Add untracked TextColorSwitcher
Implement Picker.TextColor in iOS
* Implement Picker.TextColor in WinRT/UWP/Windows Phone 8.1
Remove Pioker Loaded handlers in Dispose
* Implement Picker.TextColor in WP8
* Removed unused field
Update ignored warnings
* Update docs
* Use nameof() for BindableProperties
* Cleanup
* Fix custom renderer crashes for classes using TextColorSwitcher
* Correct property name references
* Fix typo and 'if' formatting
* Add missing else
Diffstat (limited to 'Xamarin.Forms.Controls.Issues')
-rw-r--r-- | Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/DefaultColorToggleTest.cs | 519 |
1 files changed, 425 insertions, 94 deletions
diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/DefaultColorToggleTest.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/DefaultColorToggleTest.cs index 6f6cec09..9bd8c146 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/DefaultColorToggleTest.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/DefaultColorToggleTest.cs @@ -1,146 +1,477 @@ -using Xamarin.Forms.CustomAttributes; +using System; +using System.Collections.Generic; +using Xamarin.Forms.CustomAttributes; namespace Xamarin.Forms.Controls { [Preserve (AllMembers=true)] [Issue (IssueTracker.None, 0, "Default colors toggle test", PlatformAffected.All)] - public class DefaultColorToggleTest : ContentPage + public class DefaultColorToggleTest : TabbedPage { - Button _buttonColorDefaultToggle; - Button _buttonColorInitted; - Label _labelColorDefaultToggle; - Label _labelColorInitted; + public DefaultColorToggleTest() + { + Title = "Test Color Toggle Page"; + + Children.Add(PickerPage()); + Children.Add(DatePickerPage()); + Children.Add(TimePickerPage()); + Children.Add(ButtonPage()); + Children.Add(LabelPage()); + Children.Add(EntryPage()); + Children.Add(PasswordPage()); + Children.Add(SearchBarPage()); + } + + static ContentPage PasswordPage() + { + var passwordColorDefaultToggle = new Entry() { IsPassword = true, Text = "Default Password Color" }; + var passwordColorInit = new Entry() { IsPassword = true, Text = "Should Be Red", TextColor = Color.Red }; + var passwordToggleButton = new Button() { Text = "Toggle Password Box (Default)" }; + passwordToggleButton.Clicked += (sender, args) => { + if (passwordColorDefaultToggle.TextColor.IsDefault) + { + passwordColorDefaultToggle.TextColor = Color.Red; + passwordToggleButton.Text = "Toggle Password Box (Red)"; + } + else + { + passwordColorDefaultToggle.TextColor = Color.Default; + passwordToggleButton.Text = "Toggle Password Box (Default)"; + } + }; + + return new ContentPage { + Title = "Password", + Content = new StackLayout { + VerticalOptions = LayoutOptions.Fill, + HorizontalOptions = LayoutOptions.Fill, + Children = + { + passwordColorDefaultToggle, + passwordToggleButton, + passwordColorInit + } + } + }; + } + + static ContentPage SearchBarPage() + { + var searchbarTextColorDefaultToggle = new Entry() { Text = "Default SearchBar Text Color" }; + var searchbarTextColorToggleButton = new Button() { Text = "Toggle SearchBar Color" }; + searchbarTextColorToggleButton.Clicked += (sender, args) => { + if (searchbarTextColorDefaultToggle.TextColor.IsDefault) + { + searchbarTextColorDefaultToggle.TextColor = Color.Fuchsia; + searchbarTextColorDefaultToggle.Text = "Should Be Fuchsia"; + } + else + { + searchbarTextColorDefaultToggle.TextColor = Color.Default; + searchbarTextColorDefaultToggle.Text = "Default SearchBar Text Color"; + } + }; + + var searchbarPlaceholderColorDefaultToggle = new Entry() { Placeholder = "Default Placeholder Color" }; + var searchbarPlaceholderToggleButton = new Button() { Text = "Toggle Placeholder Color" }; + searchbarPlaceholderToggleButton.Clicked += (sender, args) => { + if (searchbarPlaceholderColorDefaultToggle.PlaceholderColor.IsDefault) + { + searchbarPlaceholderColorDefaultToggle.PlaceholderColor = Color.Lime; + searchbarPlaceholderColorDefaultToggle.Placeholder = "Should Be Lime"; + } + else + { + searchbarPlaceholderColorDefaultToggle.PlaceholderColor = Color.Default; + searchbarPlaceholderColorDefaultToggle.Placeholder = "Default Placeholder Color"; + } + }; + + return new ContentPage { + Title = "SearchBar", + Content = new StackLayout { + VerticalOptions = LayoutOptions.Fill, + HorizontalOptions = LayoutOptions.Fill, + Children = + { + searchbarTextColorDefaultToggle, + searchbarTextColorToggleButton, + searchbarPlaceholderColorDefaultToggle, + searchbarPlaceholderToggleButton + } + } + }; + } - public DefaultColorToggleTest () + static ContentPage ButtonPage() { - _buttonColorDefaultToggle = new Button { - Text = "Default Button Color" + const string defaultLabel = "Default Color (Click To Toggle)"; + + var buttonColorDefaultToggle = new Button { + Text = defaultLabel }; - _buttonColorInitted = new Button { - Text = "I should be red", + var buttonColorInitted = new Button { + Text = "This Should Always Be Red", TextColor = Color.Red }; - _labelColorDefaultToggle = new Label { - Text = "Default Label Color" + const string disabledText = "Button is Disabled; Should have default disabled color."; + var buttonColorDisabled = new Button + { + Text = disabledText, + TextColor = Color.Green, + IsEnabled = false }; - _labelColorInitted = new Label { - Text = "I should be blue", - TextColor = Color.Blue + var buttonDisableOtherButton = new Button() + { + Text = "Toggle IsEnabled" }; - _buttonColorDefaultToggle.Clicked += (s, e) => { - if (_buttonColorDefaultToggle.TextColor == Color.Default) { - _buttonColorDefaultToggle.TextColor = Color.Red; - _buttonColorDefaultToggle.Text = "Custom Button Color"; - } else { - _buttonColorDefaultToggle.TextColor = Color.Default; - _buttonColorDefaultToggle.Text = "Default Button Color"; + buttonDisableOtherButton.Clicked += (sender, args) => + { + buttonColorDisabled.IsEnabled = !buttonColorDisabled.IsEnabled; + if (!buttonColorDisabled.IsEnabled) + { + buttonColorDisabled.Text = disabledText; + } + else + { + buttonColorDisabled.Text = "Button is Enabled; Should Be Green"; } - }; - _labelColorDefaultToggle.GestureRecognizers.Add (new TapGestureRecognizer{Command = new Command (o=>{ - if (_labelColorDefaultToggle.TextColor == Color.Default) { - _labelColorDefaultToggle.TextColor = Color.Green; - _labelColorDefaultToggle.Text = "Custom Label Color"; - } else { - _labelColorDefaultToggle.TextColor = Color.Default; - _labelColorDefaultToggle.Text = "Default Label Color"; + buttonColorDefaultToggle.Clicked += (s, e) => { + if (buttonColorDefaultToggle.TextColor == Color.Default) + { + buttonColorDefaultToggle.TextColor = Color.Red; + buttonColorDefaultToggle.Text = "Custom Color (Click To Toggle)"; } - })}); + else + { + buttonColorDefaultToggle.TextColor = Color.Default; + buttonColorDefaultToggle.Text = defaultLabel; + } + + }; + + return new ContentPage { + Title = "Button", + Content = new StackLayout + { + VerticalOptions = LayoutOptions.Fill, + HorizontalOptions = LayoutOptions.Fill, + Children = + { + buttonColorDefaultToggle, + buttonColorInitted, + buttonColorDisabled, + buttonDisableOtherButton + } + } + }; + } - var entryTextColorDefaultToggle = new Entry () { Text = "Default Entry Text Color" }; - var entryTextColorInit = new Entry () { Text = "Should Be Red", TextColor = Color.Red }; - var entryToggleButton = new Button () { Text = "Toggle Entry Color" }; - entryToggleButton.Clicked += (sender, args) => { - if (entryTextColorDefaultToggle.TextColor.IsDefault) { + static ContentPage LabelPage() + { + const string defaultText = "Default Label Color (Tap To Toggle)"; + + var labelColorDefaultToggle = new Label { + Text = defaultText + }; + + var labelColorInitted = new Label { + Text = "Should Always Be Blue", + TextColor = Color.Blue + }; + + labelColorDefaultToggle.GestureRecognizers.Add(new TapGestureRecognizer { + Command = new Command(o => { + if (labelColorDefaultToggle.TextColor == Color.Default) + { + labelColorDefaultToggle.TextColor = Color.Green; + labelColorDefaultToggle.Text = "Custom Label Color (Tap To Toggle)"; + } + else + { + labelColorDefaultToggle.TextColor = Color.Default; + labelColorDefaultToggle.Text = defaultText; + } + }) + }); + + return new ContentPage { + Title = "Label", + Content = new StackLayout { + VerticalOptions = LayoutOptions.Fill, + HorizontalOptions = LayoutOptions.Fill, + Children = + { + labelColorDefaultToggle, + labelColorInitted + } + } + }; + } + + static ContentPage EntryPage() + { + var entryTextColorInit = new Entry { Text = "Should Always Be Red", TextColor = Color.Red }; + var entryPlaceholderColorInit = new Entry { Placeholder = "Should Always Be Lime", PlaceholderColor = Color.Lime }; + + const string defaultEntryColor = "Default Entry Text Color"; + var entryTextColorDefaultToggle = new Entry { Text = defaultEntryColor }; + + var entryToggleButton = new Button { Text = "Toggle Entry Color" }; + entryToggleButton.Clicked += (sender, args) => + { + if (entryTextColorDefaultToggle.TextColor.IsDefault) + { entryTextColorDefaultToggle.TextColor = Color.Fuchsia; entryTextColorDefaultToggle.Text = "Should Be Fuchsia"; - } else { + } + else + { entryTextColorDefaultToggle.TextColor = Color.Default; - entryTextColorDefaultToggle.Text = "Default Entry Text Color"; + entryTextColorDefaultToggle.Text = defaultEntryColor; } }; - var entryPlaceholderColorDefaultToggle = new Entry () { Placeholder = "Default Placeholder Color" }; - var entryPlaceholderColorInit = new Entry () { Placeholder = "Should Be Lime", PlaceholderColor = Color.Lime }; - var entryPlaceholderToggleButton = new Button () { Text = "Toggle Placeholder Color" }; - entryPlaceholderToggleButton.Clicked += (sender, args) => { - if (entryPlaceholderColorDefaultToggle.PlaceholderColor.IsDefault) { + const string defaultPlaceholderColorText = "Default Placeholder Color"; + var entryPlaceholderColorDefaultToggle = new Entry { Placeholder = defaultPlaceholderColorText }; + + var entryPlaceholderToggleButton = new Button { Text = "Toggle Placeholder Color" }; + entryPlaceholderToggleButton.Clicked += (sender, args) => + { + if (entryPlaceholderColorDefaultToggle.PlaceholderColor.IsDefault) + { entryPlaceholderColorDefaultToggle.PlaceholderColor = Color.Lime; entryPlaceholderColorDefaultToggle.Placeholder = "Should Be Lime"; - } else { + } + else + { entryPlaceholderColorDefaultToggle.PlaceholderColor = Color.Default; - entryPlaceholderColorDefaultToggle.Placeholder = "Default Placeholder Color"; + entryPlaceholderColorDefaultToggle.Placeholder = defaultPlaceholderColorText; } }; - var passwordColorDefaultToggle = new Entry () { IsPassword = true, Text = "Default Password Color" }; - var passwordColorInit = new Entry () { IsPassword = true, Text = "Should Be Red", TextColor = Color.Red }; - var passwordToggleButton = new Button () { Text = "Toggle Password Box (Default)" }; - passwordToggleButton.Clicked += (sender, args) => { - if (passwordColorDefaultToggle.TextColor.IsDefault) { - passwordColorDefaultToggle.TextColor = Color.Red; - passwordToggleButton.Text = "Toggle Password Box (Red)"; - } else { - passwordColorDefaultToggle.TextColor = Color.Default; - passwordToggleButton.Text = "Toggle Password Box (Default)"; + return new ContentPage + { + Title = "Entry", + Content = new StackLayout + { + VerticalOptions = LayoutOptions.Fill, + HorizontalOptions = LayoutOptions.Fill, + Children = + { + entryTextColorDefaultToggle, + entryToggleButton, + entryTextColorInit, + entryPlaceholderColorDefaultToggle, + entryPlaceholderToggleButton, + entryPlaceholderColorInit + } } }; + } - var searchbarTextColorDefaultToggle = new Entry () { Text = "Default SearchBar Text Color" }; - var searchbarTextColorToggleButton = new Button () { Text = "Toggle SearchBar Color" }; - searchbarTextColorToggleButton.Clicked += (sender, args) => { - if (searchbarTextColorDefaultToggle.TextColor.IsDefault) { - searchbarTextColorDefaultToggle.TextColor = Color.Fuchsia; - searchbarTextColorDefaultToggle.Text = "Should Be Fuchsia"; - } else { - searchbarTextColorDefaultToggle.TextColor = Color.Default; - searchbarTextColorDefaultToggle.Text = "Default SearchBar Text Color"; + static ContentPage TimePickerPage() + { + var timePickerInit = new TimePicker { Time = new TimeSpan(11, 34, 00), TextColor = Color.Red }; + var timePickerColorDefaultToggle = new TimePicker { Time = new TimeSpan(11, 34, 00) }; + + var defaultText = "Should have default color text"; + var timePickerColorLabel = new Label() {Text = defaultText }; + + var toggleButton = new Button { Text = "Toggle TimePicker Text Color" }; + toggleButton.Clicked += (sender, args) => { + if (timePickerColorDefaultToggle.TextColor.IsDefault) + { + timePickerColorDefaultToggle.TextColor = Color.Fuchsia; + timePickerColorLabel.Text = "Should have fuchsia text"; + } + else + { + timePickerColorDefaultToggle.TextColor = Color.Default; + timePickerColorLabel.Text = defaultText; } }; - var searchbarPlaceholderColorDefaultToggle = new Entry () { Placeholder = "Default Placeholder Color" }; - var searchbarPlaceholderToggleButton = new Button () { Text = "Toggle Placeholder Color" }; - searchbarPlaceholderToggleButton .Clicked += (sender, args) => { - if (searchbarPlaceholderColorDefaultToggle.PlaceholderColor.IsDefault) { - searchbarPlaceholderColorDefaultToggle.PlaceholderColor = Color.Lime; - searchbarPlaceholderColorDefaultToggle.Placeholder = "Should Be Lime"; - } else { - searchbarPlaceholderColorDefaultToggle.PlaceholderColor = Color.Default; - searchbarPlaceholderColorDefaultToggle.Placeholder = "Default Placeholder Color"; + const string disabledText = "TimePicker is Disabled; Should have default disabled color."; + var timePickerDisabledlabel = new Label { Text = disabledText}; + var timePickerColorDisabled = new TimePicker { + IsEnabled = false, + TextColor = Color.Green + }; + + var buttonToggleEnabled = new Button() { + Text = "Toggle IsEnabled" + }; + + buttonToggleEnabled.Clicked += (sender, args) => { + timePickerColorDisabled.IsEnabled = !timePickerColorDisabled.IsEnabled; + if (!timePickerColorDisabled.IsEnabled) + { + timePickerDisabledlabel.Text = disabledText; + } + else + { + timePickerDisabledlabel.Text = "TimePicker is Enabled; Should Be Green"; } }; - Title = "Test Color Toggle Page"; + return new ContentPage { + Title = "TimePicker", + Padding = new Thickness(0, Device.OnPlatform(20, 0, 0), 0, Device.OnPlatform(00, 0, 0)), + Content = new StackLayout { + VerticalOptions = LayoutOptions.Fill, + HorizontalOptions = LayoutOptions.Fill, + Children = + { + timePickerColorLabel, + timePickerColorDefaultToggle, + toggleButton, + timePickerInit, + timePickerDisabledlabel, + timePickerColorDisabled, + buttonToggleEnabled + } + } + }; + } + + static ContentPage DatePickerPage() + { + var pickerInit = new DatePicker { Date = new DateTime(1978, 12, 24), TextColor = Color.Red }; + var pickerColorDefaultToggle = new DatePicker { Date = new DateTime(1978, 12, 24) }; + + var defaultText = "Should have default color text"; + var pickerColorLabel = new Label { Text = defaultText }; - Content = new ScrollView () { + var toggleButton = new Button { Text = "Toggle DatePicker Text Color" }; + toggleButton.Clicked += (sender, args) => { + if (pickerColorDefaultToggle.TextColor.IsDefault) + { + pickerColorDefaultToggle.TextColor = Color.Fuchsia; + pickerColorLabel.Text = "Should have fuchsia text"; + } + else + { + pickerColorDefaultToggle.TextColor = Color.Default; + pickerColorLabel.Text = defaultText; + } + }; + + const string disabledText = "DatePicker is Disabled; Should have default disabled color."; + var pickerDisabledlabel = new Label { Text = disabledText }; + var pickerColorDisabled = new DatePicker { + IsEnabled = false, + TextColor = Color.Green + }; + + var buttonToggleEnabled = new Button() { + Text = "Toggle IsEnabled" + }; + + buttonToggleEnabled.Clicked += (sender, args) => { + pickerColorDisabled.IsEnabled = !pickerColorDisabled.IsEnabled; + if (!pickerColorDisabled.IsEnabled) + { + pickerDisabledlabel.Text = disabledText; + } + else + { + pickerDisabledlabel.Text = "DatePicker is Enabled; Should Be Green"; + } + }; + + return new ContentPage { + Title = "DatePicker", + Padding = new Thickness(0, Device.OnPlatform(20, 0, 0), 0, Device.OnPlatform(00, 0, 0)), Content = new StackLayout { - Children = { - _buttonColorDefaultToggle, - _buttonColorInitted, - _labelColorDefaultToggle, - _labelColorInitted, - entryTextColorDefaultToggle, - entryToggleButton, - entryTextColorInit, - entryPlaceholderColorDefaultToggle, - entryPlaceholderToggleButton, - entryPlaceholderColorInit, - passwordColorDefaultToggle, - passwordToggleButton, - passwordColorInit, - searchbarTextColorDefaultToggle, - searchbarTextColorToggleButton, - searchbarPlaceholderColorDefaultToggle, - searchbarPlaceholderToggleButton + VerticalOptions = LayoutOptions.Fill, + HorizontalOptions = LayoutOptions.Fill, + Children = + { + pickerColorLabel, + pickerColorDefaultToggle, + toggleButton, + pickerInit, + pickerDisabledlabel, + pickerColorDisabled, + buttonToggleEnabled } } }; } + static ContentPage PickerPage() + { + var pickerInit = new Picker { TextColor = Color.Red, Items = { "Item 1", "Item 2", "Item 3" }, SelectedIndex = 1 }; + + var pickerColorDefaultToggle = new Picker { Items = { "Item 1", "Item 2", "Item 3" } , SelectedIndex = 1 }; + + var defaultText = "Should have default color text"; + var pickerColorLabel = new Label { Text = defaultText }; + + var toggleButton = new Button { Text = "Toggle Picker Text Color" }; + toggleButton.Clicked += (sender, args) => { + if (pickerColorDefaultToggle.TextColor.IsDefault) + { + pickerColorDefaultToggle.TextColor = Color.Fuchsia; + pickerColorLabel.Text = "Should have fuchsia text"; + } + else + { + pickerColorDefaultToggle.TextColor = Color.Default; + pickerColorLabel.Text = defaultText; + } + }; + + const string disabledText = "Picker is Disabled; Should have default disabled color."; + var pickerDisabledlabel = new Label { Text = disabledText }; + var pickerColorDisabled = new Picker { + IsEnabled = false, + TextColor = Color.Green, + Items = { "Item 1", "Item 2", "Item 3" }, + SelectedIndex = 1 + }; + + var buttonToggleEnabled = new Button() { + Text = "Toggle IsEnabled" + }; + + buttonToggleEnabled.Clicked += (sender, args) => { + pickerColorDisabled.IsEnabled = !pickerColorDisabled.IsEnabled; + if (!pickerColorDisabled.IsEnabled) + { + pickerDisabledlabel.Text = disabledText; + } + else + { + pickerDisabledlabel.Text = "Picker is Enabled; Should Be Green"; + } + }; + + return new ContentPage { + Title = "Picker", + Padding = new Thickness(0, Device.OnPlatform(20, 0, 0), 0, Device.OnPlatform(00, 0, 0)), + Content = new StackLayout { + VerticalOptions = LayoutOptions.Fill, + HorizontalOptions = LayoutOptions.Fill, + Children = + { + pickerColorLabel, + pickerColorDefaultToggle, + toggleButton, + pickerInit, + pickerDisabledlabel, + pickerColorDisabled, + buttonToggleEnabled + } + } + }; + } } } |