/// <summary>
    /// Draws the PaletteColour's interface
    /// </summary>
    /// <param name="palette"></param>
    /// <param name="paletteColour"></param>
    /// <returns></returns>
    bool DrawColour(Palette palette, PaletteColour paletteColour)
    {
        GUILayout.BeginHorizontal();
        GUILayout.Space(5);

        paletteColour.name = GUILayout.TextField(paletteColour.name, GUILayout.Width(100));

        GUILayout.Space(5);

        paletteColour.height = GUILayout.HorizontalSlider(paletteColour.height, 0, 1, GUILayout.Width(100));

        GUILayout.Space(5);

        paletteColour.colour = EditorGUILayout.ColorField(paletteColour.colour);

        GUILayout.Space(5);

        if (DrawRemoveColourButton(palette, paletteColour))
        {
            return(REFRESH_EDITOR);
        }

        GUILayout.Space(5);

        GUILayout.EndHorizontal();

        return(!REFRESH_EDITOR);
    }
    /// <summary>
    /// Draws the remove Palette button
    /// </summary>
    /// <param name="palettes"></param>
    /// <param name="palette"></param>
    /// <returns></returns>
    bool DrawRemoveColourButton(Palette palettes, PaletteColour palette)
    {
        if (GUILayout.Button("X"))
        {
            RemoveColour(palettes, palette);
            return(REFRESH_EDITOR);
        }

        return(!REFRESH_EDITOR);
    }
예제 #3
0
        public void Read(Reader reader)
        {
            int palColumns = ((int)reader.BaseStream.Length / 8) / 6;

            Colors = new PaletteColour[palColumns][];
            for (int i = 0; i < palColumns; i++)
            {
                Colors[i] = new PaletteColour[COLORS_PER_COLUMN];
                for (int j = 0; j < COLORS_PER_COLUMN; ++j)
                {
                    Colors[i][j] = new PaletteColour(reader);
                }
            }
        }
예제 #4
0
        public void Read(Reader reader, int Columns)
        {
            int palColumns = Columns;

            Colors = new PaletteColour[palColumns][];
            for (int i = 0; i < palColumns; i++)
            {
                Colors[i] = new PaletteColour[COLORS_PER_COLUMN];
                for (int j = 0; j < COLORS_PER_COLUMN; ++j)
                {
                    Colors[i][j] = new PaletteColour(reader);
                }
            }
        }
예제 #5
0
        public Palette(int pc = 2)
        {
            int palColumns = pc;

            Colors = new PaletteColour[palColumns][];
            for (int i = 0; i < palColumns; i++)
            {
                Colors[i] = new PaletteColour[COLORS_PER_COLUMN];
                for (int j = 0; j < COLORS_PER_COLUMN; ++j)
                {
                    Colors[i][j] = new PaletteColour();
                }
            }
        }
예제 #6
0
        private void Colour4Changed(object sender, SelectionChangedEventArgs e)
        {
            CbBox         cb = (sender as CbBox);
            PaletteColour p  = (palette.Children[cb.index] as PaletteColour);

            for (int x = 0; x < pixelWidth; x++)
            {
                for (int y = 0; y < pixelHeight; y++)
                {
                    if (bmpPixels[x, y] == p.originalColour)
                    {
                        int c = MonoColourRGB[cb.SelectedIndex];
                        treatedPixels[x, y] = Color.FromRgb((byte)(c >> 16), (byte)(c >> 8), (byte)(c));
                    }
                }
            }
            RedrawCanvas(treatedPixels);
        }
예제 #7
0
        private void TreatMuliColours()
        {
            List <Color> lst = new List <Color>();

            foreach (var v in bmpPixels)
            {
                if (!lst.Contains(v))
                {
                    lst.Add(v);
                    if (lst.Count > 16)
                    {
                        throw new Exception("Only Mono or 16-colour allowed");
                    }
                }
            }
            palette.Children.Clear();
            for (int i = 0; i < lst.Count; i++)
            {
                PaletteColour p = new PaletteColour(lst[i], i);
                palette.Children.Add(p);
                p.comboBox.SelectionChanged += Colour4Changed;
            }
        }
예제 #8
0
        // public Color BackgroundColour


        public Color32 GetColour(PaletteColour colourType)
        {
            return(Colours[(int)colourType]);
        }
 /// <summary>
 /// Draws the remove PaletteColour button
 /// </summary>
 /// <param name="palettes"></param>
 /// <param name="palette"></param>
 void RemoveColour(Palette palettes, PaletteColour palette)
 {
     palettes.colours.Remove(palette);
 }