public void SetOutlineColor() { if (_outlineColorPickerController == null) { _outlineColorPickerController = ColorPickerController.Create(outlineColor, OnOutlineColorUpdate); } else { _outlineColorPickerController.Close(); } }
public void SetFillColor() { if (_fillColorPickerController == null) { _fillColorPickerController = ColorPickerController.Create(fillColor, OnFillColorUpdate); } else { _fillColorPickerController.Close(); } }
/** * Draw Color Picker */ private void DrawColorPicker() { Rect rect = new Rect(startPos.x, startPos.y, sizeCurr, sizeCurr); Event e = Event.current; Vector2 mousePos = e.mousePosition; bool isLeftMBtnClicked = e.type == EventType.MouseUp; bool isLeftMBtnDragging = e.type == EventType.MouseDrag; bool isLeftMBtnMoving = e.type == EventType.MouseMove; bool openCondition = rect.Contains(mousePos) && ((isLeftMBtnClicked || isLeftMBtnDragging || isLeftMBtnMoving) && e.isMouse); bool closeCondition = isLeftMBtnClicked || (!rect.Contains(mousePos)) && (e.isMouse && isLeftMBtnMoving || e.type == EventType.MouseDown); if (openCondition && (activeColorPicker == null || activeColorPicker.mState == ESTATE.Hidden) && mState == ESTATE.Hidden) { mState = ESTATE.Showing; activeColorPicker = this; delta = 0; } if (closeCondition && mState == ESTATE.Showed) { if (isLeftMBtnClicked) { ApplyColor(); } else { SetColor(SelectedColor); } mState = ESTATE.Hidding; delta = 0; } if (mState == ESTATE.Showed) { if (rect.Contains(mousePos)) { float coeffX = colorSpace.width / sizeCurr; float coeffY = colorSpace.height / sizeCurr; Vector2 localImagePos = (mousePos - startPos); Color res = colorSpace.GetPixel((int)(coeffX * localImagePos.x), colorSpace.height - (int)(coeffY * localImagePos.y) - 1); SetColor(res); if (isLeftMBtnDragging) { ApplyColor(); } } else { SetColor(SelectedColor); } } }
/** * Update dictionnary with color selected for the emotion on the color picker */ private void UpdateEmotionColor(ColorPickerController colorPicker) { emotionColors[colorPicker.Title] = colorPicker.SelectedColor; }