summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Platform.WP8
diff options
context:
space:
mode:
authorkingces95 <kingces95@users.noreply.github.com>2017-04-11 14:02:06 -0400
committerRui Marinho <me@ruimarinho.net>2017-04-11 19:02:06 +0100
commit093a4efa2da9cb681890158ca8ee9bb6f30b0a8c (patch)
treeccc17255876e40d2c845d7b2c62dfc930156729d /Xamarin.Forms.Platform.WP8
parent7458ca37330f424bf7fb1447580b0fa9c34c6db4 (diff)
downloadxamarin-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.cs4
-rw-r--r--Xamarin.Forms.Platform.WP8/CustomContextMenu.cs2
-rw-r--r--Xamarin.Forms.Platform.WP8/ImageRenderer.cs4
-rw-r--r--Xamarin.Forms.Platform.WP8/ListViewRenderer.cs52
-rw-r--r--Xamarin.Forms.Platform.WP8/MasterDetailRenderer.cs28
-rw-r--r--Xamarin.Forms.Platform.WP8/NavigationMenuRenderer.cs4
-rw-r--r--Xamarin.Forms.Platform.WP8/Platform.cs13
-rw-r--r--Xamarin.Forms.Platform.WP8/ScrollViewRenderer.cs17
-rw-r--r--Xamarin.Forms.Platform.WP8/SearchBarRenderer.cs4
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()