Exemple #1
0
        /// <summary>
        /// This method Display Layers
        /// </summary>
        public void DisplayLayers()
        {
            try
            {
                // Clear the controls
                LayersPanel.Controls.Clear();

                // if there are one or more layers
                if ((HasPixelDatabase) && (ListHelper.HasOneOrMoreItems(PixelDatabase.Layers)))
                {
                    // reverse the list
                    List <Layer> layers = PixelDatabase.Layers;

                    // Iterate the collection of Layer objects
                    for (int x = layers.Count - 1; x >= 0; x--)
                    {
                        // get the current layer
                        Layer layer = layers[x];

                        // create a new label and set properties
                        LayerLabel label = new LayerLabel();
                        label.Layer       = layer;
                        label.Name        = layer.Name;
                        label.Text        = layer.Name;
                        label.Dock        = DockStyle.Top;
                        label.Font        = new Font("Verdana", 12);
                        label.ForeColor   = Color.White;
                        label.MouseEnter += this.Button_Enter;
                        label.MouseLeave += this.Button_Leave;
                        label.Click      += LayerClicked;
                        label.Index       = x;

                        // if selected
                        if (layer.Selected)
                        {
                            // selected
                            label.BackColor = Color.RoyalBlue;
                        }
                        else
                        {
                            // no backcolor
                            label.BackColor = Color.Transparent;
                        }

                        // Add this control
                        LayersPanel.Controls.Add(label);
                    }
                }
            }
            catch (Exception error)
            {
                // for debugging only for now
                DebugHelper.WriteDebugError("DisplayLayers", "LayersControl", error);
            }
        }
Exemple #2
0
        /// <summary>
        /// event is fired when Layer Clicked
        /// </summary>
        private void LayerClicked(object sender, EventArgs e)
        {
            // If the value for the property .HasPixelDatabase is true
            if ((HasPixelDatabase) && (PixelDatabase.HasLayers))
            {
                // cast the sender a Label
                LayerLabel label = sender as LayerLabel;

                // If the label object exists
                if (NullHelper.Exists(label))
                {
                    // If the value for the property label.HasLayer is true
                    if ((label.HasLayer) && ((label.Index >= 0) && (label.Index < PixelDatabase.Layers.Count)))
                    {
                        // iterate the layers
                        foreach (Layer layer in PixelDatabase.Layers)
                        {
                            // remove all selections
                            layer.Selected = false;
                        }

                        // Select this item
                        PixelDatabase.Layers[label.Index].Selected = true;

                        // Set the SelectedLayer
                        SelectedLayer = PixelDatabase.Layers[label.Index];

                        // Display Layers
                        DisplayLayers();

                        // Enable or disable controls
                        UIEnable();
                    }
                }
            }
        }