void DrawBookmark() { bool bookmarked = owner.ViewModel.OnGetHistoryItemBookmarked(owner.StateHistoryDataSource.data[row]); if (bookmarked) { var frame = this.Frame.ToRectangleF(); float itemH = frame.Height; using (var g = new LogJoint.Drawing.Graphics()) { var sz = bookmarkImage.GetSize(width: 9); g.DrawImage(bookmarkImage, new RectangleF(new PointF( (float)owner.HistoryTableView.GetCellFrame(0, row).Left + 1, itemH * row + itemH / 2 - frame.Y - sz.Height / 2), sz)); } } }
public override NSView GetView(NSOutlineView outlineView, NSTableColumn tableColumn, NSObject item) { var sourceItem = item as SourcesListItem; if (tableColumn == sourceCheckedColumn) { if (sourceItem.isChecked == null) { return(null); } var cellIdentifier = "checked_cell"; var view = (NSButton)outlineView.MakeView(cellIdentifier, this); if (view == null) { view = new NSButton(); view.Identifier = cellIdentifier; view.SetButtonType(NSButtonType.Switch); view.BezelStyle = 0; view.ImagePosition = NSCellImagePosition.ImageOnly; view.Action = new ObjCRuntime.Selector("ItemChecked:"); } view.Target = sourceItem; view.State = sourceItem.isChecked.GetValueOrDefault(false) ? NSCellStateValue.On : NSCellStateValue.Off; return(view); } else if (tableColumn == sourceDescriptionColumn) { var cellIdentifier = "description_cell"; var view = (NSLinkLabel)outlineView.MakeView(cellIdentifier, this); if (view == null) { view = NSLinkLabel.CreateLabel(); view.Identifier = cellIdentifier; view.LinkClicked = (sender, e) => { if (e.NativeEvent.ClickCount == 2) { viewEvents.OnEnterKeyPressed(); } }; } view.BackgroundColor = sourceItem.color != null? sourceItem.color.Value.ToColor().ToNSColor() : NSColor.Clear; view.StringValue = sourceItem.text; return(view); } else if (tableColumn == currentSourceColumn) { var cellIdentifier = "current_source_mark_cell"; var view = (NSCustomizableView)outlineView.MakeView(cellIdentifier, this); if (view == null) { view = new NSCustomizableView(); view.Identifier = cellIdentifier; } view.OnPaint = (ditryRect) => { var focusedItem = viewEvents.OnFocusedMessageSourcePainting() as SourcesListItem; if (focusedItem == null) { return; } if (!(focusedItem == sourceItem || focusedItem.parent == sourceItem)) { return; } using (var g = new LJD.Graphics()) { var s = currentSourceImage.GetSize(height: 9); var r = view.Bounds; r = new CoreGraphics.CGRect((r.Left + r.Right - s.Width) / 2, (r.Top + r.Bottom - s.Height) / 2, s.Width, s.Height); g.DrawImage(currentSourceImage, r.ToRectangleF()); } }; return(view); } return(null); }