Example #1
0
        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);
        }
Example #3
0
 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);
     }
 }
Example #4
0
        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);
        }
Example #5
0
        /******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);
        }
Example #6
0
        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 }));
        }
Example #9
0
		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));
		}
Example #10
0
		public CSharpPlatform(CSharpSystemFunctionTranslator systemFunctionTranslator, Crayon.Translator.AbstractOpenGlTranslator openGlTranslator, AbstractGamepadTranslator gamepadTranslator)
			: base(PlatformId.CSHARP_OPENTK, LanguageId.CSHARP, false, new CSharpTranslator(), systemFunctionTranslator, openGlTranslator, gamepadTranslator)
		{ }
Example #11
0
		public string Translate(Crayon.ParseTree.Expression expression)
		{
			List<string> output = new List<string>();
			this.platform.Translator.TranslateExpression(output, expression);
			return string.Join("", output);
		}