private void DrawPreview()
        {
            System.Drawing.Graphics gr = System.Drawing.Graphics.FromHwnd(panelPreview.Handle);

            Rectangle rect = new Rectangle(0, 0, panelPreview.Width, panelPreview.Height);

            using (SolidBrush brush = new SolidBrush(Color.White))
            {
                gr.FillRectangle(brush, rect);
            }
            using (Pen pen = new Pen(Color.Gray, 0))
            {
                pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dot;
                gr.DrawLine(pen, 0, rect.Height / 2, rect.Width, rect.Height / 2);
                gr.DrawLine(pen, rect.Width / 2, 0, rect.Width / 2, rect.Height);
            }

            if (_renderer.TextSymbol is ISymbol)
            {
                _renderer.TextSymbol.Text = "Label";
                SymbolPreview.Draw(gr, rect, (ISymbol)_renderer.TextSymbol, false);
            }
            gr.Dispose();
            gr = null;
        }
        private void RendererBox_DrawItem(object sender, DrawItemEventArgs e)
        {
            if (e.Index >= RendererBox.Items.Count || e.Index < 0)
            {
                return;
            }

            object item = RendererBox.Items[e.Index];

            if (item is RendererItem)
            {
                SolidBrush b, f;
                if ((e.State & DrawItemState.Selected) != 0)
                {
                    b = (SolidBrush)Brushes.DarkBlue;
                    f = (SolidBrush)Brushes.White;
                }
                else
                {
                    b = (SolidBrush)Brushes.White;
                    f = (SolidBrush)Brushes.Black;
                }
                using (System.Drawing.Font font = new Font("Arial", 10))
                {
                    e.Graphics.FillRectangle(b, e.Bounds);
                    Rectangle rect = new Rectangle(e.Bounds.X + 20, e.Bounds.Y, e.Bounds.Width, e.Bounds.Height);
                    e.Graphics.DrawString(item.ToString(), font, f, rect);

                    rect = new Rectangle(5, e.Bounds.Y + 2, 11, 11);
                    e.Graphics.DrawImage(
                        (((RendererItem)item).ShowLegend ?
                         global::gView.Carto.Rendering.UI.Properties.Resources.CollapseIcon :
                         global::gView.Carto.Rendering.UI.Properties.Resources.ExpandIcon),
                        rect);
                }
            }
            else if (item is LegendItem)
            {
                Rectangle rect = new Rectangle(20, e.Bounds.Top, 30, 20);

                ILegendItem legendItem = ((LegendItem)item).Item;
                if (legendItem != null)
                {
                    if (legendItem is ISymbol)
                    {
                        SymbolPreview.Draw(e.Graphics, rect, (ISymbol)legendItem);
                    }
                    if (legendItem.LegendLabel != String.Empty)
                    {
                        using (Font font = new Font("Arial", 9))
                        {
                            e.Graphics.DrawString(legendItem.LegendLabel, font, Brushes.Black, 52, e.Bounds.Top + e.Bounds.Height / 2 - font.Height / 2);
                            SizeF stringSize = e.Graphics.MeasureString(legendItem.LegendLabel, font);
                            RendererBox.HorizontalExtent = (int)Math.Max(RendererBox.HorizontalExtent, 52 + stringSize.Width);
                        }
                    }
                }
            }
        }
Exemple #3
0
 public override void PaintValue(PaintValueEventArgs e)
 {
     if (!(e.Value is ISymbol))
     {
         return;
     }
     SymbolPreview.Draw(e.Graphics, e.Bounds, (ISymbol)e.Value);
 }
Exemple #4
0
        private void btnTextSymbol_Paint(object sender, PaintEventArgs e)
        {
            if (_renderer == null)
            {
                return;
            }

            SymbolPreview.Draw(
                e.Graphics,
                new Rectangle(5, 5, btnTextSymbol.Width - 10, btnTextSymbol.Height - 10),
                ((DimensionRenderer)_renderer).TextSymbol, false);
        }
Exemple #5
0
        public void addSymbol(ISymbol symbol, string[] labels, object userObject)
        {
            Bitmap bm = new Bitmap(imageList1.ImageSize.Width, imageList1.ImageSize.Height);

            System.Drawing.Graphics gr = System.Drawing.Graphics.FromImage(bm);
            SymbolPreview.Draw(gr, new Rectangle(0, 0, bm.Width, bm.Height), symbol);
            gr.Dispose();
            gr = null;
            imageList1.Images.Add(bm);

            list.Items.Add(new SymbolListViewItem(symbol, labels, imageList1.Images.Count - 1, userObject));
        }
        private void btnChooseLineSymbol_Paint(object sender, PaintEventArgs e)
        {
            if (_renderer == null)
            {
                return;
            }

            SymbolPreview.Draw(
                e.Graphics,
                new Rectangle(5, 5, btnChooseSymbol.Width - 10, btnChooseSymbol.Height - 10),
                _renderer[geometryType.Polyline], false);
        }
Exemple #7
0
        private void btnChooseSymbol_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
        {
            if (_renderer == null)
            {
                return;
            }

            SymbolPreview.Draw(
                e.Graphics,
                new Rectangle(5, 5, btnChooseSymbol.Width - 10, btnChooseSymbol.Height - 10),
                ((IFeatureRenderer2)_renderer).Symbol, false);
        }
        private void btnChooseSwitchOffSymbol_Paint(object sender, PaintEventArgs e)
        {
            if (_renderer == null)
            {
                return;
            }

            ISymbol symbol = _renderer[NetworkRenderer.RendererType.SwitchesOff];

            if (symbol != null)
            {
                SymbolPreview.Draw(
                    e.Graphics,
                    new Rectangle(5, 5, btnChooseSwitchOffSymbol.Width - 10, btnChooseSwitchOffSymbol.Height - 10),
                    symbol, false);
            }
        }
Exemple #9
0
        private void lbSymbols_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
        {
            int index = 0;

            using (Font font = new Font("Arial", 9f))
            {
                StringFormat format = new StringFormat();
                format.Alignment = StringAlignment.Far;
                foreach (SymbolCollectionItem item in lbSymbols.Items)
                {
                    try
                    {
                        if (e.Index == index)
                        {
                            e.Graphics.DrawString((index + 1).ToString() + ":", font, Brushes.Black, 20f, e.Bounds.Top + 3, format);
                            e.Graphics.DrawImage(
                                iList.Images[((item.Visible) ? 1 : 0)],
                                20, e.Bounds.Top + e.Bounds.Height / 2 - 10, 19, 20);

                            Rectangle rect = new Rectangle(
                                e.Bounds.X + 42, e.Bounds.Y,
                                e.Bounds.Width - 43, e.Bounds.Height);
                            if (item.Symbol == _selectedSymbol)
                            {
                                using (SolidBrush brush = new SolidBrush(Color.BlueViolet))
                                {
                                    e.Graphics.FillRectangle(brush, rect);
                                }
                            }
                            using (Pen pen = new Pen(Color.Gray))
                            {
                                e.Graphics.DrawRectangle(pen, rect);
                            }
                            rect.X      += 1;
                            rect.Y      += 1;
                            rect.Width  -= 2;
                            rect.Height -= 2;
                            SymbolPreview.Draw(e.Graphics, rect, item.Symbol, false);
                        }
                    }
                    catch { }
                    index++;
                }
            }
        }
Exemple #10
0
        private void list_MouseDown(object sender, MouseEventArgs e)
        {
            ListViewItem item = list.GetItemAt(4, e.Y);

            if (!(item is SymbolListViewItem))
            {
                return;
            }

            if (e.X < imageList1.ImageSize.Width)
            {
                ISymbol symbol = ((SymbolListViewItem)item).Symbol;
                if (OnSymbolClicked != null)
                {
                    OnSymbolClicked(symbol);

                    Image image = imageList1.Images[item.ImageIndex];
                    using (System.Drawing.Graphics gr = System.Drawing.Graphics.FromImage(image))
                    {
                        SymbolPreview.Draw(gr, new Rectangle(0, 0, image.Width, image.Height), symbol, true);
                        imageList1.Images[item.ImageIndex] = image;
                    }
                    list.Refresh();
                }
                else
                {
                    ISymbol    s   = (symbol is INullSymbol) ? RendererFunctions.CreateStandardSymbol(((INullSymbol)symbol).GeomtryType) : (ISymbol)symbol.Clone();
                    FormSymbol dlg = new FormSymbol(s);

                    if (dlg.ShowDialog() == DialogResult.OK)
                    {
                        Image image = imageList1.Images[item.ImageIndex];
                        using (System.Drawing.Graphics gr = System.Drawing.Graphics.FromImage(image))
                        {
                            SymbolPreview.Draw(gr, new Rectangle(0, 0, image.Width, image.Height), dlg.Symbol, true);
                            imageList1.Images[item.ImageIndex] = image;

                            if (OnSymbolChanged != null)
                            {
                                OnSymbolChanged(item.Text, dlg.Symbol);
                            }
                        }
                        ((SymbolListViewItem)item).Symbol = dlg.Symbol;
                    }
                }

                if (_box.Visible)
                {
                    HideBox();
                }
            }
            else
            {
                int  w       = 0;
                bool showBox = false;
                foreach (ColumnHeader col in list.Columns)
                {
                    w += col.Width;
                    if (e.X < w)
                    {
                        if (col.Index == 0 && OnKeyChanged == null)
                        {
                            break;
                        }
                        if (col.Index > 0 && OnLabelChanged == null)
                        {
                            break;
                        }

                        Rectangle rect = item.Bounds;
                        rect.X      = 3 + w - col.Width + ((col.Index == 0) ? imageList1.ImageSize.Width : 0);
                        rect.Y      = 3 + rect.Top + rect.Height / 2 - _box.Height / 2;
                        rect.Width  = col.Width - ((col.Index == 0) ? imageList1.ImageSize.Width : 0);
                        rect.Height = _box.Height;

                        if (_box.Visible == true)
                        {
                            HideBox();
                        }

                        _box.Bounds  = rect;
                        _box.Text    = item.SubItems[col.Index].Text;
                        _box.Visible = true;
                        _box.Focus();
                        _labelEditItem  = (SymbolListViewItem)item;
                        _labelEditIndex = col.Index;
                        showBox         = true;
                        break;
                    }
                }
                if (showBox == false && _box.Visible == true)
                {
                    HideBox();
                    _labelEditIndex = 0;
                }
            }
        }
        //private void btnMidSymbol_Paint(object sender, PaintEventArgs e)
        //{
        //    SymbolPreview.Draw(e.Graphics,
        //            new Rectangle(0, 0, btnMidSymbol.Width, btnMidSymbol.Height),
        //            _midSymbol);
        //}

        private void btnMaxSymbol_Paint(object sender, PaintEventArgs e)
        {
            SymbolPreview.Draw(e.Graphics,
                               new Rectangle(0, 0, btnMaxSymbol.Width, btnMaxSymbol.Height),
                               _maxSymbol);
        }