From ff5697950d6041d70270a1ed8b237a6af91f7d39 Mon Sep 17 00:00:00 2001 From: celeron533 Date: Wed, 23 Mar 2016 14:43:38 +0800 Subject: [PATCH] Enhanced menu: * show modified window only * hide removed window --- Stealth.Winform/MainFOrm.Designer.cs | 121 +++++++++++++++++---------- Stealth.Winform/MainFOrm.resx | 6 +- Stealth.Winform/MainForm.cs | 40 ++++++++- 3 files changed, 118 insertions(+), 49 deletions(-) diff --git a/Stealth.Winform/MainFOrm.Designer.cs b/Stealth.Winform/MainFOrm.Designer.cs index 5a1b3a0..d2e6479 100644 --- a/Stealth.Winform/MainFOrm.Designer.cs +++ b/Stealth.Winform/MainFOrm.Designer.cs @@ -29,10 +29,6 @@ protected override void Dispose(bool disposing) private void InitializeComponent() { this.dataGridView_WindowList = new System.Windows.Forms.DataGridView(); - this.hWnd = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.Title = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.isModified = new System.Windows.Forms.DataGridViewCheckBoxColumn(); - this.isRemoved = new System.Windows.Forms.DataGridViewCheckBoxColumn(); this.button_Refresh = new System.Windows.Forms.Button(); this.groupBox_WindowDetail = new System.Windows.Forms.GroupBox(); this.tableLayoutPanel_WindowDetail = new System.Windows.Forms.TableLayoutPanel(); @@ -48,8 +44,15 @@ private void InitializeComponent() this.menuStrip1 = new System.Windows.Forms.MenuStrip(); this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.viewToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.modifiedToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.removedToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.hWnd = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Title = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.isModified = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.isRemoved = new System.Windows.Forms.DataGridViewCheckBoxColumn(); ((System.ComponentModel.ISupportInitialize)(this.dataGridView_WindowList)).BeginInit(); this.groupBox_WindowDetail.SuspendLayout(); this.tableLayoutPanel_WindowDetail.SuspendLayout(); @@ -87,44 +90,6 @@ private void InitializeComponent() this.dataGridView_WindowList.TabIndex = 0; this.dataGridView_WindowList.RowEnter += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView_WindowList_RowEnter); // - // hWnd - // - this.hWnd.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells; - this.hWnd.DataPropertyName = "hWnd"; - this.hWnd.HeaderText = "hWnd"; - this.hWnd.Name = "hWnd"; - this.hWnd.ReadOnly = true; - this.hWnd.Width = 54; - // - // Title - // - this.Title.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells; - this.Title.DataPropertyName = "windowTitle"; - this.Title.HeaderText = "Title"; - this.Title.Name = "Title"; - this.Title.ReadOnly = true; - this.Title.Width = 60; - // - // isModified - // - this.isModified.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCellsExceptHeader; - this.isModified.DataPropertyName = "isModified"; - this.isModified.HeaderText = "Modified"; - this.isModified.MinimumWidth = 25; - this.isModified.Name = "isModified"; - this.isModified.ReadOnly = true; - this.isModified.Width = 25; - // - // isRemoved - // - this.isRemoved.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCellsExceptHeader; - this.isRemoved.DataPropertyName = "isRemoved"; - this.isRemoved.HeaderText = "Removed"; - this.isRemoved.MinimumWidth = 25; - this.isRemoved.Name = "isRemoved"; - this.isRemoved.ReadOnly = true; - this.isRemoved.Width = 25; - // // button_Refresh // this.button_Refresh.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); @@ -285,6 +250,7 @@ private void InitializeComponent() // this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.fileToolStripMenuItem, + this.viewToolStripMenuItem, this.helpToolStripMenuItem}); this.menuStrip1.Location = new System.Drawing.Point(0, 0); this.menuStrip1.Name = "menuStrip1"; @@ -307,6 +273,31 @@ private void InitializeComponent() this.exitToolStripMenuItem.Text = "E&xit"; this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click); // + // viewToolStripMenuItem + // + this.viewToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.modifiedToolStripMenuItem, + this.removedToolStripMenuItem}); + this.viewToolStripMenuItem.Name = "viewToolStripMenuItem"; + this.viewToolStripMenuItem.Size = new System.Drawing.Size(47, 21); + this.viewToolStripMenuItem.Text = "&View"; + // + // modifiedToolStripMenuItem + // + this.modifiedToolStripMenuItem.CheckOnClick = true; + this.modifiedToolStripMenuItem.Name = "modifiedToolStripMenuItem"; + this.modifiedToolStripMenuItem.Size = new System.Drawing.Size(194, 22); + this.modifiedToolStripMenuItem.Text = "Show Modified Only"; + this.modifiedToolStripMenuItem.Click += new System.EventHandler(this.modifiedToolStripMenuItem_Click); + // + // removedToolStripMenuItem + // + this.removedToolStripMenuItem.CheckOnClick = true; + this.removedToolStripMenuItem.Name = "removedToolStripMenuItem"; + this.removedToolStripMenuItem.Size = new System.Drawing.Size(194, 22); + this.removedToolStripMenuItem.Text = "Hide Removed"; + this.removedToolStripMenuItem.Click += new System.EventHandler(this.removedToolStripMenuItem_Click); + // // helpToolStripMenuItem // this.helpToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { @@ -322,6 +313,43 @@ private void InitializeComponent() this.aboutToolStripMenuItem.Text = "&About"; this.aboutToolStripMenuItem.Click += new System.EventHandler(this.aboutToolStripMenuItem_Click); // + // hWnd + // + this.hWnd.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells; + this.hWnd.DataPropertyName = "hWnd"; + this.hWnd.HeaderText = "hWnd"; + this.hWnd.Name = "hWnd"; + this.hWnd.ReadOnly = true; + this.hWnd.Width = 54; + // + // Title + // + this.Title.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; + this.Title.DataPropertyName = "windowTitle"; + this.Title.HeaderText = "Title"; + this.Title.Name = "Title"; + this.Title.ReadOnly = true; + // + // isModified + // + this.isModified.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCellsExceptHeader; + this.isModified.DataPropertyName = "isModified"; + this.isModified.HeaderText = "Modified"; + this.isModified.MinimumWidth = 25; + this.isModified.Name = "isModified"; + this.isModified.ReadOnly = true; + this.isModified.Width = 25; + // + // isRemoved + // + this.isRemoved.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCellsExceptHeader; + this.isRemoved.DataPropertyName = "isRemoved"; + this.isRemoved.HeaderText = "Removed"; + this.isRemoved.MinimumWidth = 25; + this.isRemoved.Name = "isRemoved"; + this.isRemoved.ReadOnly = true; + this.isRemoved.Width = 25; + // // MainForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); @@ -366,10 +394,13 @@ private void InitializeComponent() private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; private System.Windows.Forms.MenuStrip menuStrip1; private System.Windows.Forms.TextBox textBox_Filter; - private System.Windows.Forms.DataGridViewCheckBoxColumn isRemoved; - private System.Windows.Forms.DataGridViewCheckBoxColumn isModified; - private System.Windows.Forms.DataGridViewTextBoxColumn Title; + private System.Windows.Forms.ToolStripMenuItem viewToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem modifiedToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem removedToolStripMenuItem; private System.Windows.Forms.DataGridViewTextBoxColumn hWnd; + private System.Windows.Forms.DataGridViewTextBoxColumn Title; + private System.Windows.Forms.DataGridViewCheckBoxColumn isModified; + private System.Windows.Forms.DataGridViewCheckBoxColumn isRemoved; } } diff --git a/Stealth.Winform/MainFOrm.resx b/Stealth.Winform/MainFOrm.resx index 1b56a55..94e4766 100644 --- a/Stealth.Winform/MainFOrm.resx +++ b/Stealth.Winform/MainFOrm.resx @@ -129,6 +129,9 @@ True + + 17, 17 + True @@ -141,7 +144,4 @@ True - - 17, 17 - \ No newline at end of file diff --git a/Stealth.Winform/MainForm.cs b/Stealth.Winform/MainForm.cs index c6217b9..fd2b4ae 100644 --- a/Stealth.Winform/MainForm.cs +++ b/Stealth.Winform/MainForm.cs @@ -81,7 +81,32 @@ private void RefreshWindowList() //realtime window filter: by Title name private void WindowListFilter() { - filteredWindowList = windowList.Where(c => c.windowTitle.ToLower().Contains(textBox_Filter.Text.ToLower())).ToList(); + filteredWindowList = + //text filter + windowList.Where(c => c.windowTitle.ToLower().Contains(textBox_Filter.Text.ToLower())) + //show modified/removed + .Where(c => + //show modified only + !((modifiedToolStripMenuItem.Checked && !c.isModified) + //hide removed + || (removedToolStripMenuItem.Checked && c.isRemoved)) + + // logic: + //{ + // //show modified only + // if (modifiedToolStripMenuItem.Checked) + // if (!c.isModified) + // return false; + + // //hide removed + // if (removedToolStripMenuItem.Checked) + // if (c.isRemoved) + // return false; + // return true; + //} + ) + .ToList(); + dataGridView_WindowList.DataSource = filteredWindowList; } @@ -94,6 +119,7 @@ private void textBox_Filter_TextChanged(object sender, EventArgs e) //when user select a row private void dataGridView_WindowList_RowEnter(object sender, DataGridViewCellEventArgs e) { + //use hwnd to find from windowList selectedWindow = windowList.Find(c => c.hWnd == filteredWindowList[e.RowIndex].hWnd); textBox_Title.Text = selectedWindow.windowTitle; if (selectedWindow.isModified) @@ -162,6 +188,16 @@ private void exitToolStripMenuItem_Click(object sender, EventArgs e) Environment.Exit(0); } + private void modifiedToolStripMenuItem_Click(object sender, EventArgs e) + { + WindowListFilter(); + } + + private void removedToolStripMenuItem_Click(object sender, EventArgs e) + { + WindowListFilter(); + } + private void aboutToolStripMenuItem_Click(object sender, EventArgs e) { new AboutBox().ShowDialog(); @@ -169,6 +205,8 @@ private void aboutToolStripMenuItem_Click(object sender, EventArgs e) #endregion + + } public class WindowComparer : IEqualityComparer