using System; using System.Windows.Forms; using FastReport.Utils; #if !MONO using FastReport.DevComponents.DotNetBar.Controls; #endif namespace FastReport.Design.ToolWindows { /// /// Represents the "Messages" window. /// /// /// To get this window, use the following code: /// /// Designer designer; /// MessagesWindow window = designer.Plugins.FindType("MessagesWindow") as MessagesWindow; /// /// public class MessagesWindow : ToolWindowBase { #if !MONO private ListViewEx list; #else private ListView list; #endif private void FList_DoubleClick(object sender, EventArgs e) { ListViewItem item = list.SelectedItems[0]; if (item.SubItems.Count > 1) { Designer.ActiveReportTab.SwitchToCode(); Designer.ActiveReport.CodeHelper.Locate((int)item.SubItems[1].Tag, (int)item.SubItems[2].Tag); } else { Base obj = Designer.ActiveReport.FindObject((string)item.Tag); if (obj != null) { Designer.SelectedObjects.Clear(); Designer.SelectedObjects.Add(obj); Designer.SelectionChanged(null); } } } /// public override void Localize() { MyRes res = new MyRes("Designer,ToolWindow,Messages"); Text = res.Get(""); list.Columns.Clear(); list.Columns.Add(res.Get("Description")); list.Columns.Add(res.Get("Line")); list.Columns.Add(res.Get("Column")); list.Columns[0].Width = (600); } /// /// Clears the message list. /// public void ClearMessages() { list.Items.Clear(); } /// /// Adds a new message. /// /// The message text. /// The name of object related to a message. public void AddMessage(string description, string objName) { ListViewItem item = new ListViewItem(); item.Text = description; item.Tag = objName; list.Items.Add(item); } /// /// Adds a new script-related message. /// /// The message text. /// The line of the script. /// The column of the script. public void AddMessage(string description, int line, int column) { ListViewItem item = new ListViewItem(); item.Text = description; ListViewItem.ListViewSubItem subItem = new ListViewItem.ListViewSubItem(); if (line != -1) subItem.Text = line.ToString(); subItem.Tag = line; item.SubItems.Add(subItem); subItem = new ListViewItem.ListViewSubItem(); if (column != -1) subItem.Text = column.ToString(); subItem.Tag = column; item.SubItems.Add(subItem); list.Items.Add(item); } /// public override void UpdateDpiDependencies() { base.UpdateDpiDependencies(); Image = Designer.GetImage(70); #if !MONO ImageIndex = 70; #endif } /// /// Initializes a new instance of the class with default settings. /// /// The report designer. public MessagesWindow(Designer designer) : base(designer) { Name = "MessagesWindow"; #if !MONO list = new ListViewEx(); #else list = new ListView(); #endif list.Dock = DockStyle.Fill; list.BorderStyle = BorderStyle.None; list.FullRowSelect = true; list.View = View.Details; list.HideSelection = false; list.DoubleClick += new EventHandler(FList_DoubleClick); #if !MONO ParentControl.Controls.Add(list); #else Controls.Add(list); #endif Localize(); UpdateDpiDependencies(); } } }