public override void LoadView() { base.LoadView(); //get the latest selected crayon foreach (var crayon in Application.Crayons) { if (crayon.Selected) { selectedCrayon = crayon; } } //load our swatches (transparent, colorless pngs that we then add color to, and use as a textured brush) var swatchesDirectory = Path.Combine(NSBundle.MainBundle.BundlePath, "Swatches"); swatches = new List <UIImage>(); foreach (var swatchFile in Directory.EnumerateFiles(swatchesDirectory)) { var swatch = UIImage.FromFile(swatchFile); if (swatch == null) { Application.Log("WARN: couldn't load swatch: {0}", swatchFile); continue; } swatches.Add(swatch); } //make our brush size slider swatchSlider = new UISlider(new RectangleF(50, 30, 250, 50)); swatchSlider.MinValue = 1; swatchSlider.MaxValue = 40; swatchSlider.Value = 10; swatchSlider.MinimumTrackTintColor = UIColor.FromRGB(selectedCrayon.R / 255f, selectedCrayon.G / 255f, selectedCrayon.B / 255f); swatchSlider.MaximumTrackTintColor = UIColor.LightGray; //generate our clear and save buttons //TODO: this should happen in a split-view, so the user can show and hide redoButton = UIButton.FromType(UIButtonType.RoundedRect); saveButton = UIButton.FromType(UIButtonType.RoundedRect); redoButton.Frame = new RectangleF(100, 825, 200, 100); saveButton.Frame = new RectangleF(400, 825, 200, 100); redoButton.SetTitle("Start Over", UIControlState.Normal); saveButton.SetTitle("I'm Done!", UIControlState.Normal); redoButton.TouchUpInside += ClearCanvas; saveButton.TouchUpInside += SaveAsImage; //TODO: manage slider position wrt screen orientation canvas = new Canvas(UIScreen.MainScreen.ApplicationFrame, InterfaceOrientation, Application.Crayons, swatches); canvas.Background = image; canvas.swatchSlider = swatchSlider; canvas.AddSubviews(swatchSlider, redoButton, saveButton); //load this puppy View = canvas; }
private static Crayon getNewRandomCrayon() { Crayon instrument; var c = new Random((int)DateTime.Now.Ticks).Next(0x1000000); var color = ColorTranslator.FromHtml($"#{c:X6}"); instrument = new Crayon(color); return(instrument); }
void CrayonNumColorInitiate() { if (crayonNumArray.Length != crayonColorArray.Length) { Debug.LogWarning("未同步蜡笔颜色和数量"); } for (int i = 0; i < crayonNumArray.Length; i++) //每关的颜色和数量在inspector面板中指定 { Crayon cra = new Crayon(crayonNumArray[i], crayonColorArray[i]); crayonList.Add(cra); } }
public override void TouchesMoved(NSSet touchSet, UIEvent evt) { var touches = touchSet.ToArray <UITouch> (); if (touchedCrayon != null) { if (touches.All(touch => GetTouchingCrayon(touch) == null)) { touchedCrayon = null; } return; } AddPoint(touches); }
/******Touches******/ public override void TouchesBegan(NSSet touchSet, UIEvent evt) { var touches = touchSet.ToArray <UITouch> (); foreach (var touch in touches) { touchedCrayon = GetTouchingCrayon(touch); if (touchedCrayon != null) { return; } } AddPoint(touches); }
void DrawCrayon(CGContext context, Crayon crayon) { // I <3 Paintcode //// Color Declarations var gradientColor = UIColor.FromRGBA(crayon.R / 255f, crayon.G / 255f, crayon.B / 255f, 1.00f); var gradientColor2 = UIColor.FromRGBA(crayon.R / 255f, crayon.G / 255f, crayon.B / 255f, 0.69f); var gradientColor3 = UIColor.FromRGBA(crayon.R / 255f, crayon.G / 255f, crayon.B / 255f, 0.37f); //// Gradient Declarations var gradientColors = new CGColor [] { gradientColor.CGColor, gradientColor2.CGColor, gradientColor3.CGColor, gradientColor2.CGColor, gradientColor.CGColor }; var gradientLocations = new float [] { 0, 0.37f, 0.66f, 1, 1 }; var gradient = new CGGradient(colorSpace, gradientColors, gradientLocations); //// Rectangle Drawing var rectanglePath = UIBezierPath.FromRoundedRect(new RectangleF(0.5f, 20.5f, 25, 100), UIRectCorner.TopLeft | UIRectCorner.TopRight, new SizeF(8, 8)); context.SaveState(); rectanglePath.AddClip(); context.DrawLinearGradient(gradient, new PointF(0.5f, 70.5f), new PointF(25.5f, 70.5f), 0); context.RestoreState(); //// Bezier Drawing UIBezierPath bezierPath = new UIBezierPath(); bezierPath.MoveTo(new PointF(3.5f, 24.5f)); bezierPath.AddCurveToPoint(new PointF(12, 0.09f), new PointF(6.5f, 17.57f), new PointF(9.79f, -4.27f)); bezierPath.AddCurveToPoint(new PointF(22.5f, 24.5f), new PointF(16.3f, 8.57f), new PointF(22.5f, 24.5f)); context.SaveState(); bezierPath.AddClip(); context.DrawLinearGradient(gradient, new PointF(3.5f, 12.01f), new PointF(22.5f, 12.01f), 0); context.RestoreState(); }
public async Task <IActionResult> CrayonSearch(string Color) { if (!string.IsNullOrEmpty(Color)) { var instrument = await context.Crayons.FromSqlRaw("SELECT * FROM Crayons WHERE HTMLColor = '" + Color + "'").FirstOrDefaultAsync(); //var instrument = await context.Crayons.FromSqlWriting("SELECT * FROM Crayons WHERE HTMLColor = '" + Color + "'").FirstOrDefaultAsync(); if (instrument == null) { instrument = new Crayon { Id = -1, HTMLColor = "#000000" }; } var ret = mapper.Map <CrayonViewModel>(instrument); return(View(ret)); } return(View()); }
public async Task <ActionResult> SaveCrayon(CrayonViewModel model) { var instrument = await context.Crayons.FirstOrDefaultAsync(c => c.Id == model.Id); if (instrument == null) { instrument = new Crayon { Id = model.Id, HTMLColor = model.Color }; context.Crayons.Add(instrument); } else { instrument.HTMLColor = model.Color; } var changes = await context.SaveChangesAsync(); var ret = mapper.Map <CrayonViewModel>(instrument); return(RedirectToAction("Crayon", new { CrayonId = ret.Id })); }
public AnnotatedType(Crayon.ParseTree.Annotation annotation) { if (annotation.Type != "type") throw new ParserException(annotation.FirstToken, "Expected type annotation."); this.Initialize(annotation.FirstToken, Tokenizer.Tokenize("proxy token stream", annotation.GetSingleArgAsString(null), -1, false)); }
public CSharpPlatform(CSharpSystemFunctionTranslator systemFunctionTranslator, Crayon.Translator.AbstractOpenGlTranslator openGlTranslator, AbstractGamepadTranslator gamepadTranslator) : base(PlatformId.CSHARP_OPENTK, LanguageId.CSHARP, false, new CSharpTranslator(), systemFunctionTranslator, openGlTranslator, gamepadTranslator) { }
public string Translate(Crayon.ParseTree.Expression expression) { List<string> output = new List<string>(); this.platform.Translator.TranslateExpression(output, expression); return string.Join("", output); }