using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using DevExpress.XtraEditors; using KGIS.Plugin.LayerProperty.Interface; using ESRI.ArcGIS.Display; using ESRI.ArcGIS.Carto; using ESRI.ArcGIS.esriSystem; using ESRI.ArcGIS.ADF; using KGIS.Plugin.LayerProperty.Utils; using DevExpress.XtraEditors.Controls; using stdole; namespace KGIS.Plugin.LayerProperty.View.UC_Controls { public partial class UCTextSymbolAtrribute : XtraUserControl, IUCSymbolAtrribute { private PictureEdit m_PictureEdit; private ISymbol m_Symbol; private IDoStyleGalleryItem m_DoStyleGalleryItem; private IStyleGalleryClass m_StyleGalleryClass; private ITextSymbol m_TextSymbol; public event System.EventHandler SymbolEdited; public UCTextSymbolAtrribute() { InitializeComponent(); } public bool Init(ref ISymbol symbol) { try { this.m_TextSymbol = null; this.m_Symbol = null; this.m_Symbol = symbol; this.m_StyleGalleryClass = new TextSymbolStyleGalleryClassClass(); this.m_TextSymbol = (symbol as ITextSymbol); bool result; if (this.m_TextSymbol == null) { result = false; return result; } if (this.m_TextSymbol.Color != null) { if (this.m_TextSymbol.Color.NullColor) { this.clrFontColor.Color = ColorTranslator.FromOle(this.m_TextSymbol.Color.RGB); } else { this.clrFontColor.Color = Color.Transparent; } } else { this.clrFontColor.Color = Color.Transparent; } this.fontEdit2.Text = this.m_TextSymbol.Font.Name; this.spSize.EditValue = this.m_TextSymbol.Font.Size; this.chkItalic.Checked = this.m_TextSymbol.Font.Italic; this.chkUnderline.Checked = this.m_TextSymbol.Font.Underline; this.chkBold.Checked = this.m_TextSymbol.Font.Bold; this.PreviewGalleryItem(); result = true; return result; } catch (Exception ex) { //RdbUtil.AddException(ex); } return false; } public bool Init(ref IDoStyleGalleryItem symbol) { try { this.m_TextSymbol = null; this.m_DoStyleGalleryItem = null; this.m_DoStyleGalleryItem = symbol; IClone clone = symbol.Item.Item as IClone; this.m_TextSymbol = (clone.Clone() as ITextSymbol); bool result; if (this.m_TextSymbol == null) { result = false; return result; } this.clrFontColor.Color = Converter.FromRGBColor(this.m_TextSymbol.Color as IRgbColor); this.fontEdit2.Text = this.m_TextSymbol.Font.Name; this.spSize.EditValue = this.m_TextSymbol.Font.Size; this.chkItalic.Checked = this.m_TextSymbol.Font.Italic; this.chkUnderline.Checked = this.m_TextSymbol.Font.Underline; this.chkBold.Checked = this.m_TextSymbol.Font.Bold; result = true; return result; } catch (Exception ex) { //RdbUtil.AddException(ex); } return false; } public void SetPicture(PictureEdit pic) { this.m_PictureEdit = pic; } private void clrFillColor_EditValueChanged(object sender, System.EventArgs e) { try { if (this.m_TextSymbol != null) { IColor color = this.m_TextSymbol.Color; color = Converter.ToRGBColor(this.clrFontColor.Color); color.Transparency = this.clrFontColor.Color.A; this.m_TextSymbol.Color = color; } this.PreviewGalleryItem(); if (this.SymbolEdited != null) { this.SymbolEdited(null, null); } } catch (Exception ex) { //RdbUtil.AddException(ex); } } private void PreviewGalleryItem() { try { if (this.m_Symbol != null) { this.m_PictureEdit.Image = StyleGalleryItemView.GetSymbolBitMap(this.m_PictureEdit.Width - 1, this.m_PictureEdit.Height - 1, this.m_StyleGalleryClass, this.m_Symbol); } else { if (this.m_DoStyleGalleryItem != null) { this.m_PictureEdit.Image = this.m_DoStyleGalleryItem.StyleGalleryClass.StyleGalleryItemToBmp(this.m_DoStyleGalleryItem, this.m_PictureEdit.Height); } } } catch (Exception ex) { //RdbUtil.AddException(ex); } } private void spSize_EditValueChanging(object sender, ChangingEventArgs e) { try { if (Convert.ToDouble(e.NewValue) < 0.0) { e.Cancel = true; } else { if (this.m_TextSymbol != null) { IFontDisp font = this.m_TextSymbol.Font; font.Size = Math.Abs(Convert.ToDecimal(e.NewValue)); this.m_TextSymbol.Font = font; } this.PreviewGalleryItem(); if (this.SymbolEdited != null) { this.SymbolEdited(null, null); } } } catch (Exception ex) { //RdbUtil.AddException(ex); } } private void fontEdit2_SelectedValueChanged(object sender, System.EventArgs e) { try { if (this.m_TextSymbol != null) { IFontDisp fontDisp = this.m_TextSymbol.Font; System.Drawing.Font font = new System.Drawing.Font(this.fontEdit2.Text, Math.Abs(Convert.ToSingle(this.spSize.EditValue))); fontDisp = Converter.ToStdFont(font); fontDisp.Size = Math.Abs(Convert.ToDecimal(this.spSize.EditValue)); fontDisp.Italic = this.chkItalic.Checked; fontDisp.Bold = this.chkBold.Checked; fontDisp.Underline = this.chkUnderline.Checked; this.m_TextSymbol.Font = fontDisp; } this.PreviewGalleryItem(); if (this.SymbolEdited != null) { this.SymbolEdited(null, null); } } catch (Exception ex) { //RdbUtil.AddException(ex); } } private void chkBold_CheckedChanged(object sender, System.EventArgs e) { try { if (this.m_TextSymbol != null) { IFontDisp font = this.m_TextSymbol.Font; font.Bold = this.chkBold.Checked; this.m_TextSymbol.Font = font; } this.PreviewGalleryItem(); if (this.SymbolEdited != null) { this.SymbolEdited(null, null); } } catch (Exception ex) { //RdbUtil.AddException(ex); } } private void chkItalic_CheckedChanged(object sender, System.EventArgs e) { try { if (this.m_TextSymbol != null) { IFontDisp font = this.m_TextSymbol.Font; font.Italic = this.chkItalic.Checked; this.m_TextSymbol.Font = font; } this.PreviewGalleryItem(); if (this.SymbolEdited != null) { this.SymbolEdited(null, null); } } catch (Exception ex) { //RdbUtil.AddException(ex); } } private void chkUnderline_CheckedChanged(object sender, System.EventArgs e) { try { if (this.m_TextSymbol != null) { IFontDisp font = this.m_TextSymbol.Font; font.Underline = this.chkUnderline.Checked; this.m_TextSymbol.Font = font; } this.PreviewGalleryItem(); if (this.SymbolEdited != null) { this.SymbolEdited(null, null); } } catch (Exception ex) { //RdbUtil.AddException(ex); } } } }