コード例 #1
0
ファイル: MacView.cs プロジェクト: landytest/Eto
 public void ScrollWheel(NSEvent theEvent)
 {
     Handler.Callback.OnMouseWheel(Handler.Widget, MacConversions.GetMouseEvent(Handler.EventControl, theEvent, true));
 }
コード例 #2
0
        public override NSView GetViewForItem(NSTableView tableView, NSTableColumn tableColumn, int row, NSObject obj, Func <NSObject, int, object> getItem)
        {
            var view = tableView.MakeView(tableColumn.Identifier, tableView) as CellView;

            if (view == null)
            {
                view = new CellView
                {
                    WeakHandler = new WeakReference(this),
                    Identifier  = tableColumn.Identifier,
                };

                var col = Array.IndexOf(tableView.TableColumns(), tableColumn);
                view.BecameFirstResponder += (sender, e) =>
                {
                    var control = (CellView)sender;
                    var r       = (int)control.Tag;
                    var item    = getItem(control.Item, r);
                    var ee      = MacConversions.CreateCellEventArgs(ColumnHandler.Widget, tableView, r, col, item);
                    ColumnHandler.DataViewHandler.OnCellEditing(ee);
                };
                view.EditingEnded += (sender, e) =>
                {
                    var notification = (NSNotification)sender;
                    var control      = (CellView)notification.Object;
                    var r            = (int)control.Tag;
                    var item         = getItem(control.Item, r);
                    SetObjectValue(item, control.ObjectValue);

                    var ee = MacConversions.CreateCellEventArgs(ColumnHandler.Widget, tableView, r, col, item);
                    ColumnHandler.DataViewHandler.OnCellEdited(ee);
                    control.ObjectValue = GetObjectValue(item) ?? new NSString(string.Empty);
                };
                bool isResigning = false;
                view.ResignedFirstResponder += (sender, e) =>
                {
                    if (isResigning)
                    {
                        return;
                    }
                    isResigning = true;
                    var control = (CellView)sender;
                    var r       = (int)control.Tag;
                    var item    = getItem(control.Item, r);
                    SetObjectValue(item, control.ObjectValue);

                    var ee = MacConversions.CreateCellEventArgs(ColumnHandler.Widget, tableView, r, col, item);
                    ColumnHandler.DataViewHandler.OnCellEdited(ee);
                    isResigning = false;
                };
                view.Bind(editableBinding, tableColumn, "editable", null);
            }

            var cell = view.Cell;

            cell.VerticalAlignment = VerticalAlignment;
            cell.Alignment         = TextAlignment.ToNS();

            view.Item = obj;
            view.Tag  = row;
            var args = new MacCellFormatArgs(ColumnHandler.Widget, getItem(obj, row), row, view);

            ColumnHandler.DataViewHandler.OnCellFormatting(args);
            return(view);
        }
コード例 #3
0
ファイル: MacView.cs プロジェクト: landytest/Eto
 public void MouseExited(NSEvent theEvent)
 {
     Handler.Callback.OnMouseLeave(Handler.Widget, MacConversions.GetMouseEvent(Handler.EventControl, theEvent, false));
 }
コード例 #4
0
ファイル: ImageTextCellHandler.cs プロジェクト: zzlvff/Eto
        public override NSView GetViewForItem(NSTableView tableView, NSTableColumn tableColumn, int row, NSObject obj, Func <NSObject, int, object> getItem)
        {
            var view = tableView.MakeView(tableColumn.Identifier, tableView) as CellView;

            if (view == null)
            {
                view = new CellView
                {
                    WeakHandler = new WeakReference(this),
                    Cell        = new MacImageListItemCell
                    {
                        Wraps              = false,
                        Scrollable         = true,
                        UsesSingleLineMode = false                         // true prevents proper vertical alignment
                    },
                    Identifier       = tableColumn.Identifier,
                    Selectable       = false,
                    DrawsBackground  = false,
                    Bezeled          = false,
                    Bordered         = false,
                    AutoresizingMask = NSViewResizingMask.HeightSizable | NSViewResizingMask.WidthSizable
                };

                var col = Array.IndexOf(tableView.TableColumns(), tableColumn);
                view.BecameFirstResponder += (sender, e) =>
                {
                    var control = (CellView)sender;
                    var r       = (int)control.Tag;
                    var item    = getItem(control.Item, r);

                    var ee = MacConversions.CreateCellEventArgs(ColumnHandler.Widget, tableView, r, col, item);
                    ColumnHandler.DataViewHandler.OnCellEditing(ee);
                };
                view.EditingEnded += (sender, e) =>
                {
                    var notification = (NSNotification)sender;
                    var control      = (CellView)notification.Object;
                    var r            = (int)control.Tag;
                    var item         = getItem(control.Item, r);
                    SetObjectValue(item, control.ObjectValue);

                    var ee = MacConversions.CreateCellEventArgs(ColumnHandler.Widget, tableView, r, col, item);
                    ColumnHandler.DataViewHandler.OnCellEdited(ee);
                    control.ObjectValue = GetObjectValue(item);
                };
                view.ResignedFirstResponder += (sender, e) =>
                {
                    var control = (CellView)sender;
                    var r       = (int)control.Tag;
                    var item    = getItem(control.Item, r);
                    SetObjectValue(item, control.ObjectValue);

                    var ee = MacConversions.CreateCellEventArgs(ColumnHandler.Widget, tableView, r, col, item);
                    ColumnHandler.DataViewHandler.OnCellEdited(ee);
                };
                view.Bind(editableBinding, tableColumn, "editable", null);
            }
            var cell = (MacImageListItemCell)view.Cell;

            cell.ImageInterpolation = ImageInterpolation.ToNS();
            cell.VerticalAlignment  = VerticalAlignment;
            cell.Alignment          = TextAlignment.ToNS();
            view.Tag  = row;
            view.Item = obj;
            var args = new MacCellFormatArgs(ColumnHandler.Widget, getItem(obj, row), row, view);

            ColumnHandler.DataViewHandler.OnCellFormatting(args);
            return(view);
        }