Skip to content

Commit 3fbd893

Browse files
committed
Correction to display Tab list in CSV.
1 parent fdf5213 commit 3fbd893

File tree

1 file changed

+87
-94
lines changed

1 file changed

+87
-94
lines changed

NotepadStateLibrary/NotepadStateLibrary/NPWindowState.cs

Lines changed: 87 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,22 @@ public class NPWindowState
4848
/// </summary>
4949
public List<byte[]> Tabs { get; private set; }
5050
/// <summary>
51+
///
52+
/// </summary>
53+
public string TabsList
54+
{
55+
get
56+
{
57+
List<string> gsList = new List<string>();
58+
foreach (var t in Tabs)
59+
{
60+
gsList.Add((new Guid(t)).ToString());
61+
62+
}
63+
return String.Join(", ", gsList.ToArray());
64+
}
65+
}
66+
/// <summary>
5167
/// Top left X/Y coordinates
5268
/// </summary>
5369
public WindowXY TopLeftCoords { get; private set; }
@@ -170,108 +186,27 @@ public void ChangeActiveTab(int NewActiveTab)
170186
/// <summary>
171187
///
172188
/// </summary>
173-
/// <param name="NewTabs"></param>
174-
public void WriteTabList(List<byte[]> NewTabs)
189+
/// <param name="newTabs"></param>
190+
public void WriteTabList(List<byte[]> newTabs)
175191
{
176-
using (MemoryStream stream = new MemoryStream(bytes))
177-
{
178-
using (MemoryStream outStream = new MemoryStream())
179-
{
180-
using (BinaryReader reader = new BinaryReader(stream))
181-
{
182-
using (BinaryWriter writer = new BinaryWriter(outStream))
183-
{
184-
var hdr = reader.ReadBytes(2);
185-
writer.Write(hdr);
186-
string hdrType = Encoding.ASCII.GetString(hdr);
187-
if (hdrType == "NP")
188-
{
189-
CRC32Check c = new CRC32Check();
192+
NumberTabs = (ulong)newTabs.Count;
193+
Tabs = newTabs;
190194

191-
reader.ReadLEB128Unsigned();
192-
writer.Write(SequenceNumber.WriteLEB128Unsigned());
193-
c.AddBytes(SequenceNumber);
194-
195-
reader.ReadLEB128Unsigned();
196-
writer.Write(BytesToCRC);
197-
c.AddBytes(BytesToCRC);
198-
199-
200-
var delim = reader.ReadBytes(1);
201-
writer.Write(delim);
202-
c.AddBytes(delim);
203-
204-
var OriginalNumberTabs = reader.ReadLEB128Unsigned();
205-
NumberTabs = (ulong)NewTabs.Count;
206-
207-
writer.Write(NumberTabs.WriteLEB128Unsigned());
208-
c.AddBytes(NumberTabs);
209-
210-
reader.ReadBytes((int)OriginalNumberTabs * 16);
211-
212-
for (int x = 0; x < (int)NumberTabs; x++)
213-
{
214-
writer.Write(Tabs[x]);
215-
c.AddBytes(Tabs[x]);
216-
}
217-
218-
reader.ReadLEB128Unsigned();
219-
writer.Write(ActiveTab.WriteLEB128Unsigned());
220-
c.AddBytes(ActiveTab);
221-
222-
var tlc1 = reader.ReadUInt32();
223-
writer.Write(tlc1);
224-
c.AddBytes(tlc1);
225-
var tlc2 = reader.ReadUInt32();
226-
writer.Write(tlc2);
227-
c.AddBytes(tlc2);
228-
229-
TopLeftCoords = new WindowXY((int)tlc1, (int)tlc2);
230-
231-
232-
var brc3 = reader.ReadUInt32();
233-
writer.Write(brc3);
234-
c.AddBytes(brc3);
235-
var brc4 = reader.ReadUInt32();
236-
writer.Write(brc4);
237-
c.AddBytes(brc4);
238-
239-
BottomRightCoords = new WindowXY((int)brc3, (int)brc4);
240-
241-
242-
var wsc5 = reader.ReadUInt32();
243-
writer.Write(wsc5);
244-
c.AddBytes(wsc5);
245-
var wsc6 = reader.ReadUInt32();
246-
writer.Write(wsc6);
247-
c.AddBytes(wsc6);
248-
249-
WindowSize = new WindowXY((int)wsc5, (int)wsc6);
250-
251-
252-
var delim2 = reader.ReadBytes(1);
253-
writer.Write(delim2);
254-
c.AddBytes(delim2);
255-
256-
reader.ReadBytes(4);
257-
CRC32Stored = c.CRC32;
258-
writer.Write(CRC32Stored);
259-
CRC32Calculated = c.CRC32;
260-
}
261-
}
262-
}
263-
}
264-
}
195+
Save();
265196
}
266197

267198
/// <summary>
268199
///
269200
/// </summary>
270-
/// <param name="TopLeft"></param>
271-
/// <param name="BottomRight"></param>
272-
public void Resize(WindowXY TopLeft, WindowXY BottomRight)
201+
/// <param name="topLeft"></param>
202+
/// <param name="bottomRight"></param>
203+
public void Resize(WindowXY topLeft, WindowXY bottomRight)
273204
{
274205
//This should be the main one
206+
TopLeftCoords = topLeft;
207+
BottomRightCoords = bottomRight;
208+
209+
Save();
275210
}
276211

277212
/// <summary>
@@ -363,6 +298,64 @@ private void ParseBytes()
363298
}
364299
}
365300
}
366-
}
301+
}
302+
303+
private void Save()
304+
{
305+
using (MemoryStream outStream = new MemoryStream())
306+
{
307+
using (BinaryWriter writer = new BinaryWriter(outStream))
308+
{
309+
writer.Write([0x4E, 0x50]);
310+
311+
CRC32Check c = new CRC32Check();
312+
writer.Write(SequenceNumber.WriteLEB128Unsigned());
313+
c.AddBytes(SequenceNumber);
314+
315+
writer.Write(BytesToCRC.WriteLEB128Unsigned());
316+
c.AddBytes(BytesToCRC);
317+
318+
writer.Write([0x00]);
319+
c.AddBytes([0x00]);
320+
321+
writer.Write(NumberTabs.WriteLEB128Unsigned());
322+
c.AddBytes(NumberTabs);
323+
324+
foreach(var t in Tabs)
325+
{
326+
writer.Write(t);
327+
c.AddBytes(t);
328+
}
329+
330+
writer.Write(ActiveTab.WriteLEB128Unsigned());
331+
c.AddBytes(ActiveTab);
332+
333+
writer.Write(TopLeftCoords.X);
334+
c.AddBytes((uint)TopLeftCoords.X);
335+
336+
writer.Write(TopLeftCoords.Y);
337+
c.AddBytes((uint)TopLeftCoords.Y);
338+
339+
writer.Write(BottomRightCoords.X);
340+
c.AddBytes((uint)BottomRightCoords.X);
341+
342+
writer.Write(BottomRightCoords.Y);
343+
c.AddBytes((uint)BottomRightCoords.Y);
344+
345+
writer.Write(WindowSize.X);
346+
c.AddBytes((uint)WindowSize.X);
347+
348+
writer.Write(WindowSize.Y);
349+
c.AddBytes((uint)WindowSize.Y);
350+
351+
writer.Write([0x00]);
352+
c.AddBytes([0x00]);
353+
354+
writer.Write(c.CRC32);
355+
356+
bytes = outStream.ToArray();
357+
}
358+
}
359+
}
367360
}
368361
}

0 commit comments

Comments
 (0)