Skip to content

Commit e99d912

Browse files
committed
WicNetExplorer: added drag & drop support, fix PDF race condition for first image.
1 parent 1f04bc2 commit e99d912

File tree

6 files changed

+113
-31
lines changed

6 files changed

+113
-31
lines changed

WicNet/Utilities/EventProvider.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System;
22
using System.ComponentModel;
3+
using System.Runtime.CompilerServices;
34
using System.Runtime.InteropServices;
45
using System.Threading;
56

@@ -20,7 +21,7 @@ public EventProvider(Guid id)
2021
throw new Win32Exception(hr);
2122
}
2223

23-
public bool WriteMessageEvent(string text, byte level = 0, long keywords = 0) => EventWriteString(_handle, level, keywords, text) == 0;
24+
public bool WriteMessageEvent(string text, byte level = 0, long keywords = 0, [CallerMemberName] string method = null) => EventWriteString(_handle, level, keywords, method + ": " + text) == 0;
2425

2526
public void Dispose()
2627
{

WicNetExplorer/ImageForm.cs

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -308,10 +308,7 @@ private ID2DControl CreateD2DControl()
308308
if (!IOUtilities.PathIsFile(fileName))
309309
return null;
310310

311-
var imageForm = new ImageForm
312-
{
313-
MdiParent = parent
314-
};
311+
var imageForm = new ImageForm { MdiParent = parent };
315312
if (!imageForm.LoadFile(fileName))
316313
{
317314
imageForm.Close();
@@ -338,10 +335,7 @@ protected override void OnResize(EventArgs e)
338335
if (_svgDocument != null)
339336
{
340337
_svgDocument.Object.SetViewportSize(new D2D_SIZE_F(Width, Height));
341-
_d2d?.WithDeviceContext(dc =>
342-
{
343-
DoDraw(dc);
344-
});
338+
_d2d?.WithDeviceContext(DoDraw);
345339
}
346340
}
347341

@@ -446,6 +440,8 @@ protected async Task LoadPdfDocument(string fileName)
446440
Controls.Add(_previousPage);
447441
SetCaptionButtons();
448442
}
443+
444+
_d2d?.Redraw();
449445
}
450446

451447
protected virtual void UpdatePage(int delta)

WicNetExplorer/Main.Designer.cs

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

WicNetExplorer/Main.cs

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public Main()
2323
gCCollectToolStripMenuItem.Visible = false;
2424
#endif
2525

26-
Task.Run(() => Settings.Current.CleanRecentFiles());
26+
Task.Run(Settings.Current.CleanRecentFiles);
2727
}
2828

2929
public ImageForm? ActiveImageForm => ActiveMdiChild as ImageForm;
@@ -51,6 +51,30 @@ private void OpenFile(string? fileName = null)
5151
}
5252
}
5353

54+
protected override void OnDragOver(DragEventArgs drgevent)
55+
{
56+
base.OnDragOver(drgevent);
57+
drgevent.Effect = DragDropEffects.Move;
58+
}
59+
60+
protected override void OnDragDrop(DragEventArgs drgevent)
61+
{
62+
base.OnDragDrop(drgevent);
63+
if (drgevent.Data?.GetDataPresent(DataFormats.FileDrop) == true)
64+
{
65+
if (drgevent.Data.GetData(DataFormats.FileDrop) is string[] files && files.Length > 0)
66+
{
67+
foreach (var file in files)
68+
{
69+
if (IOUtilities.PathIsFile(file))
70+
{
71+
OpenFile(file);
72+
}
73+
}
74+
}
75+
}
76+
}
77+
5478
protected override void OnKeyDown(KeyEventArgs e)
5579
{
5680
base.OnKeyDown(e);
@@ -246,7 +270,7 @@ private void HonorColorContextsToolStripMenuItem_Click(object sender, EventArgs
246270

247271
private void ShowWicComponentsToolStripMenuItem_Click(object sender, EventArgs e)
248272
{
249-
var dlg = new CollectionForm(WicImagingComponent.AllComponents.Select(c => ImagingComponentModel.From(c)).OrderBy(e => e.GetType().Name).ThenBy(e => e.FriendlyName))
273+
var dlg = new CollectionForm(WicImagingComponent.AllComponents.Select(ImagingComponentModel.From).OrderBy(e => e.GetType().Name).ThenBy(e => e.FriendlyName))
250274
{
251275
Text = Resources.Components
252276
};

WicNetExplorer/Main.resx

Lines changed: 79 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,64 @@
1-
<root>
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<root>
3+
<!--
4+
Microsoft ResX Schema
5+
6+
Version 2.0
7+
8+
The primary goals of this format is to allow a simple XML format
9+
that is mostly human readable. The generation and parsing of the
10+
various data types are done through the TypeConverter classes
11+
associated with the data types.
12+
13+
Example:
14+
15+
... ado.net/XML headers & schema ...
16+
<resheader name="resmimetype">text/microsoft-resx</resheader>
17+
<resheader name="version">2.0</resheader>
18+
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
19+
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
20+
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
21+
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
22+
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
23+
<value>[base64 mime encoded serialized .NET Framework object]</value>
24+
</data>
25+
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
26+
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
27+
<comment>This is a comment</comment>
28+
</data>
29+
30+
There are any number of "resheader" rows that contain simple
31+
name/value pairs.
32+
33+
Each data row contains a name, and value. The row also contains a
34+
type or mimetype. Type corresponds to a .NET class that support
35+
text/value conversion through the TypeConverter architecture.
36+
Classes that don't support this are serialized and stored with the
37+
mimetype set.
38+
39+
The mimetype is used for serialized objects, and tells the
40+
ResXResourceReader how to depersist the object. This is currently not
41+
extensible. For a given mimetype the value must be set accordingly:
42+
43+
Note - application/x-microsoft.net.object.binary.base64 is the format
44+
that the ResXResourceWriter will generate, however the reader can
45+
read any of the formats listed below.
46+
47+
mimetype: application/x-microsoft.net.object.binary.base64
48+
value : The object must be serialized with
49+
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
50+
: and then encoded with base64 encoding.
51+
52+
mimetype: application/x-microsoft.net.object.soap.base64
53+
value : The object must be serialized with
54+
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
55+
: and then encoded with base64 encoding.
56+
57+
mimetype: application/x-microsoft.net.object.bytearray.base64
58+
value : The object must be serialized into a byte array
59+
: using a System.ComponentModel.TypeConverter
60+
: and then encoded with base64 encoding.
61+
-->
262
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
363
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
464
<xsd:element name="root" msdata:IsDataSet="true">
@@ -66,7 +126,7 @@
66126
</data>
67127
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
68128
<data name="toolStripMenuItemOpen.Size" type="System.Drawing.Size, System.Drawing">
69-
<value>180, 22</value>
129+
<value>155, 22</value>
70130
</data>
71131
<data name="toolStripMenuItemOpen.Text" xml:space="preserve">
72132
<value>&amp;Open...</value>
@@ -81,46 +141,46 @@
81141
<value>Clear Recent List</value>
82142
</data>
83143
<data name="openRecentToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
84-
<value>180, 22</value>
144+
<value>155, 22</value>
85145
</data>
86146
<data name="openRecentToolStripMenuItem.Text" xml:space="preserve">
87147
<value>Open Recent</value>
88148
</data>
89149
<data name="toolStripSeparator1.Size" type="System.Drawing.Size, System.Drawing">
90-
<value>177, 6</value>
150+
<value>152, 6</value>
91151
</data>
92152
<data name="saveToolStripMenuItem.ShortcutKeys" type="System.Windows.Forms.Keys, System.Windows.Forms">
93153
<value>Ctrl+S</value>
94154
</data>
95155
<data name="saveToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
96-
<value>180, 22</value>
156+
<value>155, 22</value>
97157
</data>
98158
<data name="saveToolStripMenuItem.Text" xml:space="preserve">
99159
<value>&amp;Save</value>
100160
</data>
101161
<data name="saveAsToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
102-
<value>180, 22</value>
162+
<value>155, 22</value>
103163
</data>
104164
<data name="saveAsToolStripMenuItem.Text" xml:space="preserve">
105165
<value>Save &amp;As...</value>
106166
</data>
107167
<data name="toolStripSeparator3.Size" type="System.Drawing.Size, System.Drawing">
108-
<value>177, 6</value>
168+
<value>152, 6</value>
109169
</data>
110170
<data name="closeToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
111-
<value>180, 22</value>
171+
<value>155, 22</value>
112172
</data>
113173
<data name="closeToolStripMenuItem.Text" xml:space="preserve">
114174
<value>&amp;Close</value>
115175
</data>
116176
<data name="toolStripSeparator2.Size" type="System.Drawing.Size, System.Drawing">
117-
<value>177, 6</value>
177+
<value>152, 6</value>
118178
</data>
119179
<data name="exitToolStripMenuItem.ShortcutKeys" type="System.Windows.Forms.Keys, System.Windows.Forms">
120180
<value>Alt+F4</value>
121181
</data>
122182
<data name="exitToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
123-
<value>180, 22</value>
183+
<value>155, 22</value>
124184
</data>
125185
<data name="exitToolStripMenuItem.Text" xml:space="preserve">
126186
<value>E&amp;xit</value>
@@ -198,43 +258,43 @@
198258
<value>&amp;Options</value>
199259
</data>
200260
<data name="showDecodableFileExtensionsToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
201-
<value>251, 22</value>
261+
<value>250, 22</value>
202262
</data>
203263
<data name="showDecodableFileExtensionsToolStripMenuItem.Text" xml:space="preserve">
204264
<value>Show Decodable File Extensions...</value>
205265
</data>
206266
<data name="showEncodableFileExtensionsToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
207-
<value>251, 22</value>
267+
<value>250, 22</value>
208268
</data>
209269
<data name="showEncodableFileExtensionsToolStripMenuItem.Text" xml:space="preserve">
210270
<value>Show Encodable File Extensions...</value>
211271
</data>
212272
<data name="showWicComponentsToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
213-
<value>251, 22</value>
273+
<value>250, 22</value>
214274
</data>
215275
<data name="showWicComponentsToolStripMenuItem.Text" xml:space="preserve">
216276
<value>Show All Wic Components...</value>
217277
</data>
218278
<data name="toolStripSeparator6.Size" type="System.Drawing.Size, System.Drawing">
219-
<value>248, 6</value>
279+
<value>247, 6</value>
220280
</data>
221281
<data name="showSystemInformationToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
222-
<value>251, 22</value>
282+
<value>250, 22</value>
223283
</data>
224284
<data name="showSystemInformationToolStripMenuItem.Text" xml:space="preserve">
225285
<value>Show System Information...</value>
226286
</data>
227287
<data name="toolStripSeparatorDebug.Size" type="System.Drawing.Size, System.Drawing">
228-
<value>248, 6</value>
288+
<value>247, 6</value>
229289
</data>
230290
<data name="gCCollectToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
231-
<value>251, 22</value>
291+
<value>250, 22</value>
232292
</data>
233293
<data name="gCCollectToolStripMenuItem.Text" xml:space="preserve">
234294
<value>GC Collect</value>
235295
</data>
236296
<data name="toolsToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
237-
<value>46, 20</value>
297+
<value>47, 20</value>
238298
</data>
239299
<data name="toolsToolStripMenuItem.Text" xml:space="preserve">
240300
<value>&amp;Tools</value>
@@ -264,7 +324,7 @@
264324
<value>&amp;Window</value>
265325
</data>
266326
<data name="aboutWicNetExplorerToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
267-
<value>204, 22</value>
327+
<value>203, 22</value>
268328
</data>
269329
<data name="aboutWicNetExplorerToolStripMenuItem.Text" xml:space="preserve">
270330
<value>&amp;About WicNet Explorer...</value>

WicNetExplorer/Properties/launchSettings.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"profiles": {
33
"WicNetExplorer": {
44
"commandName": "Project",
5-
"nativeDebugging": true
5+
"nativeDebugging": false
66
}
77
}
88
}

0 commit comments

Comments
 (0)