// // ErrorDialog.cs // // Author: // Lluis Sanchez Gual // // Copyright (c) 2010 Novell, Inc (http://www.novell.com) // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; using Gtk; namespace Pinta { public partial class ErrorDialog : Gtk.Dialog { private HBox hbox1; private Image image884; private VBox vbox3; private Label descriptionLabel; private Expander expander; private ScrolledWindow GtkScrolledWindow; private TextView detailsTextView; private Label expanderLabel; private Button okButton; TextTag tagNoWrap; TextTag tagWrap; public ErrorDialog (Window parent) { this.Build (); TransientFor = parent; descriptionLabel.ModifyBg (StateType.Normal, new Gdk.Color (255,0,0)); tagNoWrap = new TextTag ("nowrap"); tagNoWrap.WrapMode = WrapMode.None; detailsTextView.Buffer.TagTable.Add (tagNoWrap); tagWrap = new TextTag ("wrap"); tagWrap.WrapMode = WrapMode.Word; detailsTextView.Buffer.TagTable.Add (tagWrap); expander.Visible = false; } public string Message { get { return descriptionLabel.Text; } set { string message = value; while (message.EndsWith ("\r") || message.EndsWith ("\n")) message = message.Substring (0, message.Length - 1); if (!message.EndsWith (".")) message += "."; descriptionLabel.Text = message; } } public void AddDetails (string text, bool wrapped) { TextIter it = detailsTextView.Buffer.EndIter; if (wrapped) detailsTextView.Buffer.InsertWithTags (ref it, text, tagWrap); else detailsTextView.Buffer.InsertWithTags (ref it, text, tagNoWrap); expander.Visible = true; } protected virtual void OnExpander1Activated (object sender, System.EventArgs e) { GLib.Timeout.Add (100, new GLib.TimeoutHandler (UpdateSize)); } bool UpdateSize () { int w, h; GetSize (out w, out h); Resize (w, 1); return false; } protected virtual void OnOkButtonClicked (object sender, System.EventArgs e) { Destroy (); } #region Autogenerated protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget MonoDevelop.Ide.Gui.Dialogs.ErrorDialog this.Name = "MonoDevelop.Ide.Gui.Dialogs.ErrorDialog"; this.Title = "Pinta"; this.WindowPosition = ((global::Gtk.WindowPosition)(4)); // Internal child MonoDevelop.Ide.Gui.Dialogs.ErrorDialog.VBox global::Gtk.VBox w1 = this.VBox; w1.Name = "dialog1_VBox"; w1.BorderWidth = ((uint)(2)); // Container child dialog1_VBox.Gtk.Box+BoxChild this.hbox1 = new global::Gtk.HBox (); this.hbox1.Name = "hbox1"; this.hbox1.Spacing = 6; this.hbox1.BorderWidth = ((uint)(12)); // Container child hbox1.Gtk.Box+BoxChild this.image884 = new global::Gtk.Image (); this.image884.Name = "image884"; this.image884.Yalign = 0f; this.image884.Pixbuf = Gtk.IconTheme.Default.LoadIcon ("gtk-dialog-error", 32, Gtk.IconLookupFlags.UseBuiltin); this.hbox1.Add (this.image884); global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.image884])); w2.Position = 0; w2.Expand = false; w2.Fill = false; // Container child hbox1.Gtk.Box+BoxChild this.vbox3 = new global::Gtk.VBox (); this.vbox3.Name = "vbox3"; this.vbox3.Spacing = 6; // Container child vbox3.Gtk.Box+BoxChild this.descriptionLabel = new global::Gtk.Label (); this.descriptionLabel.Name = "descriptionLabel"; this.descriptionLabel.Xalign = 0f; this.descriptionLabel.LabelProp = "An exception has been thrown 1 2 3 4 5 6 7 8 9 10 11 12 13 14"; this.descriptionLabel.Wrap = true; this.descriptionLabel.Selectable = true; this.vbox3.Add (this.descriptionLabel); global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.vbox3[this.descriptionLabel])); w3.Position = 0; w3.Expand = false; w3.Fill = false; // Container child vbox3.Gtk.Box+BoxChild this.expander = new global::Gtk.Expander (null); this.expander.CanFocus = true; this.expander.Name = "expander"; // Container child expander.Gtk.Container+ContainerChild this.GtkScrolledWindow = new global::Gtk.ScrolledWindow (); this.GtkScrolledWindow.HeightRequest = 250; this.GtkScrolledWindow.Name = "GtkScrolledWindow"; this.GtkScrolledWindow.ShadowType = ((global::Gtk.ShadowType)(1)); // Container child GtkScrolledWindow.Gtk.Container+ContainerChild this.detailsTextView = new global::Gtk.TextView (); this.detailsTextView.CanFocus = true; this.detailsTextView.Name = "detailsTextView"; this.GtkScrolledWindow.Add (this.detailsTextView); this.expander.Add (this.GtkScrolledWindow); this.expanderLabel = new global::Gtk.Label (); this.expanderLabel.Name = "expanderLabel"; this.expanderLabel.LabelProp = "Details"; this.expanderLabel.UseUnderline = true; this.expander.LabelWidget = this.expanderLabel; this.vbox3.Add (this.expander); global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(this.vbox3[this.expander])); w6.Position = 1; this.hbox1.Add (this.vbox3); global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.vbox3])); w7.Position = 1; w1.Add (this.hbox1); global::Gtk.Box.BoxChild w8 = ((global::Gtk.Box.BoxChild)(w1[this.hbox1])); w8.Position = 0; // Internal child MonoDevelop.Ide.Gui.Dialogs.ErrorDialog.ActionArea global::Gtk.HButtonBox w9 = this.ActionArea; w9.Name = "dialog1_ActionArea"; w9.Spacing = 10; w9.BorderWidth = ((uint)(5)); w9.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.okButton = new global::Gtk.Button (); this.okButton.CanDefault = true; this.okButton.CanFocus = true; this.okButton.Name = "okButton"; this.okButton.UseStock = true; this.okButton.UseUnderline = true; this.okButton.Label = "gtk-ok"; this.AddActionWidget (this.okButton, -5); global::Gtk.ButtonBox.ButtonBoxChild w10 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w9[this.okButton])); w10.Expand = false; w10.Fill = false; if ((this.Child != null)) { this.Child.ShowAll (); } this.DefaultWidth = 624; this.DefaultHeight = 142; this.Show (); this.expander.Activated += new global::System.EventHandler (this.OnExpander1Activated); this.okButton.Clicked += new global::System.EventHandler (this.OnOkButtonClicked); } #endregion } }