summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.ControlGallery.MacOS/CustomRenderers.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Xamarin.Forms.ControlGallery.MacOS/CustomRenderers.cs')
-rw-r--r--Xamarin.Forms.ControlGallery.MacOS/CustomRenderers.cs346
1 files changed, 0 insertions, 346 deletions
diff --git a/Xamarin.Forms.ControlGallery.MacOS/CustomRenderers.cs b/Xamarin.Forms.ControlGallery.MacOS/CustomRenderers.cs
deleted file mode 100644
index ae058896..00000000
--- a/Xamarin.Forms.ControlGallery.MacOS/CustomRenderers.cs
+++ /dev/null
@@ -1,346 +0,0 @@
-using System;
-using System.Collections.Generic;
-using AppKit;
-using CoreGraphics;
-using Foundation;
-using Xamarin.Forms;
-using Xamarin.Forms.ControlGallery.MacOS;
-using Xamarin.Forms.Controls.Issues;
-using Xamarin.Forms.Platform.MacOS;
-
-[assembly: ExportRenderer(typeof(NativeCell), typeof(NativeMacCellRenderer))]
-[assembly: ExportRenderer(typeof(NativeListView2), typeof(NativeMacOSListViewRenderer))]
-[assembly: ExportRenderer(typeof(NativeListView), typeof(NativeListViewRenderer))]
-namespace Xamarin.Forms.ControlGallery.MacOS
-{
- public class NativeMacOSListViewRenderer : ViewRenderer<NativeListView2, NSView>
- {
- NSTableView _nsTableView;
- public NativeMacOSListViewRenderer()
- {
- }
-
- protected override void OnElementChanged(ElementChangedEventArgs<NativeListView2> e)
- {
- base.OnElementChanged(e);
-
- if (Control == null)
- {
- var scroller = new NSScrollView
- {
- AutoresizingMask = NSViewResizingMask.HeightSizable | NSViewResizingMask.WidthSizable,
- DocumentView = _nsTableView = new NSTableView().AsListViewLook()
- };
-
- _nsTableView.RowHeight = 60;
- SetNativeControl(scroller);
- }
-
- if (e.OldElement != null)
- {
- // unsubscribe
- }
-
- if (e.NewElement != null)
- {
- // subscribe
-
- var s = new NativeiOSListViewSource(e.NewElement, _nsTableView);
- _nsTableView.Source = s;
- }
- }
-
- protected override void OnElementPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
- {
- base.OnElementPropertyChanged(sender, e);
-
- if (e.PropertyName == NativeListView.ItemsProperty.PropertyName)
- {
- // update the Items list in the UITableViewSource
- var s = new NativeiOSListViewSource(Element, _nsTableView);
- _nsTableView.Source = s;
- }
- }
-
- public override SizeRequest GetDesiredSize(double widthConstraint, double heightConstraint)
- {
- return Control.GetSizeRequest(widthConstraint, heightConstraint, 44, 44);
- }
- }
-
- public class NativeListViewRenderer : ViewRenderer<NativeListView, NSView>
- {
- public NativeListViewRenderer()
- {
- }
- NSTableView table;
- protected override void OnElementChanged(ElementChangedEventArgs<NativeListView> e)
- {
- base.OnElementChanged(e);
-
- if (Control == null)
- {
- var scroller = new NSScrollView
- {
- AutoresizingMask = NSViewResizingMask.HeightSizable | NSViewResizingMask.WidthSizable,
- DocumentView = table = new NSTableView().AsListViewLook()
- };
-
- table.RowHeight = 60;
-
- SetNativeControl(scroller);
- }
-
- if (e.OldElement != null)
- {
- // unsubscribe
- }
-
- if (e.NewElement != null)
- {
- // subscribe
-
- var s = new NativeListViewSource(e.NewElement, table);
- table.Source = s;
- }
- }
-
- protected override void OnElementPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
- {
- base.OnElementPropertyChanged(sender, e);
-
- if (e.PropertyName == NativeListView.ItemsProperty.PropertyName)
- {
- // update the Items list in the UITableViewSource
- var s = new NativeListViewSource(Element, table);
- table.Source = s;
- }
- }
-
- public override SizeRequest GetDesiredSize(double widthConstraint, double heightConstraint)
- {
- return Control.GetSizeRequest(widthConstraint, heightConstraint, 44, 44);
- }
- }
-
- public class NativeiOSListViewSource : NSTableViewSource
- {
- IList<DataSource> _tableItems;
- NativeListView2 _listView;
- readonly NSTableView _nsTableView;
- readonly NSString _cellIdentifier = new NSString("TableCell");
-
- public IEnumerable<DataSource> Items
- {
- set { _tableItems = new List<DataSource>(value); }
- }
-
- public NativeiOSListViewSource(NativeListView2 view, NSTableView nsTableView)
- {
- _tableItems = new List<DataSource>(view.Items);
- _listView = view;
- _nsTableView = nsTableView;
- }
-
- public override nint GetRowCount(NSTableView tableView)
- {
- return _tableItems.Count;
- }
-
- public override void SelectionDidChange(NSNotification notification)
- {
- var selectedRow = (int)_nsTableView.SelectedRow;
- if (selectedRow == -1)
- return;
- _listView.NotifyItemSelected(_tableItems[selectedRow]);
- Console.WriteLine("Row " + selectedRow.ToString() + " selected");
- _nsTableView.DeselectRow(selectedRow);
- }
-
- public override NSView GetViewForItem(NSTableView tableView, NSTableColumn tableColumn, nint row)
- {
- NativeMacOsCell cell = tableView.MakeView(_cellIdentifier, tableView) as NativeMacOsCell;
-
- if (cell == null)
- {
- cell = new NativeMacOsCell(_cellIdentifier);
- }
- int rowNumber = (int)row;
- if (string.IsNullOrWhiteSpace(_tableItems[rowNumber].ImageFilename))
- {
- cell.UpdateCell(_tableItems[rowNumber].Name
- , _tableItems[rowNumber].Category
- , null);
- }
- else
- {
- cell.UpdateCell(_tableItems[rowNumber].Name
- , _tableItems[rowNumber].Category
- , new NSImage("Images/" + _tableItems[rowNumber].ImageFilename + ".jpg"));
- }
-
- return cell;
- }
- }
-
- public class NativeListViewSource : NSTableViewSource
- {
- // declare vars
- IList<string> _tableItems;
- string _cellIdentifier = "TableCell";
- NativeListView _listView;
- readonly NSTableView _nsTableView;
-
- public IEnumerable<string> Items
- {
- set
- {
- _tableItems = new List<string>(value);
- }
- }
-
- public NativeListViewSource(NativeListView view, NSTableView nsTableView)
- {
- _tableItems = new List<string>(view.Items);
- _listView = view;
- _nsTableView = nsTableView;
- }
-
- public override nint GetRowCount(NSTableView tableView)
- {
- return _tableItems.Count;
- }
-
- public override void SelectionDidChange(NSNotification notification)
- {
- var selectedRow = (int)_nsTableView.SelectedRow;
- if (selectedRow == -1)
- return;
- _listView.NotifyItemSelected(_tableItems[selectedRow]);
- Console.WriteLine("Row " + selectedRow.ToString() + " selected");
- _nsTableView.DeselectRow(selectedRow);
- }
-
- public override NSView GetViewForItem(NSTableView tableView, NSTableColumn tableColumn, nint row)
- {
- var cell = tableView.MakeView(_cellIdentifier, tableView);
-
- if (cell == null)
- {
- cell = new NSView(new CGRect(0, 0, tableView.Frame.Width, tableView.RowHeight));
- var textLabel = new NSTextField(new CGRect(1, 1, tableView.Frame.Width, tableView.RowHeight - 10));
- cell.AddSubview(textLabel);
- }
- var label = cell.Subviews[0] as NSTextField;
- label.StringValue = _tableItems[(int)row];
- return cell;
- }
- }
-
- public class NativeMacCellRenderer : ViewCellRenderer
- {
- static NSString s_rid = new NSString("NativeCell");
-
- public NativeMacCellRenderer()
- {
- }
-
- public override NSView GetCell(Cell item, NSView reusableView, NSTableView tv)
- {
- var x = (NativeCell)item;
- Console.WriteLine(x);
-
- NativeMacOsCell c = reusableView as NativeMacOsCell;
-
- if (c == null)
- {
- c = new NativeMacOsCell(s_rid);
- }
-
- NSImage i = null;
- if (!string.IsNullOrWhiteSpace(x.ImageFilename))
- {
- i = new NSImage("Images/" + x.ImageFilename + ".jpg");
- }
-
- base.WireUpForceUpdateSizeRequested(item, c, tv);
-
- c.UpdateCell(x.Name, x.Category, i);
-
- return c;
- }
- }
-
- public class NativeMacOsCell : NSView
- {
- NSTextField _headingLabel;
- NSTextField _subheadingLabel;
- NSImageView _imageView;
-
- public NativeMacOsCell() : this(new NSString("NativeMacOsCell"))
- {
- }
- public NativeMacOsCell(NSString cellId)
- {
- Identifier = cellId;
- WantsLayer = true;
- Layer.BackgroundColor = NSColor.FromRgb(218, 255, 127).CGColor;
-
- _imageView = new NSImageView();
-
- _headingLabel = new NSTextField()
- {
- Font = NSFont.FromFontName("Cochin-BoldItalic", 22f),
- TextColor = NSColor.FromRgb(127, 51, 0),
- BackgroundColor = NSColor.Clear
- };
-
- _subheadingLabel = new NSTextField()
- {
- Font = NSFont.FromFontName("AmericanTypewriter", 12f),
- TextColor = NSColor.FromRgb(38, 127, 0),
- Alignment = NSTextAlignment.Center,
- BackgroundColor = NSColor.Clear
- };
-
- AddSubview(_headingLabel);
- AddSubview(_subheadingLabel);
- AddSubview(_imageView);
- }
-
- public void UpdateCell(string caption, string subtitle, NSImage image)
- {
- _imageView.Image = image;
- _headingLabel.StringValue = caption;
- _subheadingLabel.StringValue = subtitle;
- }
-
- public override void Layout()
- {
- base.Layout();
-
- _imageView.Frame = new CGRect(Bounds.Width - 63, 5, 33, 33);
- _headingLabel.Frame = new CGRect(5, 4, Bounds.Width - 63, 25);
- _subheadingLabel.Frame = new CGRect(100, 18, 100, 20);
- }
- }
-
- public static class NSTableViewExtensions
- {
- public static NSTableView AsListViewLook(this NSTableView self)
- {
- self.SelectionHighlightStyle = NSTableViewSelectionHighlightStyle.SourceList;
-
- self.AllowsColumnReordering = false;
- self.AllowsColumnResizing = false;
- self.AllowsColumnSelection = false;
-
- //this is needed .. can we go around it ?
- self.AddColumn(new NSTableColumn("1"));
- //this line hides the header by default
- self.HeaderView = null;
- return self;
- }
- }
-
-}