diff options
author | kingces95 <kingces95@users.noreply.github.com> | 2017-04-11 14:02:06 -0400 |
---|---|---|
committer | Rui Marinho <me@ruimarinho.net> | 2017-04-11 19:02:06 +0100 |
commit | 093a4efa2da9cb681890158ca8ee9bb6f30b0a8c (patch) | |
tree | ccc17255876e40d2c845d7b2c62dfc930156729d /Xamarin.Forms.Platform.WP8 | |
parent | 7458ca37330f424bf7fb1447580b0fa9c34c6db4 (diff) | |
download | xamarin-forms-093a4efa2da9cb681890158ca8ee9bb6f30b0a8c.tar.gz xamarin-forms-093a4efa2da9cb681890158ca8ee9bb6f30b0a8c.tar.bz2 xamarin-forms-093a4efa2da9cb681890158ca8ee9bb6f30b0a8c.zip |
Implicit impl of controller ifaces (#807)
* Simplify ICtrl callsites
* Rebase fix
Diffstat (limited to 'Xamarin.Forms.Platform.WP8')
-rw-r--r-- | Xamarin.Forms.Platform.WP8/CellControl.cs | 4 | ||||
-rw-r--r-- | Xamarin.Forms.Platform.WP8/CustomContextMenu.cs | 2 | ||||
-rw-r--r-- | Xamarin.Forms.Platform.WP8/ImageRenderer.cs | 4 | ||||
-rw-r--r-- | Xamarin.Forms.Platform.WP8/ListViewRenderer.cs | 52 | ||||
-rw-r--r-- | Xamarin.Forms.Platform.WP8/MasterDetailRenderer.cs | 28 | ||||
-rw-r--r-- | Xamarin.Forms.Platform.WP8/NavigationMenuRenderer.cs | 4 | ||||
-rw-r--r-- | Xamarin.Forms.Platform.WP8/Platform.cs | 13 | ||||
-rw-r--r-- | Xamarin.Forms.Platform.WP8/ScrollViewRenderer.cs | 17 | ||||
-rw-r--r-- | Xamarin.Forms.Platform.WP8/SearchBarRenderer.cs | 4 |
9 files changed, 57 insertions, 71 deletions
diff --git a/Xamarin.Forms.Platform.WP8/CellControl.cs b/Xamarin.Forms.Platform.WP8/CellControl.cs index 92da82a4..09682275 100644 --- a/Xamarin.Forms.Platform.WP8/CellControl.cs +++ b/Xamarin.Forms.Platform.WP8/CellControl.cs @@ -57,12 +57,12 @@ namespace Xamarin.Forms.Platform.WinPhone if (oldCell != null) { oldCell.PropertyChanged -= _propertyChangedHandler; - ((ICellController)oldCell).SendDisappearing(); + oldCell.SendDisappearing(); } if (newCell != null) { - ((ICellController)newCell).SendAppearing(); + newCell.SendAppearing(); if (oldCell == null || oldCell.GetType() != newCell.GetType()) ContentTemplate = GetTemplate(newCell); diff --git a/Xamarin.Forms.Platform.WP8/CustomContextMenu.cs b/Xamarin.Forms.Platform.WP8/CustomContextMenu.cs index faf9cb81..4946b2b2 100644 --- a/Xamarin.Forms.Platform.WP8/CustomContextMenu.cs +++ b/Xamarin.Forms.Platform.WP8/CustomContextMenu.cs @@ -19,7 +19,7 @@ namespace Xamarin.Forms.Platform.WinPhone var menuItem = item.DataContext as MenuItem; if (menuItem != null) - ((IMenuItemController)menuItem).Activate(); + menuItem.Activate(); }; return item; } diff --git a/Xamarin.Forms.Platform.WP8/ImageRenderer.cs b/Xamarin.Forms.Platform.WP8/ImageRenderer.cs index a3d4cacd..c51abe6e 100644 --- a/Xamarin.Forms.Platform.WP8/ImageRenderer.cs +++ b/Xamarin.Forms.Platform.WP8/ImageRenderer.cs @@ -78,7 +78,7 @@ namespace Xamarin.Forms.Platform.WinPhone async void SetSource(System.Windows.Controls.Image image) { - ((IImageController)Element).SetIsLoading(true); + Element.SetIsLoading(true); ImageSource source = Element.Source; IImageSourceHandler handler; @@ -102,7 +102,7 @@ namespace Xamarin.Forms.Platform.WinPhone else image.Source = null; - ((IImageController)Element).SetIsLoading(false); + Element.SetIsLoading(false); } } diff --git a/Xamarin.Forms.Platform.WP8/ListViewRenderer.cs b/Xamarin.Forms.Platform.WP8/ListViewRenderer.cs index 538c529f..797def8d 100644 --- a/Xamarin.Forms.Platform.WP8/ListViewRenderer.cs +++ b/Xamarin.Forms.Platform.WP8/ListViewRenderer.cs @@ -194,8 +194,7 @@ namespace Xamarin.Forms.Platform.WinPhone System.Windows.Controls.ProgressBar _progressBar; ViewportControl _viewport; - IListViewController Controller => Element; - ITemplatedItemsView<Cell> TemplatedItemsView => Element; + ITemplatedItemsView<Cell> TemplatedItemsView => base.Element; public override SizeRequest GetDesiredSize(double widthConstraint, double heightConstraint) { @@ -228,14 +227,13 @@ namespace Xamarin.Forms.Platform.WinPhone { base.OnElementChanged(e); - Controller.ScrollToRequested += OnScrollToRequested; + Element.ScrollToRequested += OnScrollToRequested; - if (Element.SelectedItem != null) + if (base.Element.SelectedItem != null) _itemNeedsSelecting = true; - _listBox = new FixedLongListSelector - { - DataContext = Element, + _listBox = new FixedLongListSelector { + DataContext = base.Element, ItemsSource = (IList)TemplatedItemsView.TemplatedItems, ItemTemplate = (System.Windows.DataTemplate)System.Windows.Application.Current.Resources["CellTemplate"], GroupHeaderTemplate = (System.Windows.DataTemplate)System.Windows.Application.Current.Resources["ListViewHeader"], @@ -268,7 +266,7 @@ namespace Xamarin.Forms.Platform.WinPhone base.OnElementPropertyChanged(sender, e); if (e.PropertyName == ListView.SelectedItemProperty.PropertyName) - OnItemSelected(Element.SelectedItem); + OnItemSelected(base.Element.SelectedItem); else if (e.PropertyName == "HeaderElement") UpdateHeader(); else if (e.PropertyName == "FooterElement") @@ -284,7 +282,7 @@ namespace Xamarin.Forms.Platform.WinPhone base.UpdateNativeWidget(); if (_progressBar != null) - _progressBar.Width = Element.Width; + _progressBar.Width = base.Element.Width; } Cell FindCell(GestureEventArgs e, out FrameworkElement element) @@ -415,11 +413,11 @@ namespace Xamarin.Forms.Platform.WinPhone return; var cell = e.Container.DataContext as Cell; - if (cell == null || !Equals(cell.BindingContext, Element.SelectedItem)) + if (cell == null || !Equals(cell.BindingContext, base.Element.SelectedItem)) return; _itemNeedsSelecting = false; - OnItemSelected(Element.SelectedItem); + OnItemSelected(base.Element.SelectedItem); } void OnItemSelected(object selectedItem) @@ -463,19 +461,19 @@ namespace Xamarin.Forms.Platform.WinPhone Cell parentCell = null; - if (Element.IsGroupingEnabled) + if (base.Element.IsGroupingEnabled) { parentCell = cell.GetGroupHeaderContent<ItemsView<Cell>, Cell>(); } _fromNative = cell.BindingContext; - if (Element.IsGroupingEnabled) + if (base.Element.IsGroupingEnabled) { - Controller.NotifyRowTapped(parentCell.GetIndex<ItemsView<Cell>, Cell>(), cell.GetIndex<ItemsView<Cell>, Cell>(), null); + Element.NotifyRowTapped(parentCell.GetIndex<ItemsView<Cell>, Cell>(), cell.GetIndex<ItemsView<Cell>, Cell>(), null); } else - Controller.NotifyRowTapped(cell.GetIndex<ItemsView<Cell>, Cell>(), null); + Element.NotifyRowTapped(cell.GetIndex<ItemsView<Cell>, Cell>(), null); } void OnNativeSelectionChanged(object sender, SelectionChangedEventArgs e) @@ -499,22 +497,22 @@ namespace Xamarin.Forms.Platform.WinPhone void OnPullToRefreshCanceled(object sender, EventArgs args) { - if (Element.IsPullToRefreshEnabled && Controller.RefreshAllowed) + if (base.Element.IsPullToRefreshEnabled && Element.RefreshAllowed) _progressBar.Visibility = Visibility.Collapsed; } void OnPullToRefreshCompleted(object sender, EventArgs args) { - if (Element.IsPullToRefreshEnabled && Controller.RefreshAllowed) + if (base.Element.IsPullToRefreshEnabled && Element.RefreshAllowed) { _progressBar.IsIndeterminate = true; - Controller.SendRefreshing(); + Element.SendRefreshing(); } } void OnPullToRefreshStarted(object sender, EventArgs args) { - if (Element.IsPullToRefreshEnabled && Controller.RefreshAllowed) + if (base.Element.IsPullToRefreshEnabled && Element.RefreshAllowed) { _progressBar.Visibility = Visibility.Visible; _progressBar.IsIndeterminate = false; @@ -524,7 +522,7 @@ namespace Xamarin.Forms.Platform.WinPhone void OnPullToRefreshStatusUpdated(object sender, EventArgs eventArgs) { - if (Element.IsPullToRefreshEnabled && Controller.RefreshAllowed) + if (base.Element.IsPullToRefreshEnabled && Element.RefreshAllowed) _progressBar.Value = Math.Max(0, Math.Min(1, _listBox.PullToRefreshStatus)); } @@ -575,7 +573,7 @@ namespace Xamarin.Forms.Platform.WinPhone var found = false; - if (Element.IsGroupingEnabled) + if (base.Element.IsGroupingEnabled) { for (var g = 0; g < templatedItems.Count; g++) { @@ -638,7 +636,7 @@ namespace Xamarin.Forms.Platform.WinPhone position = ScrollToPosition.Start; } - if (position == ScrollToPosition.Start && Element.IsGroupingEnabled) + if (position == ScrollToPosition.Start && base.Element.IsGroupingEnabled) y = y - targetHeaderHeight; else if (position == ScrollToPosition.Center) y = y - (_viewport.ActualHeight / 2 + targetHeight / 2); @@ -688,17 +686,17 @@ namespace Xamarin.Forms.Platform.WinPhone void UpdateFooter() { - Control.ListFooter = Controller.FooterElement; + Control.ListFooter = Element.FooterElement; } void UpdateHeader() { - Control.ListHeader = Controller.HeaderElement; + Control.ListHeader = Element.HeaderElement; } void UpdateIsRefreshing() { - if (Element.IsRefreshing) + if (base.Element.IsRefreshing) { _progressBar.Visibility = Visibility.Visible; _progressBar.IsIndeterminate = true; @@ -706,13 +704,13 @@ namespace Xamarin.Forms.Platform.WinPhone else { _progressBar.IsIndeterminate = false; - _progressBar.Visibility = _listBox.IsInPullToRefresh && Element.IsPullToRefreshEnabled && Controller.RefreshAllowed ? Visibility.Visible : Visibility.Collapsed; + _progressBar.Visibility = _listBox.IsInPullToRefresh && base.Element.IsPullToRefreshEnabled && Element.RefreshAllowed ? Visibility.Visible : Visibility.Collapsed; } } void UpdateJumpList() { - if (_listBox.IsGroupingEnabled && Element.GroupShortNameBinding == null) + if (_listBox.IsGroupingEnabled && base.Element.GroupShortNameBinding == null) _listBox.JumpListStyle = null; else _listBox.JumpListStyle = (System.Windows.Style)System.Windows.Application.Current.Resources["HeaderJumpStyle"]; diff --git a/Xamarin.Forms.Platform.WP8/MasterDetailRenderer.cs b/Xamarin.Forms.Platform.WP8/MasterDetailRenderer.cs index 9f05cb87..33899f45 100644 --- a/Xamarin.Forms.Platform.WP8/MasterDetailRenderer.cs +++ b/Xamarin.Forms.Platform.WP8/MasterDetailRenderer.cs @@ -20,11 +20,9 @@ namespace Xamarin.Forms.Platform.WinPhone AutoPackage = false; } - IMasterDetailPageController MasterDetailPageController => Element as IMasterDetailPageController; - public bool Visible { get; private set; } - IPageController PageController => Element as IPageController; + IPageController PageController => (base.Element as IPageController); protected override System.Windows.Size ArrangeOverride(System.Windows.Size finalSize) { @@ -37,10 +35,10 @@ namespace Xamarin.Forms.Platform.WinPhone base.OnElementChanged(e); if (e.OldElement != null) - ((IMasterDetailPageController)e.OldElement).BackButtonPressed -= HandleBackButtonPressed; + e.OldElement.BackButtonPressed -= HandleBackButtonPressed; if (e.NewElement != null) - ((IMasterDetailPageController)e.NewElement).BackButtonPressed += HandleBackButtonPressed; + e.NewElement.BackButtonPressed += HandleBackButtonPressed; LoadDetail(); LoadMaster(); @@ -49,7 +47,7 @@ namespace Xamarin.Forms.Platform.WinPhone Loaded += (sender, args) => { - if (Element.IsPresented) + if (base.Element.IsPresented) Toggle(); PageController.SendAppearing(); }; @@ -58,7 +56,7 @@ namespace Xamarin.Forms.Platform.WinPhone PageController.SendDisappearing(); if (Visible) { - var platform = (Platform)Element.Platform; + var platform = (Platform)base.Element.Platform; Canvas container = platform.GetCanvas(); container.Children.Remove(_popup); @@ -82,7 +80,7 @@ namespace Xamarin.Forms.Platform.WinPhone } else if (e.PropertyName == MasterDetailPage.IsPresentedProperty.PropertyName) { - if (Visible == Element.IsPresented) + if (Visible == base.Element.IsPresented) return; Toggle(); } @@ -90,7 +88,7 @@ namespace Xamarin.Forms.Platform.WinPhone internal void Toggle() { - var platform = Element.Platform as Platform; + var platform = base.Element.Platform as Platform; Canvas container = platform.GetCanvas(); if (_toggleTransition != null) @@ -124,7 +122,7 @@ namespace Xamarin.Forms.Platform.WinPhone Visible = !Visible; - ((IElementController)Element).SetValueFromRenderer(MasterDetailPage.IsPresentedProperty, Visible); + ((IElementController)base.Element).SetValueFromRenderer(MasterDetailPage.IsPresentedProperty, Visible); } void HandleBackButtonPressed(object sender, BackButtonPressedEventArgs e) @@ -141,7 +139,7 @@ namespace Xamarin.Forms.Platform.WinPhone if (_detailRenderer != null) Children.Remove(_detailRenderer.ContainerElement); - Page detail = Element.Detail; + Page detail = base.Element.Detail; if (Platform.GetRenderer(detail) == null) Platform.SetRenderer(detail, Platform.CreateRenderer(detail)); @@ -157,7 +155,7 @@ namespace Xamarin.Forms.Platform.WinPhone if (_masterRenderer != null && _popup != null) _popup.Child = null; - Page master = Element.Master; + Page master = base.Element.Master; if (Platform.GetRenderer(master) == null) Platform.SetRenderer(master, Platform.CreateRenderer(master)); @@ -172,10 +170,10 @@ namespace Xamarin.Forms.Platform.WinPhone if (width <= 0 || height <= 0) return; - var platform = Element.Platform as Platform; + var platform = base.Element.Platform as Platform; Size screenSize = platform.Size; - MasterDetailPageController.MasterBounds = new Rectangle(0, 0, screenSize.Width - 20, screenSize.Height - 20); - MasterDetailPageController.DetailBounds = new Rectangle(0, 0, width, height); + Element.MasterBounds = new Rectangle(0, 0, screenSize.Width - 20, screenSize.Height - 20); + Element.DetailBounds = new Rectangle(0, 0, width, height); _popup.Width = width - 20; _popup.Height = height - 20; diff --git a/Xamarin.Forms.Platform.WP8/NavigationMenuRenderer.cs b/Xamarin.Forms.Platform.WP8/NavigationMenuRenderer.cs index 3613a180..5fb40007 100644 --- a/Xamarin.Forms.Platform.WP8/NavigationMenuRenderer.cs +++ b/Xamarin.Forms.Platform.WP8/NavigationMenuRenderer.cs @@ -10,8 +10,6 @@ namespace Xamarin.Forms.Platform.WinPhone { const int Spacing = 12; - INavigationMenuController ElementController => Element; - protected override void OnElementChanged(ElementChangedEventArgs<NavigationMenu> e) { base.OnElementChanged(e); @@ -66,7 +64,7 @@ namespace Xamarin.Forms.Platform.WinPhone hubTile.Background = target.BackgroundColor.ToBrush(); Page tmp = target; - hubTile.Tap += (sender, args) => ElementController.SendTargetSelected(tmp); + hubTile.Tap += (sender, args) => Element.SendTargetSelected(tmp); hubTile.SetValue(System.Windows.Controls.Grid.RowProperty, y); hubTile.SetValue(System.Windows.Controls.Grid.ColumnProperty, x); diff --git a/Xamarin.Forms.Platform.WP8/Platform.cs b/Xamarin.Forms.Platform.WP8/Platform.cs index e1f4c9aa..fe745b39 100644 --- a/Xamarin.Forms.Platform.WP8/Platform.cs +++ b/Xamarin.Forms.Platform.WP8/Platform.cs @@ -537,7 +537,6 @@ namespace Xamarin.Forms.Platform.WinPhone var buttonsToAdd = new List<TaggedAppBarButton>(); foreach (ToolbarItem item in items.Where(i => i.Order != ToolbarItemOrder.Secondary)) { - IMenuItemController controller = item; if (_page.ApplicationBar.Buttons.OfType<TaggedAppBarButton>().Any(b => b.Tag == item)) continue; @@ -545,10 +544,10 @@ namespace Xamarin.Forms.Platform.WinPhone { IconUri = new Uri(item.Icon ?? "ApplicationIcon.jpg", UriKind.Relative), Text = !string.IsNullOrWhiteSpace(item.Text) ? item.Text : (string)item.Icon ?? "ApplicationIcon.jpg", - IsEnabled = controller.IsEnabled, + IsEnabled = item.IsEnabled, Tag = item }; - button.Click += (sender, args) => controller.Activate(); + button.Click += (sender, args) => item.Activate(); buttonsToAdd.Add(button); } @@ -559,7 +558,7 @@ namespace Xamarin.Forms.Platform.WinPhone continue; var button = new TaggedAppBarMenuItem { Text = !string.IsNullOrWhiteSpace(item.Text) ? item.Text : (string)item.Icon ?? "MenuItem", IsEnabled = true, Tag = item }; - button.Click += (sender, args) => ((IMenuItemController)item).Activate(); + button.Click += (sender, args) => item.Activate(); menuItemsToAdd.Add(button); } @@ -625,10 +624,8 @@ namespace Xamarin.Forms.Platform.WinPhone if (item == null) return; - IMenuItemController controller = item; - - if (e.PropertyName == controller.IsEnabledPropertyName) - IsEnabled = controller.IsEnabled; + if (e.PropertyName == item.IsEnabledPropertyName) + IsEnabled = item.IsEnabled; else if (e.PropertyName == MenuItem.TextProperty.PropertyName) Text = !string.IsNullOrWhiteSpace(item.Text) ? item.Text : (string)item.Icon ?? "ApplicationIcon.jpg"; else if (e.PropertyName == MenuItem.IconProperty.PropertyName) diff --git a/Xamarin.Forms.Platform.WP8/ScrollViewRenderer.cs b/Xamarin.Forms.Platform.WP8/ScrollViewRenderer.cs index 6e19d8c4..fdfeb306 100644 --- a/Xamarin.Forms.Platform.WP8/ScrollViewRenderer.cs +++ b/Xamarin.Forms.Platform.WP8/ScrollViewRenderer.cs @@ -14,11 +14,6 @@ namespace Xamarin.Forms.Platform.WinPhone AutoPackage = false; } - protected IScrollViewController Controller - { - get { return Element; } - } - public override SizeRequest GetDesiredSize(double widthConstraint, double heightConstraint) { SizeRequest result = base.GetDesiredSize(widthConstraint, heightConstraint); @@ -59,7 +54,7 @@ namespace Xamarin.Forms.Platform.WinPhone base.OnElementChanged(e); if (e.OldElement != null) - ((IScrollViewController)e.OldElement).ScrollToRequested -= OnScrollToRequested; + e.OldElement.ScrollToRequested -= OnScrollToRequested; if (e.NewElement != null) { @@ -68,7 +63,7 @@ namespace Xamarin.Forms.Platform.WinPhone SetNativeControl(new ScrollViewer { ManipulationMode = ManipulationMode.Control }); Control.LayoutUpdated += (sender, args) => { UpdateScrollPosition(); }; } - ((IScrollViewController)e.NewElement).ScrollToRequested += OnScrollToRequested; + e.NewElement.ScrollToRequested += OnScrollToRequested; } SizeChanged += (sender, args) => @@ -126,7 +121,7 @@ namespace Xamarin.Forms.Platform.WinPhone if (e.Mode == ScrollToMode.Element) { - Point itemPosition = Controller.GetScrollPositionForElement(e.Element as VisualElement, e.Position); + Point itemPosition = Element.GetScrollPositionForElement(e.Element as VisualElement, e.Position); x = itemPosition.X; y = itemPosition.Y; } @@ -141,13 +136,13 @@ namespace Xamarin.Forms.Platform.WinPhone animation.Commit(_animatable, "ScrollTo", length: 500, easing: Easing.CubicInOut, finished: (v, d) => { UpdateScrollOffset(x, y); - Controller.SendScrollFinished(); + Element.SendScrollFinished(); }); } else { UpdateScrollOffset(x, y); - Controller.SendScrollFinished(); + Element.SendScrollFinished(); } } @@ -188,7 +183,7 @@ namespace Xamarin.Forms.Platform.WinPhone void UpdateScrollPosition() { if (Element != null) - Controller.SetScrolledPosition(Control.HorizontalOffset, Control.VerticalOffset); + Element.SetScrolledPosition(Control.HorizontalOffset, Control.VerticalOffset); } } }
\ No newline at end of file diff --git a/Xamarin.Forms.Platform.WP8/SearchBarRenderer.cs b/Xamarin.Forms.Platform.WP8/SearchBarRenderer.cs index b37978d0..a79ab0a7 100644 --- a/Xamarin.Forms.Platform.WP8/SearchBarRenderer.cs +++ b/Xamarin.Forms.Platform.WP8/SearchBarRenderer.cs @@ -68,12 +68,12 @@ namespace Xamarin.Forms.Platform.WinPhone void PhoneTextBoxOnKeyUp(object sender, KeyEventArgs keyEventArgs) { if (keyEventArgs.Key == Key.Enter) - ((ISearchBarController)Element).OnSearchButtonPressed(); + Element.OnSearchButtonPressed(); } void PhoneTextBoxOnTextChanged(object sender, System.Windows.Controls.TextChangedEventArgs textChangedEventArgs) { - ((IElementController)Element).SetValueFromRenderer(SearchBar.TextProperty, Control.Text); + Element.SetValueFromRenderer(SearchBar.TextProperty, Control.Text); } void UpdateAlignment() |