private NSColor ColorForTextType(TextType type, int level) { NSColor color = null; switch (type) { case TextType.Subtitle: color = NSColor.FromDeviceRgba(160.0f / 255.0f, 182.0f / 255.0f, 203.0f / 255.0f, 1); break; case TextType.Code: color = level == 0 ? NSColor.White : NSColor.FromDeviceRgba(242.0f / 255.0f, 173.0f / 255.0f, 24.0f / 255.0f, 1); break; case TextType.Body: if (level == 2) { color = NSColor.FromDeviceRgba(115.0f / 255.0f, 170.0f / 255.0f, 230.0f / 255.0f, 1); } break; default: color = NSColor.White; break; } return(color); }
public override void SetupSlide(PresentationViewController presentationViewController) { TextManager.SetTitle("Scene Kit"); TextManager.SetSubtitle("Introduction"); TextManager.AddBulletAtLevel("High level API for 3D integration", 0); TextManager.AddBulletAtLevel("Data visualization", 1); TextManager.AddBulletAtLevel("User Interface", 1); TextManager.AddBulletAtLevel("Casual Games", 1); var redColor = NSColor.FromDeviceRgba(168.0f / 255.0f, 21.0f / 255.0f, 1.0f / 255.0f, 1); var grayColor = NSColor.Gray; var greenColor = NSColor.FromDeviceRgba(105.0f / 255.0f, 145.0f / 255.0f, 14.0f / 255.0f, 1); var orangeColor = NSColor.Orange; var purpleColor = NSColor.FromDeviceRgba(152.0f / 255.0f, 57.0f / 255.0f, 189.0f / 255.0f, 1); Boxes = new List <SCNNode> (); AddBox("Cocoa", new CGRect(0, 0, 500, 70), 3, grayColor); AddBox("Core Image", new CGRect(0, 0, 100, 70), 2, greenColor); AddBox("Core Animation", new CGRect(390, 0, 110, 70), 2, greenColor); AddBox("Sprite Kit", new CGRect(250, 0, 135, 70), 2, greenColor); AddBox("Scene Kit", new CGRect(105, 0, 140, 70), 2, orangeColor); AddBox("OpenGL / OpenGL ES", new CGRect(0, 0, 500, 70), 1, purpleColor); AddBox("Graphics Hardware", new CGRect(0, 0, 500, 70), 0, redColor); }
public void SetColor(object backend, Xwt.Drawing.Color color) { NSColor col = NSColor.FromDeviceRgba((float)color.Red, (float)color.Green, (float)color.Blue, (float)color.Alpha); col.Set(); col.SetFill(); }
private SCNMaterial WallMaterial() { var material = SCNMaterial.Create(); material.Diffuse.Contents = NSColor.FromDeviceRgba(0.11f, 0.70f, 0.88f, 1.0f); return(material); }
public override void DrawRect(CGRect dirtyRect) { bool isSelected = owner.TreeView.IsRowSelected(owner.TreeView.RowForItem(node)); var paintInfo = owner.EventsHandler.OnPaintNode(node.ToNodeInfo(), false); if (isSelected) { NSColor.SelectedMenuItem.SetFill(); } else { switch (paintInfo.Coloring) { case NodeColoring.Alive: NSColor.FromDeviceRgba(0.74f, 0.93f, 0.74f, 1f).SetFill(); break; case NodeColoring.Deleted: NSColor.FromDeviceRgba(0.90f, 0.90f, 0.98f, 1f).SetFill(); break; default: NSColor.White.SetFill(); break; } } NSBezierPath.FillRect(dirtyRect); // paintInfo.DrawFocusedMsgMark todo }
public override void DrawRect(CGRect dirtyRect) { base.DrawRect(dirtyRect); var mainText = new NSString(node.ToString()); var bounds = this.Bounds.ToRectangleF(); bool isSelected = node.IsSelected; var mainTextAttrs = new NSMutableDictionary(); var mainTextPara = new NSMutableParagraphStyle(); mainTextPara.LineBreakMode = NSLineBreakMode.TruncatingTail; mainTextPara.TighteningFactorForTruncation = 0; mainTextAttrs.Add(NSStringAttributeKey.ParagraphStyle, mainTextPara); if (isSelected) { mainTextAttrs.Add(NSStringAttributeKey.ForegroundColor, NSColor.SelectedMenuItemText); } else { mainTextAttrs.Add(NSStringAttributeKey.ForegroundColor, NSColor.Text); } var mainTextSz = mainText.StringSize(mainTextAttrs).ToSizeF(); float nodeTextAndPrimaryPropHorzSpacing = 8; float spaceAvailableForDefaultPropValue = bounds.Width - mainTextSz.Width - nodeTextAndPrimaryPropHorzSpacing; var paintInfo = owner.ViewModel.PaintNode(node, spaceAvailableForDefaultPropValue > 30); if (paintInfo.PrimaryPropValue != null) { var r = new RectangleF( bounds.Right - spaceAvailableForDefaultPropValue, bounds.Y, spaceAvailableForDefaultPropValue, bounds.Height); // todo: move dict to a static field var dict = new NSMutableDictionary(); var para = new NSMutableParagraphStyle(); para.Alignment = NSTextAlignment.Right; para.LineBreakMode = NSLineBreakMode.TruncatingTail; para.TighteningFactorForTruncation = 0; dict.Add(NSStringAttributeKey.ParagraphStyle, para); if (isSelected) { dict.Add(NSStringAttributeKey.ForegroundColor, NSColor.FromDeviceRgba(0.9f, 0.9f, 0.9f, 1f)); } else { dict.Add(NSStringAttributeKey.ForegroundColor, NSColor.Gray); } new NSString(paintInfo.PrimaryPropValue).DrawString(r.ToCGRect(), dict); } mainText.DrawString(bounds.ToCGRect(), mainTextAttrs); }
public static NSColor ToNSColor(this Color color) { if (color == null) { return(null); } return(NSColor.FromDeviceRgba(color.R, color.G, color.B, color.A)); }
private NSMutableAttributedString CreateAttributedString(string text, Font font, StringFormat format, Brush brush) { var range = new NSRange(0, text.Length); var stringAttrs = new NSMutableAttributedString(text); stringAttrs.BeginEditing(); stringAttrs.AddAttribute(NSStringAttributeKey.Font, font.font, range); if (brush != null) { var brushColor = brush.color; var foregroundColor = NSColor.FromDeviceRgba(brushColor.R / 255f, brushColor.G / 255f, brushColor.B / 255f, brushColor.A / 255f); stringAttrs.AddAttribute(NSStringAttributeKey.ForegroundColor, foregroundColor, range); } if (format != null) { var para = new NSMutableParagraphStyle(); if (format.horizontalAlignment == StringAlignment.Near) { para.Alignment = NSTextAlignment.Left; } else if (format.horizontalAlignment == StringAlignment.Center) { para.Alignment = NSTextAlignment.Center; } else if (format.horizontalAlignment == StringAlignment.Far) { para.Alignment = NSTextAlignment.Right; } if (format.lineBreakMode == LineBreakMode.WrapWords) { para.LineBreakMode = NSLineBreakMode.ByWordWrapping; } else if (format.lineBreakMode == LineBreakMode.WrapChars) { para.LineBreakMode = NSLineBreakMode.CharWrapping; } else if (format.lineBreakMode == LineBreakMode.SingleLineEndEllipsis) { para.LineBreakMode = NSLineBreakMode.TruncatingTail; para.TighteningFactorForTruncation = 0; } stringAttrs.AddAttribute(NSStringAttributeKey.ParagraphStyle, para, range); } if ((font.style & FontStyle.Underline) != 0) { stringAttrs.AddAttribute(NSStringAttributeKey.UnderlineStyle, new NSNumber(1), range); } stringAttrs.EndEditing(); return(stringAttrs); }
public static NSColor ToNSColor(this Color color, float opacity = -1) { if (color.R == 0 && color.G == 0 && color.B == 0 && color.A == 0) { return(NSColor.Clear); } var alpha = (opacity == -1 ? color.A : opacity); return(NSColor.FromDeviceRgba((nfloat)color.R, (nfloat)color.G, (nfloat)color.B, (nfloat)alpha)); }
public override void SetupSlide(PresentationViewController presentationViewController) { RedColor = NSColor.FromDeviceRgba(168.0f / 255.0f, 21.0f / 255.0f, 0.0f / 255.0f, 1); GreenColor = NSColor.FromDeviceRgba(154.0f / 255.0f, 197.0f / 255.0f, 58.0f / 255.0f, 1); BlueColor = NSColor.FromDeviceRgba(49.0f / 255.0f, 80.0f / 255.0f, 201.0f / 255.0f, 1); PurpleColor = NSColor.FromDeviceRgba(190.0f / 255.0f, 56.0f / 255.0f, 243.0f / 255.0f, 1); // Create the diagram but hide it DiagramNode = CloningDiagramNode(); DiagramNode.Opacity = 0.0f; ContentNode.AddChildNode(DiagramNode); }
public static NSColor ToNSUI(this Color color) { if (color.ControlObject is NSColor nscolor) { return(nscolor); } if (color.ControlObject is CGColor cgcolor && MacVersion.IsAtLeast(10, 8)) { return(NSColor.FromCGColor(cgcolor)); } return(NSColor.FromDeviceRgba(color.R, color.G, color.B, color.A)); }
/// <summary> /// Converts a DSColor to a UIColor object /// </summary> /// <returns>The color from DS color.</returns> /// <param name="aColor">A color.</param> public static NSColor ToNSColor(this DSColor aColor) { // if a pattern image has been set then create a pattern color from it if (aColor.PatternImage != null) { return(NSColor.FromPatternImage(aColor.PatternImage.ToUIImage())); } var aRed = (nfloat)aColor.RedValue / 255.0f; var aGreen = (nfloat)aColor.GreenValue / 255.0f; var aBlue = (nfloat)aColor.BlueValue / 255.0f; var aAlpha = (nfloat)aColor.AlphaValue / 255.0f; return(NSColor.FromDeviceRgba(aRed, aGreen, aBlue, aAlpha)); }
public static NSColor GetNSColor(this Color c) { var t = c.Tag as ColorTag; if (t == null) { t = new ColorTag(); c.Tag = t; } if (t.NSColor == null) { t.NSColor = NSColor.FromDeviceRgba(c.Red / 255.0f, c.Green / 255.0f, c.Blue / 255.0f, c.Alpha / 255.0f); } return(t.NSColor); }
public override void DrawRect(CGRect dirtyRect) { if (progressValue != null) { var r = Bounds; r.Inflate(-0.5f, -0.5f); var cl = NSColor.FromDeviceRgba(0f, 0.3f, 1f, 0.20f); cl.SetStroke(); NSBezierPath.StrokeRect(r); cl.SetFill(); r.Width = (int)(r.Width * progressValue.Value); NSBezierPath.FillRect(r); } base.DrawRect(dirtyRect); }
public override void DrawRect(RectangleF rect) { var xamarinBlue = NSColor.FromDeviceRgba(0.071f, 0.463f, 0.725f, 1.000f); NSBezierPath xamarinLogoPath = new NSBezierPath(); xamarinLogoPath.MoveTo(new PointF(230.49f, 92.68f)); xamarinLogoPath.LineTo(new PointF(200.74f, 92.68f)); xamarinLogoPath.LineTo(new PointF(159.7f, 167.71f)); xamarinLogoPath.LineTo(new PointF(200.74f, 242.73f)); xamarinLogoPath.LineTo(new PointF(230.49f, 242.73f)); xamarinLogoPath.LineTo(new PointF(191.23f, 167.71f)); xamarinLogoPath.LineTo(new PointF(230.49f, 92.68f)); xamarinLogoPath.ClosePath(); xamarinLogoPath.MoveTo(new PointF(118.66f, 92.68f)); xamarinLogoPath.LineTo(new PointF(88.92f, 92.68f)); xamarinLogoPath.LineTo(new PointF(128.18f, 167.71f)); xamarinLogoPath.LineTo(new PointF(88.92f, 242.73f)); xamarinLogoPath.LineTo(new PointF(118.66f, 242.73f)); xamarinLogoPath.LineTo(new PointF(159.7f, 167.71f)); xamarinLogoPath.LineTo(new PointF(118.66f, 92.68f)); xamarinLogoPath.ClosePath(); xamarinLogoPath.MoveTo(new PointF(220.7f, 37.0f)); xamarinLogoPath.CurveTo(new PointF(232.55f, 41.1f), new PointF(220.7f, 37.0f), new PointF(227.07f, 38.03f)); xamarinLogoPath.CurveTo(new PointF(242.62f, 49.31f), new PointF(238.03f, 44.18f), new PointF(242.62f, 49.31f)); xamarinLogoPath.LineTo(new PointF(304.22f, 152.47f)); xamarinLogoPath.CurveTo(new PointF(308.95f, 170.05f), new PointF(304.22f, 152.47f), new PointF(309.55f, 163.02f)); xamarinLogoPath.CurveTo(new PointF(304.22f, 183.53f), new PointF(308.36f, 177.09f), new PointF(304.22f, 183.53f)); xamarinLogoPath.LineTo(new PointF(243.57f, 286.11f)); xamarinLogoPath.CurveTo(new PointF(234.05f, 294.31f), new PointF(243.57f, 286.11f), new PointF(239.7f, 291.09f)); xamarinLogoPath.CurveTo(new PointF(220.97f, 299.0f), new PointF(228.4f, 297.53f), new PointF(220.97f, 299.0f)); xamarinLogoPath.LineTo(new PointF(97.25f, 299.0f)); xamarinLogoPath.CurveTo(new PointF(84.16f, 294.31f), new PointF(97.25f, 299.0f), new PointF(89.51f, 297.53f)); xamarinLogoPath.CurveTo(new PointF(75.83f, 286.11f), new PointF(78.81f, 291.09f), new PointF(75.83f, 286.11f)); xamarinLogoPath.LineTo(new PointF(13.99f, 181.77f)); xamarinLogoPath.CurveTo(new PointF(11.03f, 170.05f), new PointF(13.99f, 181.77f), new PointF(11.33f, 176.21f)); xamarinLogoPath.CurveTo(new PointF(12.81f, 157.16f), new PointF(10.73f, 163.9f), new PointF(12.81f, 157.16f)); xamarinLogoPath.LineTo(new PointF(75.59f, 49.31f)); xamarinLogoPath.CurveTo(new PointF(85.07f, 41.1f), new PointF(75.59f, 49.31f), new PointF(79.59f, 44.18f)); xamarinLogoPath.CurveTo(new PointF(97.5f, 37.0f), new PointF(90.54f, 38.03f), new PointF(97.5f, 37.0f)); xamarinLogoPath.LineTo(new PointF(220.7f, 37.0f)); xamarinLogoPath.LineTo(new PointF(220.7f, 37.0f)); xamarinLogoPath.ClosePath(); xamarinBlue.SetFill(); xamarinLogoPath.Fill(); }
protected void UpdateBackground(NSTableCellView tableViewCell, Cell cell) { if (TemplatedItemsList <ItemsView <Cell>, Cell> .GetIsGroupHeader((BindableObject)cell)) { var color = NSColor.FromDeviceRgba((nfloat)0.9686275f, (nfloat)0.9686275f, (nfloat)0.9686275f, (nfloat)1); tableViewCell.SetBackgroundColor(color); } else { NSColor uiColor = NSColor.White; VisualElement visualElement = cell.Parent as VisualElement; if (visualElement != null) { uiColor = visualElement.BackgroundColor == Color.Default ? uiColor : ColorExtensions.ToUIColor(visualElement.BackgroundColor); } tableViewCell.SetBackgroundColor(uiColor); } }
public override void DrawRect(CGRect dirtyRect) { bool isSelected = node.IsSelected; bool isDarkMode = owner.ViewModel.ColorTheme == Presenters.ColorThemeMode.Dark; var paintInfo = owner.ViewModel.PaintNode(node, false); if (isSelected) { NSColor.SelectedMenuItem.SetFill(); } else { switch (paintInfo.Coloring) { case NodeColoring.Alive: if (isDarkMode) { NSColor.FromDeviceRgba(0.0f, 0.20f, 0.0f, 1f).SetFill(); } else { NSColor.FromDeviceRgba(0.74f, 0.93f, 0.74f, 1f).SetFill(); } break; case NodeColoring.Deleted: if (isDarkMode) { NSColor.FromDeviceRgba(0.30f, 0.30f, 0.30f, 1f).SetFill(); } else { NSColor.FromDeviceRgba(0.90f, 0.90f, 0.98f, 1f).SetFill(); } break; default: NSColor.TextBackground.SetFill(); break; } } NSBezierPath.FillRect(dirtyRect); // paintInfo.DrawFocusedMsgMark todo }
private SCNNode AddLabInfoNode(string title, float yPosition) { var labInfoNode = Utils.SCBoxNode(title, new CGRect(0, 0, 293.33f, 93.33f), NSColor.FromDeviceRgba(31 / 255, 31 / 255, 31 / 255, 1), 0.0f, false); labInfoNode.Scale = new SCNVector3(0.015f, 0.015f, 0.015f); labInfoNode.Pivot = SCNMatrix4.CreateTranslation(new SCNVector3(145.33f, 46.66f, 5)); labInfoNode.Position = new SCNVector3(6.9f, yPosition, 10.0f); labInfoNode.Rotation = new SCNVector4(0, 1, 0, (float)(Math.PI)); labInfoNode.Opacity = 0.0f; var colorBox = Utils.SCBoxNode(null, new CGRect(293.33f, 0, 40, 93.33f), NSColor.FromDeviceRgba(1, 214 / 255, 37 / 255, 1), 0.0f, false); colorBox.Geometry.FirstMaterial.LightingModelName = SCNLightingModel.Constant; ContentNode.AddChildNode(labInfoNode); labInfoNode.AddChildNode(colorBox); return(labInfoNode); }
public override void SetupSlide(PresentationViewController presentationViewController) { TextManager.SetTitle("Scene Kit"); TextManager.AddBulletAtLevel("High level Objective-C API", 0); TextManager.AddBulletAtLevel("Scene graph", 0); var redColor = NSColor.FromDeviceRgba(168.0f / 255.0f, 21.0f / 255.0f, 1.0f / 255.0f, 1); var grayColor = NSColor.Gray; var greenColor = NSColor.FromDeviceRgba(105.0f / 255.0f, 145.0f / 255.0f, 14.0f / 255.0f, 1); var orangeColor = NSColor.Orange; var purpleColor = NSColor.FromDeviceRgba(152.0f / 255.0f, 57.0f / 255.0f, 189.0f / 255.0f, 1); AddBox("Cocoa", new CGRect(0, 0, 500, 70), 3, grayColor); AddBox("Core Image", new CGRect(0, 0, 100, 70), 2, greenColor); AddBox("Core Animation", new CGRect(260, 0, 130, 70), 2, greenColor); AddBox("GL Kit", new CGRect(395, 0, 105, 70), 2, greenColor); AddBox("Scene Kit", new CGRect(105, 0, 150, 70), 2, orangeColor); AddBox("OpenGL", new CGRect(0, 0, 500, 70), 1, purpleColor); AddBox("Graphics Hardware", new CGRect(0, 0, 500, 70), 0, redColor); }
void IView.SetViewModel(IViewModel viewModel) { this.viewModel = viewModel; selectedBkColor = Selectors.Create( () => viewModel.Theme, theme => theme == Presenters.ColorThemeMode.Light ? NSColor.FromDeviceRgba(.77f, .80f, .90f, 1f) : NSColor.FromDeviceRgba(.37f, .40f, .60f, 1f) ); var updateItems = Updaters.Create( () => viewModel.Items, viewItems => { isUpdating = true; var items = dataSource.items; items.Clear(); items.AddRange(viewItems.Select((d, i) => new Item(this, d, i))); tableView.ReloadData(); tableView.SelectRows( NSIndexSet.FromArray(items.Where(i => i.Data.IsSelected).Select(i => i.Index).ToArray()), byExtendingSelection: false ); UpdateTimeDeltasColumn(); isUpdating = false; } ); var updateFocusedMessageMark = Updaters.Create( () => viewModel.FocusedMessagePosition, (_) => { InvalidateTable(); } ); viewModel.ChangeNotification.CreateSubscription(() => { updateItems(); updateFocusedMessageMark(); }); }
public static SCNNode SCGaugeNode(string title, ref SCNNode progressNode) { var gaugeGroup = SCNNode.Create(); SCNTransaction.Begin(); SCNTransaction.AnimationDuration = 1; var gauge = SCNNode.Create(); gauge.Geometry = SCNCapsule.Create(0.4f, 8); gauge.Geometry.FirstMaterial.LightingModelName = SCNLightingModel.Constant; gauge.Rotation = new SCNVector4(0, 0, 1, (float)(Math.PI / 2)); gauge.Geometry.FirstMaterial.Diffuse.Contents = NSColor.White; gauge.Geometry.FirstMaterial.CullMode = SCNCullMode.Front; var gaugeValue = SCNNode.Create(); gaugeValue.Geometry = SCNCapsule.Create(0.3f, 7.8f); gaugeValue.Pivot = SCNMatrix4.CreateTranslation(new SCNVector3(0, 3.8f, 0)); gaugeValue.Position = new SCNVector3(0, 3.8f, 0); gaugeValue.Scale = new SCNVector3(1, 0.01f, 1); gaugeValue.Opacity = 0.0f; gaugeValue.Geometry.FirstMaterial.Diffuse.Contents = NSColor.FromDeviceRgba(0, 1, 0, 1); gaugeValue.Geometry.FirstMaterial.LightingModelName = SCNLightingModel.Constant; gauge.AddChildNode(gaugeValue); if (progressNode != null) { progressNode = gaugeValue; } var titleNode = Utils.SCLabelNode(title, LabelSize.Normal, false); titleNode.Position = new SCNVector3(-8, -0.55f, 0); gaugeGroup.AddChildNode(titleNode); gaugeGroup.AddChildNode(gauge); SCNTransaction.Commit(); return(gaugeGroup); }
public void rulerViewDidAddMarker(NSRulerView aRulerView, NSRulerMarker aMarker) { float theOtherCoord; RectangleF newRect; NSColor newColor; ColorRect newColorRect; var visibleRect = VisibleRect(); aMarker.Removable = true; if (aRulerView.Orientation == NSRulerOrientation.Horizontal) { theOtherCoord = MaxY(visibleRect) - 165.0f; newRect = new RectangleF(aMarker.MarkerLocation, theOtherCoord, 115.0f, 115.0f); } else { if (IsFlipped) { theOtherCoord = MinX(visibleRect) + 50.0f; newRect = new RectangleF(theOtherCoord, aMarker.MarkerLocation, 115.0f, 115.0f); } else { theOtherCoord = MinX(visibleRect) + 50.0f; newRect = new RectangleF(theOtherCoord, aMarker.MarkerLocation - 115.0f, 115.0f, 115.0f); } } newColor = NSColor.FromDeviceRgba((float)rand.NextDouble(), (float)rand.NextDouble(), (float)rand.NextDouble(), 1.0f); newColorRect = new ColorRect(newRect, newColor); rects.Add(newColorRect); selectRect(newColorRect); }
public static NSColor ToNSUI(this Color color) { return(NSColor.FromDeviceRgba(color.R, color.G, color.B, color.A)); }
private SCNNode NodeWithText(string message, TextType type, int level) { var textNode = SCNNode.Create(); // Bullet if (type == TextType.Bullet) { if (level == 0) { message = "• " + message; } else { var bullet = SCNNode.Create(); bullet.Geometry = SCNPlane.Create(10.0f, 10.0f); bullet.Geometry.FirstMaterial.Diffuse.Contents = NSColor.FromDeviceRgba((float)(160 / 255.0), (float)(182 / 255.0), (float)(203 / 255.0), 1); bullet.Position = new SCNVector3(80, 30, 0); bullet.Geometry.FirstMaterial.LightingModelName = SCNLightingModel.Constant; bullet.Geometry.FirstMaterial.WritesToDepthBuffer = false; bullet.RenderingOrder = 1; textNode.AddChildNode(bullet); message = "\t\t\t\t" + message; } } // Text attributes var extrusion = ExtrusionDepthForTextType(type); var text = SCNText.Create(message, extrusion); textNode.Geometry = text; text.Flatness = TEXT_FLATNESS; text.ChamferRadius = (extrusion == 0 ? 0 : TEXT_CHAMFER); text.Font = FontForTextType(type, level); // Layout var layoutManager = new NSLayoutManager(); var leading = layoutManager.DefaultLineHeightForFont(text.Font); var descender = text.Font.Descender; int newlineCount = ((string[])(((string)text.String.ToString()).Split('\n'))).Length; textNode.Pivot = SCNMatrix4.CreateTranslation(0, -descender + newlineCount * leading, 0); if (type == TextType.Chapter) { var min = new SCNVector3(); var max = new SCNVector3(); textNode.GetBoundingBox(ref min, ref max); textNode.Position = new SCNVector3(-11, (-min.Y + textNode.Pivot.M42) * TEXT_SCALE, 7); textNode.Scale = new SCNVector3(TEXT_SCALE, TEXT_SCALE, TEXT_SCALE); textNode.Rotation = new SCNVector4(0, 1, 0, (float)(Math.PI / 270.0)); } else { textNode.Position = new SCNVector3(-16, CurrentBaseline, 0); textNode.Scale = new SCNVector3(TEXT_SCALE, TEXT_SCALE, TEXT_SCALE); } // Material if (type == TextType.Chapter) { var frontMaterial = SCNMaterial.Create(); var sideMaterial = SCNMaterial.Create(); frontMaterial.Emission.Contents = NSColor.DarkGray; frontMaterial.Diffuse.Contents = ColorForTextType(type, level); sideMaterial.Diffuse.Contents = NSColor.LightGray; textNode.Geometry.Materials = new SCNMaterial[] { frontMaterial, frontMaterial, sideMaterial, frontMaterial, frontMaterial }; } else { // Full white emissive material (visible even when there is no light) textNode.Geometry.FirstMaterial = SCNMaterial.Create(); textNode.Geometry.FirstMaterial.Diffuse.Contents = NSColor.Black; textNode.Geometry.FirstMaterial.Emission.Contents = ColorForTextType(type, level); // Don't write to the depth buffer because we don't want the text to be reflected textNode.Geometry.FirstMaterial.WritesToDepthBuffer = false; // Render last textNode.RenderingOrder = 1; } return(textNode); }
public static NSColor ToNSColor(this Color c) { return(NSColor.FromDeviceRgba(c.R / 255f, c.G / 255f, c.B / 255f, c.A / 255f)); }
public static NSColor ToNSColor(this int value) { value.ToArgb(out int a, out int r, out int g, out int b); return(NSColor.FromDeviceRgba(r, g, b, a)); }
public void ShowWarning(string warning) { ShowMessage(Stock.StatusWarning, warning, false, NSColor.FromDeviceRgba(235f / 255, 161f / 255, 7f / 255, 1)); }
public static NSColor ToNSColor(this Color col) { return(NSColor.FromDeviceRgba((float)col.Red, (float)col.Green, (float)col.Blue, (float)col.Alpha)); }
private static NSMutableAttributedString buildAttributedString(string text, CTFont font, Color?fontColor = null) { // Create a new attributed string from text NSMutableAttributedString atts = new NSMutableAttributedString(text); var attRange = new NSRange(0, atts.Length); var attsDic = new NSMutableDictionary(); // Font attribute NSObject fontObject = new NSObject(font.Handle); attsDic.Add(FontAttributedName, fontObject); // -- end font if (fontColor.HasValue) { // Font color var fc = fontColor.Value; NSColor color = NSColor.FromDeviceRgba(fc.R / 255f, fc.G / 255f, fc.B / 255f, fc.A / 255f); NSObject colorObject = new NSObject(color.Handle); attsDic.Add(ForegroundColorAttributedName, colorObject); // -- end font Color } if (underLine) { // Underline int single = (int)MonoMac.AppKit.NSUnderlineStyle.Single; int solid = (int)MonoMac.AppKit.NSUnderlinePattern.Solid; var attss = single | solid; var underlineObject = NSNumber.FromInt32(attss); //var under = NSAttributedString.UnderlineStyleAttributeName.ToString(); attsDic.Add(UnderlineStyleAttributeName, underlineObject); // --- end underline } if (strikeThrough) { // StrikeThrough // NSColor bcolor = NSColor.Blue; // NSObject bcolorObject = new NSObject(bcolor.Handle); // attsDic.Add(NSAttributedString.StrikethroughColorAttributeName, bcolorObject); int stsingle = (int)MonoMac.AppKit.NSUnderlineStyle.Single; int stsolid = (int)MonoMac.AppKit.NSUnderlinePattern.Solid; var stattss = stsingle | stsolid; var stunderlineObject = NSNumber.FromInt32(stattss); attsDic.Add(StrikethroughStyleAttributeName, stunderlineObject); // --- end underline } // Text alignment var alignment = CTTextAlignment.Left; var alignmentSettings = new CTParagraphStyleSettings(); alignmentSettings.Alignment = alignment; var paragraphStyle = new CTParagraphStyle(alignmentSettings); NSObject psObject = new NSObject(paragraphStyle.Handle); // end text alignment attsDic.Add(ParagraphStyleAttributeName, psObject); atts.SetAttributes(attsDic, attRange); return(atts); }
public void ShowError(string error) { ShowMessage(Stock.StatusError, error, false, NSColor.FromDeviceRgba(228f / 255, 84f / 255, 55f / 255, 1)); }