private void handleLayerItemClick(object obj, System.EventArgs args)
 {
     if (obj is LayerItem)
     {
         LayerItem layer = ((LayerItem)obj);
         if (!layer.isLayerActive())
         {
             SharedSettings.flattenSelection();
             foreach (LayerItem l in Layers)
             {
                 l.setActive(false);
             }
             layer.setActive(true);
             ss.setBitmapCurrentLayer(layer.getBitmap());
         }
         layer.Refresh();
     }
     else if (obj is PictureBox)
     {
         LayerItem layer = (LayerItem)((PictureBox)obj).Parent;
         if (!layer.isLayerActive())
         {
             SharedSettings.flattenSelection();
             foreach (LayerItem l in Layers)
             {
                 l.setActive(false);
                 l.Refresh();
             }
             layer.setActive(true);
         }
         layer.Refresh();
     }
     redrawLayerItems();
 }
        public void addImportImage(Bitmap b)
        {
            SharedSettings.flattenSelection();
            foreach (LayerItem layer in Layers)
            {
                layer.setActive(false);
            }

            Bitmap bit = new Bitmap(SharedSettings.iCanvasWidth, SharedSettings.iCanvasHeight, PixelFormat.Format32bppArgb);

            Graphics.FromImage(bit).DrawImage(b, 0, 0);

            LayerItem temp = new LayerItem(width, height, pf, Layers.Count.ToString(), ss);

            temp.Location   = new Point(0, yLayerLocation);
            yLayerLocation += temp.Height + 5;
            temp.setActive(true);
            temp.setOnClick(handleLayerItemClick);
            temp.setBitmap((Bitmap)bit.Clone());
            Layers.Add(temp);
            pLayerDisplay.Controls.Add(Layers[Layers.Count - 1]);

            if (Layers.Count > 1)
            {
                bRemoveLayer.Enabled = true;
                bMoveDown.Enabled    = true;
                bMoveUp.Enabled      = true;
            }

            b.Dispose();
            bit.Dispose();

            redrawLayerItems();
        }
        private void addLayer(Bitmap b, String name)
        {
            SharedSettings.flattenSelection();
            foreach (LayerItem layer in Layers)
            {
                layer.setActive(false);
            }

            LayerItem temp = new LayerItem(width, height, pf, name, ss);

            temp.Location   = new Point(0, yLayerLocation);
            yLayerLocation += temp.Height + 5;
            temp.setActive(true);
            temp.setOnClick(handleLayerItemClick);
            temp.setBitmap(b);

            Layers.Add(temp);
            pLayerDisplay.Controls.Add(Layers[Layers.Count - 1]);

            if (Layers.Count > 1)
            {
                bRemoveLayer.Enabled = true;
                bMoveDown.Enabled    = true;
                bMoveUp.Enabled      = true;
            }

            ss.setBitmapCurrentLayer(Layers[Layers.Count - 1].getBitmap());
        }
        public LayerView(int w, int h, SharedSettings s)
        {
            InitializeComponent();
            ss             = s;
            width          = w;
            height         = h;
            yLayerLocation = 0;
            LayerItem setup = new LayerItem(w, h, pf, "DEBUG", ss);

            this.Width                = setup.Width;
            pLayerDisplay.Scroll     += handleScroll;
            pLayerDisplay.MouseWheel += handleMouseWheel;
            Layers = new List <LayerItem>();

            if (ss.getLoadFromSettings() && ss.getLayerBitmaps().Length > 0)
            {
                int layers = ss.getLayerBitmaps().Length;

                for (int n = 0; n < layers; n++)
                {
                    addLayer(ss.getLayerBitmaps()[n], ss.getLayerNames()[n]);
                }
            }
            else
            {
                addLayer();
            }

            //ss.setBitmapCurrentLayer(Layers[0].getBitmap());

            redrawLayerItems();
            UpdateLayerInfo();
        }
        private void bMoveUp_Click(object sender, EventArgs e)
        {
            //SharedSettings.flattenSelection();
            int i = getActiveLayerIndex();

            if (i != -1 && i != Layers.Count - 1)
            {
                LayerItem temp = Layers[i];
                Layers[i]     = Layers[i + 1];
                Layers[i + 1] = temp;
            }
            redrawLayerItems();
        }