Skip to content

Commit d16e8be

Browse files
committed
Improve cliloc editing.
- Add "Next free" button when adding new cliloc entry. - Add entry will now use current selection when searching for next free number or will seach starting from the number user inputs in the text box. - Add tiledata import preview form.
1 parent a5826cd commit d16e8be

10 files changed

Lines changed: 884 additions & 83 deletions
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
// /***************************************************************************
2+
// *
3+
// * $Author: Turley
4+
// *
5+
// * "THE BEER-WARE LICENSE"
6+
// * As long as you retain this notice you can do whatever you want with
7+
// * this stuff. If we meet some day, and you think this stuff is worth it,
8+
// * you can buy me a beer in return.
9+
// *
10+
// ***************************************************************************/
11+
12+
using UoFiddler.Controls.Forms;
13+
14+
namespace UoFiddler.Controls.Classes
15+
{
16+
public class TileDataSyncChange
17+
{
18+
public TileDataSyncKind Kind { get; set; }
19+
public int Number { get; set; }
20+
public string OldText { get; set; }
21+
public string NewText { get; set; }
22+
}
23+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
// /***************************************************************************
2+
// *
3+
// * $Author: Turley
4+
// *
5+
// * "THE BEER-WARE LICENSE"
6+
// * As long as you retain this notice you can do whatever you want with
7+
// * this stuff. If we meet some day, and you think this stuff is worth it,
8+
// * you can buy me a beer in return.
9+
// *
10+
// ***************************************************************************/
11+
12+
namespace UoFiddler.Controls.Classes
13+
{
14+
public enum TileDataSyncKind
15+
{
16+
Add,
17+
Update,
18+
Remove
19+
}
20+
}

UoFiddler.Controls/Forms/ClilocAddForm.Designer.cs

Lines changed: 61 additions & 47 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

UoFiddler.Controls/Forms/ClilocAddForm.cs

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,9 @@ public partial class ClilocAddForm : Form
1919
{
2020
private readonly Func<int, bool> _isNumberFreeAction;
2121
private readonly Action<int> _addEntryAction;
22+
private readonly Func<int?, int> _getNextFreeAction;
2223

23-
public ClilocAddForm(Func<int, bool> isNumberFreeAction, Action<int> addEntryAction)
24+
public ClilocAddForm(Func<int, bool> isNumberFreeAction, Action<int> addEntryAction, Func<int?, int> getNextFreeAction, int? initialNumber = null)
2425
{
2526
InitializeComponent();
2627

@@ -29,6 +30,13 @@ public ClilocAddForm(Func<int, bool> isNumberFreeAction, Action<int> addEntryAct
2930

3031
_isNumberFreeAction = isNumberFreeAction;
3132
_addEntryAction = addEntryAction;
33+
_getNextFreeAction = getNextFreeAction;
34+
35+
if (initialNumber.HasValue)
36+
{
37+
NumberBox.Text = initialNumber.Value.ToString();
38+
NumberBox.SelectAll();
39+
}
3240
}
3341

3442
private void OnClickAdd(object sender, EventArgs e)
@@ -54,6 +62,17 @@ private void OnClickAdd(object sender, EventArgs e)
5462
}
5563
}
5664

65+
private void OnClickNextFree(object sender, EventArgs e)
66+
{
67+
int? start = null;
68+
if (int.TryParse(NumberBox.Text, System.Globalization.NumberStyles.Integer, null, out int parsed))
69+
{
70+
start = parsed;
71+
}
72+
73+
NumberBox.Text = _getNextFreeAction(start).ToString();
74+
}
75+
5776
private void OnClickCancel(object sender, EventArgs e)
5877
{
5978
Close();

UoFiddler.Controls/Forms/ClilocAddForm.resx

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,64 @@
1+
<?xml version="1.0" encoding="utf-8"?>
12
<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">

0 commit comments

Comments
 (0)