private bool SaveTransparentGif(Bitmap bitmap, IFolderProjectItem folder, string name, ref bool overwrite) { System.Drawing.Image image = ReduceColors(bitmap, 0x100, 5, this._imageInfo.TransparentColor); try { MemoryStream stream = new MemoryStream(); image.Save(stream, ImageFormat.Gif); stream.Flush(); stream.Capacity = (int)stream.Length; folder.AddDocument(name, stream.GetBuffer()); } finally { image.Dispose(); } return(false); }
GetStandardValues(ITypeDescriptorContext context) { MyList myList = (MyList)context.Instance; IWebApplication webApp = (IWebApplication)myList._parent.Component.Site.GetService( typeof(IWebApplication)); ArrayList xmlFiles = new ArrayList(); IFolderProjectItem rootItem = (IFolderProjectItem)webApp.RootProjectItem; foreach (IProjectItem item in rootItem.Children) { if (String.Equals(Path.GetExtension(item.Name), ".xml", StringComparison.CurrentCultureIgnoreCase)) { xmlFiles.Add(item.Name); } } return(new StandardValuesCollection(xmlFiles)); }
private void OnOKButtonClick(object sender, EventArgs e) { System.Drawing.Image defaultPlusImage; string str = this._folderNameTextBox.Text.Trim(); if (str.Length == 0) { UIServiceHelper.ShowError(base.ServiceProvider, System.Design.SR.GetString("TreeViewImageGenerator_MissingFolderName")); return; } if (str.IndexOfAny(Path.GetInvalidPathChars()) != -1) { UIServiceHelper.ShowError(base.ServiceProvider, System.Design.SR.GetString("TreeViewImageGenerator_InvalidFolderName", new object[] { str })); return; } IWebApplication service = (IWebApplication)this._treeView.Site.GetService(typeof(IWebApplication)); if (service == null) { UIServiceHelper.ShowError(base.ServiceProvider, System.Design.SR.GetString("TreeViewImageGenerator_ErrorWriting")); return; } IFolderProjectItem rootProjectItem = (IFolderProjectItem)service.RootProjectItem; IProjectItem projectItemFromUrl = service.GetProjectItemFromUrl(Path.Combine("~/", str)); if ((projectItemFromUrl != null) && !(projectItemFromUrl is IFolderProjectItem)) { UIServiceHelper.ShowError(base.ServiceProvider, System.Design.SR.GetString("TreeViewImageGenerator_DocumentExists", new object[] { str })); return; } IFolderProjectItem folder = (IFolderProjectItem)projectItemFromUrl; if (folder == null) { if (UIServiceHelper.ShowMessage(base.ServiceProvider, System.Design.SR.GetString("TreeViewImageGenerator_NonExistentFolderName", new object[] { str }), System.Design.SR.GetString("TreeViewImageGenerator_Title"), MessageBoxButtons.YesNo) == DialogResult.Yes) { try { folder = rootProjectItem.AddFolder(str); goto Label_015A; } catch { UIServiceHelper.ShowError(base.ServiceProvider, System.Design.SR.GetString("TreeViewImageGenerator_ErrorCreatingFolder", new object[] { str })); } } return; } Label_015A: defaultPlusImage = this._imageInfo.ExpandImage; if (defaultPlusImage == null) { defaultPlusImage = this.DefaultPlusImage; } System.Drawing.Image collapseImage = this._imageInfo.CollapseImage; if (collapseImage == null) { collapseImage = this.DefaultMinusImage; } System.Drawing.Image noExpandImage = this._imageInfo.NoExpandImage; int width = this._imageInfo.Width; if (width < 1) { UIServiceHelper.ShowError(base.ServiceProvider, System.Design.SR.GetString("TreeViewImageGenerator_InvalidValue", new object[] { "Width" })); } else { int height = this._imageInfo.Height; if (height < 1) { UIServiceHelper.ShowError(base.ServiceProvider, System.Design.SR.GetString("TreeViewImageGenerator_InvalidValue", new object[] { "Height" })); } else { int lineWidth = this._imageInfo.LineWidth; if (lineWidth < 1) { UIServiceHelper.ShowError(base.ServiceProvider, System.Design.SR.GetString("TreeViewImageGenerator_InvalidValue", new object[] { "LineWidth" })); } else { int lineStyle = (int)this._imageInfo.LineStyle; Color lineColor = this._imageInfo.LineColor; this._progressBar.Value = 0; this._progressBar.Visible = true; this._progressBarLabel.Visible = true; try { bool overwrite = false; bool flag2 = false; Bitmap image = new Bitmap(width, height); Graphics g = Graphics.FromImage(image); g.FillRectangle(new SolidBrush(this._imageInfo.TransparentColor), 0, 0, width, height); this.RenderImage(g, 0, 0, width, height, 'i', lineStyle, lineWidth, lineColor, null); string name = "i.gif"; flag2 |= this.SaveTransparentGif(image, folder, "i.gif", ref overwrite); this._progressBar.Value++; string str3 = "-rtl "; for (int i = 0; i < str3.Length; i++) { image = new Bitmap(width, height); g = Graphics.FromImage(image); g.FillRectangle(new SolidBrush(this._imageInfo.TransparentColor), 0, 0, width, height); this.RenderImage(g, 0, 0, width, height, str3[i], lineStyle, lineWidth, lineColor, collapseImage); g.Dispose(); name = "minus.gif"; if (str3[i] == '-') { name = "dash" + name; } else if (str3[i] != ' ') { name = str3[i] + name; } flag2 |= this.SaveTransparentGif(image, folder, name, ref overwrite); this._progressBar.Value++; } for (int j = 0; j < str3.Length; j++) { image = new Bitmap(width, height); g = Graphics.FromImage(image); g.FillRectangle(new SolidBrush(this._imageInfo.TransparentColor), 0, 0, width, height); this.RenderImage(g, 0, 0, width, height, str3[j], lineStyle, lineWidth, lineColor, defaultPlusImage); g.Dispose(); name = "plus.gif"; if (str3[j] == '-') { name = "dash" + name; } else if (str3[j] != ' ') { name = str3[j] + name; } flag2 |= this.SaveTransparentGif(image, folder, name, ref overwrite); this._progressBar.Value++; } for (int k = 0; k < str3.Length; k++) { image = new Bitmap(width, height); g = Graphics.FromImage(image); g.FillRectangle(new SolidBrush(this._imageInfo.TransparentColor), 0, 0, width, height); this.RenderImage(g, 0, 0, width, height, str3[k], lineStyle, lineWidth, lineColor, noExpandImage); g.Dispose(); name = ".gif"; if (str3[k] == '-') { name = "dash" + name; } else if (str3[k] == ' ') { name = "noexpand" + name; } else { name = str3[k] + name; } flag2 |= this.SaveTransparentGif(image, folder, name, ref overwrite); this._progressBar.Value++; } this._progressBar.Visible = false; this._progressBarLabel.Visible = false; if (flag2) { UIServiceHelper.ShowMessage(base.ServiceProvider, System.Design.SR.GetString("TreeViewImageGenerator_LineImagesGenerated", new object[] { str })); } } catch { this._progressBar.Visible = false; this._progressBarLabel.Visible = false; UIServiceHelper.ShowError(base.ServiceProvider, System.Design.SR.GetString("TreeViewImageGenerator_ErrorWriting", new object[] { str })); return; } this._treeView.LineImagesFolder = "~/" + str; base.DialogResult = DialogResult.OK; base.Close(); } } } }
private bool SaveTransparentGif(Bitmap bitmap, IFolderProjectItem folder, string name, ref bool overwrite) { System.Drawing.Image image = ReduceColors(bitmap, 0x100, 5, this._imageInfo.TransparentColor); try { MemoryStream stream = new MemoryStream(); image.Save(stream, ImageFormat.Gif); stream.Flush(); stream.Capacity = (int) stream.Length; folder.AddDocument(name, stream.GetBuffer()); } finally { image.Dispose(); } return false; }