Workaround for aftercaptureform check issue

This commit is contained in:
Jaex 2014-01-17 17:32:32 +02:00
parent f3d65825b0
commit 9df1827b93
8 changed files with 56 additions and 8 deletions

View file

@ -40,7 +40,6 @@ private void InitializeComponent()
//
this.lvAfterCaptureTasks.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.lvAfterCaptureTasks.CheckBoxes = true;
this.lvAfterCaptureTasks.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.chAfterCapture});
this.lvAfterCaptureTasks.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(162)));
@ -53,6 +52,7 @@ private void InitializeComponent()
this.lvAfterCaptureTasks.TabIndex = 0;
this.lvAfterCaptureTasks.UseCompatibleStateImageBehavior = false;
this.lvAfterCaptureTasks.View = System.Windows.Forms.View.Details;
this.lvAfterCaptureTasks.ItemSelectionChanged += new System.Windows.Forms.ListViewItemSelectionChangedEventHandler(this.lvAfterCaptureTasks_ItemSelectionChanged);
this.lvAfterCaptureTasks.MouseDown += new System.Windows.Forms.MouseEventHandler(this.lvAfterCaptureTasks_MouseDown);
//
// chAfterCapture

View file

@ -40,6 +40,12 @@ public AfterCaptureForm(Image img, AfterCaptureTasks afterCaptureTasks)
{
InitializeComponent();
Icon = ShareXResources.Icon;
ImageList imageList = new ImageList { ColorDepth = ColorDepth.Depth32Bit };
imageList.Images.Add(Resources.checkbox_uncheck);
imageList.Images.Add(Resources.checkbox_check);
lvAfterCaptureTasks.SmallImageList = imageList;
AfterCaptureTasks = afterCaptureTasks;
AddAfterCaptureItems(AfterCaptureTasks);
pbImage.LoadImage(img);
@ -52,12 +58,22 @@ private void AddAfterCaptureItems(AfterCaptureTasks afterCaptureTasks)
for (int i = 1; i < enums.Length; i++)
{
ListViewItem lvi = new ListViewItem(enums[i].GetDescription());
lvi.Checked = afterCaptureTasks.HasFlag(1 << (i - 1));
CheckItem(lvi, afterCaptureTasks.HasFlag(1 << (i - 1)));
lvi.Tag = enums[i];
lvAfterCaptureTasks.Items.Add(lvi);
}
}
private void CheckItem(ListViewItem lvi, bool check)
{
lvi.ImageIndex = check ? 1 : 0;
}
private bool IsChecked(ListViewItem lvi)
{
return lvi.ImageIndex == 1;
}
private AfterCaptureTasks GetAfterCaptureTasks()
{
AfterCaptureTasks afterCaptureTasks = AfterCaptureTasks.None;
@ -66,7 +82,7 @@ private AfterCaptureTasks GetAfterCaptureTasks()
{
ListViewItem lvi = lvAfterCaptureTasks.Items[i];
if (lvi.Checked)
if (IsChecked(lvi))
{
afterCaptureTasks = afterCaptureTasks.Add((AfterCaptureTasks)(1 << i));
}
@ -82,15 +98,20 @@ private void Close(AfterCaptureFormResult result)
Close();
}
private void lvAfterCaptureTasks_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
{
e.Item.Selected = false;
}
private void lvAfterCaptureTasks_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left || e.Button == MouseButtons.Right)
if (e.Button == MouseButtons.Left)
{
ListViewItem lvi = lvAfterCaptureTasks.GetItemAt(e.X, e.Y);
if (lvi != null)
{
lvi.Checked = !lvi.Checked;
CheckItem(lvi, !IsChecked(lvi));
}
}
}

View file

@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.34003
// Runtime Version:4.0.30319.18408
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
@ -219,6 +219,26 @@ public static System.IO.UnmanagedMemoryStream CameraSound {
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
public static System.Drawing.Bitmap checkbox_check {
get {
object obj = ResourceManager.GetObject("checkbox_check", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
public static System.Drawing.Bitmap checkbox_uncheck {
get {
object obj = ResourceManager.GetObject("checkbox_uncheck", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>

View file

@ -334,4 +334,10 @@
<data name="ru" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ru.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="checkbox_check" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\checkbox_check.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="checkbox_uncheck" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\checkbox_uncheck.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

Binary file not shown.

After

Width:  |  Height:  |  Size: 446 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 366 B

View file

@ -425,6 +425,8 @@
<None Include="LICENSE.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Resources\checkbox_uncheck.png" />
<None Include="Resources\checkbox_check.png" />
<Content Include="ShareX_Icon.ico" />
<None Include="Resources\ru.png" />
<None Include="Resources\keyboard--pencil.png" />

View file

@ -36,8 +36,7 @@ public class ImageListManager
public ImageListManager(ListView listView)
{
il = new ImageList();
il.ColorDepth = ColorDepth.Depth32Bit;
il = new ImageList { ColorDepth = ColorDepth.Depth32Bit };
listView.SmallImageList = il;
}