Commit 937fc508 authored by keyongyu's avatar keyongyu

2.2.0.0

parent eab7049c
This diff is collapsed.
/*
* 由SharpDevelop创建。
* 用户: Acer
* 日期: 2014-10-22
* 时间: 19:16
*
*/
using System;
using System.IO;
using System.Drawing;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Text;
using WeifenLuo.WinFormsUI.Docking;
using FastColoredTextBoxNS;
using DataEditorX.Language;
namespace DataEditorX
{
/// <summary>
/// Description of CodeEditForm.
/// </summary>
public partial class CodeEditForm : DockContent
{
#region init
AutocompleteMenu popupMenu;
AutocompleteMenu popupMenu_fun;
AutocompleteMenu popupMenu_con;
string nowFile;
string title;
Dictionary<string,string> tooltipDic;
public CodeEditForm()
{
InitForm();
}
public CodeEditForm(string file)
{
InitForm();
Open(file);
}
void InitForm()
{
tooltipDic=new Dictionary<string, string>();
InitializeComponent();
Font ft=new Font(fctb.Font.Name,fctb.Font.Size/1.2f,FontStyle.Regular);
popupMenu = new FastColoredTextBoxNS.AutocompleteMenu(fctb);
popupMenu.MinFragmentLength = 2;
popupMenu.Items.Font = ft;
popupMenu.Items.MaximumSize = new System.Drawing.Size(200, 400);
popupMenu.Items.Width = 300;
popupMenu_fun = new FastColoredTextBoxNS.AutocompleteMenu(fctb);
popupMenu_fun.MinFragmentLength = 2;
popupMenu_fun.Items.Font = ft;
popupMenu_fun.Items.MaximumSize = new System.Drawing.Size(200, 400);
popupMenu_fun.Items.Width = 300;
popupMenu_con = new FastColoredTextBoxNS.AutocompleteMenu(fctb);
popupMenu_con.MinFragmentLength = 2;
popupMenu_con.Items.Font = ft;
popupMenu_con.Items.MaximumSize = new System.Drawing.Size(200, 400);
popupMenu_con.Items.Width = 300;
title=this.Text;
}
public void LoadXml(string xmlfile)
{
fctb.DescriptionFile=xmlfile;
}
#endregion
#region Open
public void Open(string file)
{
if(!string.IsNullOrEmpty(file))
{
if(!File.Exists(file))
{
FileStream fs=new FileStream(file, FileMode.Create);
fs.Close();
}
nowFile=file;
fctb.OpenFile(nowFile, new UTF8Encoding(false));
SetTitle();
}
}
void HideMenu()
{
if(this.MdiParent ==null)
return;
menuStrip1.Visible=false;
menuitem_file.Visible=false;
menuitem_file.Enabled=false;
}
void CodeEditFormLoad(object sender, EventArgs e)
{
HideMenu();
fctb.OnTextChangedDelayed(fctb.Range);
}
#endregion
#region doc map
void ShowMapToolStripMenuItemClick(object sender, EventArgs e)
{
if(menuitem_showmap.Checked)
{
documentMap1.Visible=false;
menuitem_showmap.Checked=false;
}else{
documentMap1.Visible=true;
menuitem_showmap.Checked=true;
}
}
#endregion
#region folding
void FctbTextChangedDelayed(object sender, TextChangedEventArgs e)
{
//delete all markers
fctb.Range.ClearFoldingMarkers();
var currentIndent = 0;
var lastNonEmptyLine = 0;
for (int i = 0; i < fctb.LinesCount; i++)
{
var line = fctb[i];
var spacesCount = line.StartSpacesCount;
if (spacesCount == line.Count) //empty line
continue;
if (currentIndent < spacesCount)
//append start folding marker
fctb[lastNonEmptyLine].FoldingStartMarker = "m" + currentIndent;
else if (currentIndent > spacesCount)
//append end folding marker
fctb[lastNonEmptyLine].FoldingEndMarker = "m" + spacesCount;
currentIndent = spacesCount;
lastNonEmptyLine = i;
}
}
#endregion
#region title
void SetTitle()
{
string name=fctb.GetLineText(0);
string str=title;
if(string.IsNullOrEmpty(nowFile))
str=title;
else
str=nowFile+name;
if(this.MdiParent !=null)
{
if(string.IsNullOrEmpty(nowFile))
this.Text=title;
else
this.Text=Path.GetFileName(nowFile);
this.MdiParent.Text=str;
}
else
this.Text=str;
}
void CodeEditFormEnter(object sender, EventArgs e)
{
SetTitle();
}
#endregion
#region tooltip
public void InitTooltip(Dictionary<string,string> tooltipDic
,AutocompleteItem[] funlist
,AutocompleteItem[] conlist)
{
this.tooltipDic=tooltipDic;
List<AutocompleteItem> items=new List<AutocompleteItem>();
items.AddRange(funlist);
items.AddRange(conlist);
popupMenu.Items.SetAutocompleteItems(items);
popupMenu_con.Items.SetAutocompleteItems(conlist);
popupMenu_fun.Items.SetAutocompleteItems(funlist);
}
string FindTooltip(string word)
{
string desc="";
foreach(string v in tooltipDic.Keys)
{
int t=v.IndexOf(".");
string k=v;
if(t>0)
k=v.Substring(t+1);
if(word==k)
desc=tooltipDic[v];
}
return desc;
}
void FctbToolTipNeeded(object sender, ToolTipNeededEventArgs e)
{
if (!string.IsNullOrEmpty(e.HoveredWord))
{
string desc=FindTooltip(e.HoveredWord);
if(!string.IsNullOrEmpty(desc))
{
e.ToolTipTitle = e.HoveredWord;
e.ToolTipText = desc;
}
}
}
#endregion
#region Key
void FctbKeyDown(object sender, KeyEventArgs e)
{
if (e.KeyData == (Keys.K | Keys.Control))
{
//forced show (MinFragmentLength will be ignored)
popupMenu_fun.Show(true);
e.Handled = true;
}else if (e.KeyData == (Keys.T | Keys.Control))
{
//forced show (MinFragmentLength will be ignored)
popupMenu_con.Show(true);
e.Handled = true;
}
}
#endregion
#region input
void FctbSelectionChanged(object sender, EventArgs e)
{
tb_input.Text=fctb.SelectedText;
}
void Menuitem_showinputClick(object sender, EventArgs e)
{
if(menuitem_showinput.Checked)
{
menuitem_showinput.Checked=false;
tb_input.Visible=false;
}
else{
menuitem_showinput.Checked=true;
tb_input.Visible=true;
}
}
#endregion
void SaveToolStripMenuItemClick(object sender, EventArgs e)
{
if(string.IsNullOrEmpty(nowFile))
{
using(SaveFileDialog sfdlg=new SaveFileDialog())
{
sfdlg.Filter="Script(*.lua)|*.lua|All Files(*.*)|*.*";
if(sfdlg.ShowDialog()==DialogResult.OK)
{
nowFile=sfdlg.FileName;
}
else
return;
}
}
fctb.SaveToFile(nowFile, new UTF8Encoding(false));
}
void SaveAsToolStripMenuItemClick(object sender, EventArgs e)
{
using(SaveFileDialog sfdlg=new SaveFileDialog())
{
sfdlg.Filter="Script(*.lua)|*.lua|All Files(*.*)|*.*";
if(sfdlg.ShowDialog()==DialogResult.OK)
{
nowFile=sfdlg.FileName;
}
else
return;
}
fctb.SaveToFile(nowFile, new UTF8Encoding(false));
}
void QuitToolStripMenuItemClick(object sender, EventArgs e)
{
this.Close();
}
void AboutToolStripMenuItemClick(object sender, EventArgs e)
{
MyMsg.Show(
LANG.GetMsg(LMSG.About)+"\t"+Application.ProductName+"\n"
+LANG.GetMsg(LMSG.Version)+"\t1.0.0.0\n"
+LANG.GetMsg(LMSG.Author)+"\t247321453\n"
+"Email:\t247321453@qq.com");
}
void Menuitem_openClick(object sender, EventArgs e)
{
using(OpenFileDialog sfdlg=new OpenFileDialog())
{
sfdlg.Filter="Script(*.lua)|*.lua|All Files(*.*)|*.*";
if(sfdlg.ShowDialog()==DialogResult.OK)
{
nowFile=sfdlg.FileName;
fctb.OpenFile(nowFile, new UTF8Encoding(false));
}
}
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>44</value>
</metadata>
</root>
\ No newline at end of file
/*
* 由SharpDevelop创建。
* 用户: Acer
* 日期: 2014-10-23
* 时间: 7:54
*
*/
using System;
using System.Collections.Generic;
using System.IO;
namespace DataEditorX.Core
{
/// <summary>
/// Description of DataConfig.
/// </summary>
public class DataConfig
{
public DataConfig()
{
InitMember();
}
public DataConfig(string datapath)
{
confrule=Path.Combine(datapath, "card-rule.txt");
confattribute=Path.Combine(datapath, "card-attribute.txt");
confrace=Path.Combine(datapath, "card-race.txt");
conflevel=Path.Combine(datapath, "card-level.txt");
confsetname=Path.Combine(datapath, "card-setname.txt");
conftype=Path.Combine(datapath, "card-type.txt");
confcategory=Path.Combine(datapath, "card-category.txt");
InitMember();
}
void InitMember()
{
dicCardRules=new Dictionary<long, string>();
dicSetnames=new Dictionary<long, string>();
dicCardTypes=new Dictionary<long, string>();
dicCardcategorys=new Dictionary<long, string>();
dicCardAttributes=new Dictionary<long, string>();
dicCardRaces=new Dictionary<long, string>();
dicCardLevels=new Dictionary<long, string>();
}
public DataConfig Clone()
{
DataConfig datacfg=new DataConfig();
datacfg.confrule = confrule;
datacfg.confattribute = confattribute;
datacfg.confrace = confrace;
datacfg.conflevel = conflevel;
datacfg.confsetname = confsetname;
datacfg.conftype = conftype;
datacfg.confcategory = confcategory;
datacfg.dicCardRules = CopyDic(dicCardRules);
datacfg.dicSetnames = CopyDic(dicSetnames);
datacfg.dicCardTypes = CopyDic(dicCardTypes);
datacfg.dicCardcategorys = CopyDic(dicCardcategorys);
datacfg.dicCardAttributes = CopyDic(dicCardAttributes);
datacfg.dicCardRaces = CopyDic(dicCardRaces);
datacfg.dicCardLevels = CopyDic(dicCardLevels);
return datacfg;
}
Dictionary<long, string> CopyDic(Dictionary<long, string> dic)
{
Dictionary<long, string> ndic=new Dictionary<long, string>();
foreach(long k in dic.Keys)
{
ndic.Add(k, dic[k]);
}
return ndic;
}
public void Init()
{
dicCardRules=DataManager.Read(confrule);
dicSetnames=DataManager.Read(confsetname);
dicCardTypes=DataManager.Read(conftype);
dicCardcategorys=DataManager.Read(confcategory);
dicCardAttributes=DataManager.Read(confattribute);
dicCardRaces=DataManager.Read(confrace);
dicCardLevels=DataManager.Read(conflevel);
}
public string confrule, confattribute, confrace, conflevel;
public string confsetname, conftype, confcategory;
public Dictionary<long, string> dicCardRules=null;
public Dictionary<long, string> dicCardAttributes=null;
public Dictionary<long, string> dicCardRaces=null;
public Dictionary<long, string> dicCardLevels=null;
public Dictionary<long, string> dicSetnames=null;
public Dictionary<long, string> dicCardTypes=null;
public Dictionary<long, string> dicCardcategorys=null;
}
}
......@@ -761,7 +761,7 @@ private void InitializeComponent()
this.pl_cardtype.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.pl_cardtype.AutoScroll = true;
this.pl_cardtype.Location = new System.Drawing.Point(548, 46);
this.pl_cardtype.Margin = new System.Windows.Forms.Padding(1, 2, 1, 2);
this.pl_cardtype.Margin = new System.Windows.Forms.Padding(1);
this.pl_cardtype.Name = "pl_cardtype";
this.pl_cardtype.Padding = new System.Windows.Forms.Padding(2);
this.pl_cardtype.Size = new System.Drawing.Size(310, 123);
......@@ -772,7 +772,7 @@ private void InitializeComponent()
this.pl_category.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.pl_category.AutoScroll = true;
this.pl_category.Location = new System.Drawing.Point(548, 189);
this.pl_category.Margin = new System.Windows.Forms.Padding(1, 2, 1, 2);
this.pl_category.Margin = new System.Windows.Forms.Padding(1);
this.pl_category.Name = "pl_category";
this.pl_category.Padding = new System.Windows.Forms.Padding(2);
this.pl_category.Size = new System.Drawing.Size(310, 174);
......@@ -850,6 +850,7 @@ private void InitializeComponent()
//
this.tb_setcode1.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.tb_setcode1.Location = new System.Drawing.Point(512, 158);
this.tb_setcode1.MaxLength = 4;
this.tb_setcode1.Name = "tb_setcode1";
this.tb_setcode1.Size = new System.Drawing.Size(30, 21);
this.tb_setcode1.TabIndex = 18;
......@@ -861,6 +862,7 @@ private void InitializeComponent()
//
this.tb_setcode2.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.tb_setcode2.Location = new System.Drawing.Point(512, 182);
this.tb_setcode2.MaxLength = 4;
this.tb_setcode2.Name = "tb_setcode2";
this.tb_setcode2.Size = new System.Drawing.Size(30, 21);
this.tb_setcode2.TabIndex = 18;
......@@ -872,6 +874,7 @@ private void InitializeComponent()
//
this.tb_setcode3.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.tb_setcode3.Location = new System.Drawing.Point(512, 207);
this.tb_setcode3.MaxLength = 4;
this.tb_setcode3.Name = "tb_setcode3";
this.tb_setcode3.Size = new System.Drawing.Size(30, 21);
this.tb_setcode3.TabIndex = 18;
......@@ -883,6 +886,7 @@ private void InitializeComponent()
//
this.tb_setcode4.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.tb_setcode4.Location = new System.Drawing.Point(512, 232);
this.tb_setcode4.MaxLength = 4;
this.tb_setcode4.Name = "tb_setcode4";
this.tb_setcode4.Size = new System.Drawing.Size(30, 21);
this.tb_setcode4.TabIndex = 18;
......
......@@ -47,15 +47,8 @@ public partial class DataEditForm : DockContent
bool setcodeIsedit4;
Image m_cover;
Dictionary<long, string> dicCardRules=null;
Dictionary<long, string> dicCardAttributes=null;
Dictionary<long, string> dicCardRaces=null;
Dictionary<long, string> dicCardLevels=null;
Dictionary<long, string> dicSetnames=null;
Dictionary<long, string> dicCardTypes=null;
Dictionary<long, string> dicCardcategorys=null;
string datapath, confrule, confattribute, confrace, conflevel;
string confsetname, conftype, confcategory, confcover;
DataConfig datacfg;
string datapath, confcover;
public string getNowCDB()
{
......@@ -86,6 +79,7 @@ public DataEditForm()
}
void Initialize()
{
datacfg=null;
complist=new Dictionary<long, Card>();
InitializeComponent();
title=this.Text;
......@@ -108,8 +102,13 @@ void DataEditFormLoad(object sender, EventArgs e)
#endif
SetTitle();
InitGameData();
tasker=new TaskHelper(datapath, bgWorker1, dicCardTypes, dicCardRaces);
if(datacfg==null){
datacfg=new DataConfig(datapath);
datacfg.Init();
}
tasker=new TaskHelper(datapath, bgWorker1,
datacfg.dicCardTypes,
datacfg.dicCardRaces);
SetCDB(nowCdbFile);
//设置空白卡片
......@@ -143,6 +142,7 @@ void HideMenu()
return;
menuStrip1.Visible=false;
menuitem_file.Visible=false;
menuitem_file.Enabled=false;
//this.SuspendLayout();
this.ResumeLayout(true);
foreach(Control c in this.Controls)
......@@ -208,16 +208,14 @@ void SetCDB(string cdb)
void InitPath(string datapath)
{
this.datapath=datapath;
confrule=Path.Combine(datapath, "card-rule.txt");
confattribute=Path.Combine(datapath, "card-attribute.txt");
confrace=Path.Combine(datapath, "card-race.txt");
conflevel=Path.Combine(datapath, "card-level.txt");
confsetname=Path.Combine(datapath, "card-setname.txt");
conftype=Path.Combine(datapath, "card-type.txt");
confcategory=Path.Combine(datapath, "card-category.txt");
confcover= Path.Combine(datapath, "cover.jpg");
IMAGEPATH=Path.Combine(Application.StartupPath,"Images");
if(File.Exists(confcover))
m_cover=Image.FromFile(confcover);
else
m_cover=null;
}
//保存dic
......@@ -236,31 +234,29 @@ void SaveDic(string file, Dictionary<long, string> dic)
}
//初始化游戏数据
public void InitGameData()
public void InitGameData(DataConfig dataconfig)
{
//初始化
dicCardRules=InitComboBox(cb_cardrule,confrule);
dicCardAttributes=InitComboBox(cb_cardattribute,confattribute);
dicCardRaces=InitComboBox(cb_cardrace, confrace);
dicCardLevels=InitComboBox(cb_cardlevel, conflevel);
dicSetnames=DataManager.Read(confsetname);
this.datacfg=dataconfig.Clone();
InitControl();
}
void InitControl()
{
InitComboBox(cb_cardrace, datacfg.dicCardRaces);
InitComboBox(cb_cardattribute, datacfg.dicCardAttributes);
InitComboBox(cb_cardrule, datacfg.dicCardRules);
InitComboBox(cb_cardlevel, datacfg.dicCardLevels);
//card types
InitCheckPanel(pl_cardtype, datacfg.dicCardTypes);
//card categorys
InitCheckPanel(pl_category, datacfg.dicCardcategorys);
//setname
string[] setnames=DataManager.GetValues(dicSetnames);
string[] setnames=DataManager.GetValues(datacfg.dicSetnames);
cb_setname1.Items.AddRange(setnames);
cb_setname2.Items.AddRange(setnames);
cb_setname3.Items.AddRange(setnames);
cb_setname4.Items.AddRange(setnames);
//card types
dicCardTypes=DataManager.Read(conftype);
InitCheckPanel(pl_cardtype, dicCardTypes);
//card categorys
dicCardcategorys=DataManager.Read(confcategory);
InitCheckPanel(pl_category, dicCardcategorys);
//
if(File.Exists(confcover))
m_cover=Image.FromFile(confcover);
else
m_cover=null;
}
//初始化FlowLayoutPanel
......@@ -289,13 +285,11 @@ void PanelOnCheckClick(object sender, EventArgs e)
}
//初始化ComboBox
Dictionary<long, string> InitComboBox(ComboBox cb, string file)
void InitComboBox(ComboBox cb, Dictionary<long, string> tempdic)
{
Dictionary<long, string> tempdic=DataManager.Read(file);
cb.Items.Clear();
cb.Items.AddRange(DataManager.GetValues(tempdic));
cb.SelectedIndex=0;
return tempdic;
}
//计算list最大行数
......@@ -335,10 +329,10 @@ void SetCard(Card c)
lb_scripttext.Items.AddRange(c.str);
tb_edittext.Text="";
SetSelect(dicCardRules,cb_cardrule,(long)c.ot);
SetSelect(dicCardAttributes,cb_cardattribute,(long)c.attribute);
SetSelect(dicCardLevels,cb_cardlevel,(long)(c.level&0xff));
SetSelect(dicCardRaces,cb_cardrace,c.race);
SetSelect(datacfg.dicCardRules,cb_cardrule,(long)c.ot);
SetSelect(datacfg.dicCardAttributes,cb_cardattribute,(long)c.attribute);
SetSelect(datacfg.dicCardLevels,cb_cardlevel,(long)(c.level&0xff));
SetSelect(datacfg.dicCardRaces,cb_cardrace,c.race);
long sc1=c.setcode&0xffff;
long sc2=(c.setcode>>0x10)&0xffff;
......@@ -348,10 +342,10 @@ void SetCard(Card c)
tb_setcode2.Text=sc2.ToString("x");
tb_setcode3.Text=sc3.ToString("x");
tb_setcode4.Text=sc4.ToString("x");
SetSelect(dicSetnames, cb_setname1, sc1);
SetSelect(dicSetnames, cb_setname2, sc2);
SetSelect(dicSetnames, cb_setname3, sc3);
SetSelect(dicSetnames, cb_setname4, sc4);
SetSelect(datacfg.dicSetnames, cb_setname1, sc1);
SetSelect(datacfg.dicSetnames, cb_setname2, sc2);
SetSelect(datacfg.dicSetnames, cb_setname3, sc3);
SetSelect(datacfg.dicSetnames, cb_setname4, sc4);
SetCheck(pl_cardtype,c.type);
SetCheck(pl_category,c.category);
......@@ -437,10 +431,10 @@ Card GetCard()
c.desc=tb_cardtext.Text;
Array.Copy(strs,c.str, c.str.Length);
int.TryParse(GetSelect(dicCardRules,cb_cardrule),out c.ot);
int.TryParse(GetSelect(dicCardAttributes,cb_cardattribute),out c.attribute);
long.TryParse(GetSelect(dicCardLevels,cb_cardlevel),out c.level);
long.TryParse(GetSelect(dicCardRaces,cb_cardrace),out c.race);
int.TryParse(GetSelect(datacfg.dicCardRules,cb_cardrule),out c.ot);
int.TryParse(GetSelect(datacfg.dicCardAttributes,cb_cardattribute),out c.attribute);
long.TryParse(GetSelect(datacfg.dicCardLevels,cb_cardlevel),out c.level);
long.TryParse(GetSelect(datacfg.dicCardRaces,cb_cardrace),out c.race);
int.TryParse(tb_setcode1.Text, NumberStyles.HexNumber,null,out temp);
c.setcode =temp;
......@@ -624,6 +618,8 @@ void Tb_pageKeyPress(object sender, KeyPressEventArgs e)
//检查是否打开数据库
public bool Check()
{
if(datacfg == null)
return false;
if(File.Exists(nowCdbFile))
return true;
else
......@@ -1141,7 +1137,7 @@ void Menuitem_readimagesClick(object sender, EventArgs e)
//关闭
void Menuitem_quitClick(object sender, EventArgs e)
{
Application.Exit();
this.Close();
}
#endregion
......@@ -1222,7 +1218,7 @@ void Cb_setname2SelectedIndexChanged(object sender, EventArgs e)
if(setcodeIsedit2)
return;
setcodeIsedit2=true;
tb_setcode2.Text=GetSelectHex(dicSetnames, cb_setname2);
tb_setcode2.Text=GetSelectHex(datacfg.dicSetnames, cb_setname2);
setcodeIsedit2=false;
}
......@@ -1231,7 +1227,7 @@ void Cb_setname1SelectedIndexChanged(object sender, EventArgs e)
if(setcodeIsedit1)
return;
setcodeIsedit1=true;
tb_setcode1.Text=GetSelectHex(dicSetnames, cb_setname1);
tb_setcode1.Text=GetSelectHex(datacfg.dicSetnames, cb_setname1);
setcodeIsedit1=false;
}
......@@ -1240,7 +1236,7 @@ void Cb_setname3SelectedIndexChanged(object sender, EventArgs e)
if(setcodeIsedit3)
return;
setcodeIsedit3=true;
tb_setcode3.Text=GetSelectHex(dicSetnames, cb_setname3);
tb_setcode3.Text=GetSelectHex(datacfg.dicSetnames, cb_setname3);
setcodeIsedit3=false;
}
......@@ -1249,7 +1245,7 @@ void Cb_setname4SelectedIndexChanged(object sender, EventArgs e)
if(setcodeIsedit4)
return;
setcodeIsedit4=true;
tb_setcode4.Text=GetSelectHex(dicSetnames, cb_setname4);
tb_setcode4.Text=GetSelectHex(datacfg.dicSetnames, cb_setname4);
setcodeIsedit4=false;
}
......@@ -1260,7 +1256,7 @@ void Tb_setcode4TextChanged(object sender, EventArgs e)
setcodeIsedit4=true;
long temp;
long.TryParse(tb_setcode4.Text,NumberStyles.HexNumber, null ,out temp);
SetSelect(dicSetnames, cb_setname4, temp);
SetSelect(datacfg.dicSetnames, cb_setname4, temp);
setcodeIsedit4=false;
}
......@@ -1271,7 +1267,7 @@ void Tb_setcode3TextChanged(object sender, EventArgs e)
setcodeIsedit3=true;
long temp;
long.TryParse(tb_setcode3.Text,NumberStyles.HexNumber, null ,out temp);
SetSelect(dicSetnames, cb_setname3, temp);
SetSelect(datacfg.dicSetnames, cb_setname3, temp);
setcodeIsedit3=false;
}
......@@ -1282,7 +1278,7 @@ void Tb_setcode2TextChanged(object sender, EventArgs e)
setcodeIsedit2=true;
long temp;
long.TryParse(tb_setcode2.Text,NumberStyles.HexNumber, null ,out temp);
SetSelect(dicSetnames, cb_setname2, temp);
SetSelect(datacfg.dicSetnames, cb_setname2, temp);
setcodeIsedit2=false;
}
......@@ -1293,7 +1289,7 @@ void Tb_setcode1TextChanged(object sender, EventArgs e)
setcodeIsedit1=true;
long temp;
long.TryParse(tb_setcode1.Text,NumberStyles.HexNumber, null ,out temp);
SetSelect(dicSetnames, cb_setname1, temp);
SetSelect(datacfg.dicSetnames, cb_setname1, temp);
setcodeIsedit1=false;
}
#endregion
......@@ -1463,7 +1459,7 @@ void setImage(string id)
setImage(t);
}
void setImage(long id){
if(pl_image.BackgroundImage != null
if(pl_image.BackgroundImage != null
&& pl_image.BackgroundImage!=m_cover)
pl_image.BackgroundImage.Dispose();
Bitmap temp;
......
......@@ -43,6 +43,9 @@
<BaseIntermediateOutputPath>obj\</BaseIntermediateOutputPath>
</PropertyGroup>
<ItemGroup>
<Reference Include="FastColoredTextBox">
<HintPath>DLL\FastColoredTextBox.dll</HintPath>
</Reference>
<Reference Include="Microsoft.VisualBasic" />
<Reference Include="System" />
<Reference Include="System.Configuration" />
......@@ -58,6 +61,10 @@
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="CodeEditForm.cs" />
<Compile Include="CodeEditForm.Designer.cs">
<DependentUpon>CodeEditForm.cs</DependentUpon>
</Compile>
<Compile Include="Common\CheckUpdate.cs" />
<Compile Include="Common\DoubleContorl.cs" />
<Compile Include="Common\MyBitmap.cs" />
......@@ -67,6 +74,7 @@
<Compile Include="Core\CardRace.cs" />
<Compile Include="Core\CardType.cs" />
<Compile Include="Core\DataBase.cs" />
<Compile Include="Core\DataConfig.cs" />
<Compile Include="Core\DataManager.cs" />
<Compile Include="Core\ImageSet.cs" />
<Compile Include="Core\MSE.cs" />
......@@ -88,6 +96,9 @@
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="CodeEditForm.resx">
<DependentUpon>CodeEditForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="DataEditForm.resx">
<DependentUpon>DataEditForm.cs</DependentUpon>
</EmbeddedResource>
......@@ -129,9 +140,15 @@
<None Include="chinese\card-type.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="chinese\constant.lua">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="chinese\cover.jpg">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="chinese\language-codeeditor.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="chinese\language-dataeditor.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
......@@ -156,6 +173,9 @@
<None Include="chinese\mse-spelltrap.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="chinese\_functions.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="english\card-attribute.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
......@@ -177,9 +197,15 @@
<None Include="english\card-type.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="english\constant.lua">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="english\cover.jpg">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="english\language-codeeditor.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="english\language-dataeditor.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
......@@ -204,6 +230,9 @@
<None Include="english\mse-spelltrap.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="english\_functions.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Magic Set Editor 2\download.bat">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
......
This diff is collapsed.
......@@ -13,8 +13,10 @@
using System.Configuration;
using WeifenLuo.WinFormsUI.Docking;
using FastColoredTextBoxNS;
using DataEditorX.Language;
using DataEditorX.Core;
using System.Text;
namespace DataEditorX
{
......@@ -24,26 +26,40 @@ namespace DataEditorX
public partial class MainForm : Form
{
#region member
bool isInitAuto=false;
bool isInitDataEditor=false;
public const int CLOSE_ONE=1;
public const int CLOSE_OTHER=2;
public const int CLOSE_ALL=3;
public const int WM_OPEN=0x0401;
public const int WM_OPEN_SCRIPT=0x0402;
public const string TMPFILE="open.tmp";
public const int MAX_HISTORY=0x20;
string cdbHistoryFile;
List<string> cdblist;
string datapath;
string conflang,conflang_de,confmsg;
string conflang,conflang_de,conflang_ce,confmsg;
string funtxt,conlua;
DataEditForm compare1,compare2;
Card[] tCards;
Dictionary<DataEditForm,string> list;
//
DataConfig datacfg;
//函数提示
Dictionary<string,string> tooltipDic;
//自动完成
List<AutocompleteItem> funList;
List<AutocompleteItem> conList;
#endregion
#region init
public MainForm(string datapath, string file)
{
Init(datapath);
Open(file);
if(file.EndsWith("lua",StringComparison.OrdinalIgnoreCase))
OpenScript(file);
else
Open(file);
}
public MainForm(string datapath)
{
......@@ -53,20 +69,33 @@ void Init(string datapath)
{
tCards=null;
cdblist=new List<string>();
tooltipDic=new Dictionary<string, string>();
funList=new List<AutocompleteItem>();
conList=new List<AutocompleteItem>();
list=new Dictionary<DataEditForm,string>();
this.datapath=datapath;
datacfg=new DataConfig(datapath);
cdbHistoryFile =Path.Combine(datapath, "history.txt");
conflang = Path.Combine(datapath, "language-mainform.txt");
conflang_de = Path.Combine(datapath, "language-dataeditor.txt");
conflang_ce = Path.Combine(datapath, "language-codeeditor.txt");
confmsg = Path.Combine(datapath, "message.txt");
funtxt = Path.Combine(datapath, "_functions.txt");
conlua = Path.Combine(datapath, "constant.lua");
InitializeComponent();
LANG.InitForm(this, conflang);
LANG.LoadMessage(confmsg);
LANG.SetLanguage(this);
}
#endregion
public static bool isScript(string file)
{
if(file.EndsWith("lua",StringComparison.OrdinalIgnoreCase))
return true;
return false;
}
#region History
void ReadHistory()
{
......@@ -135,23 +164,36 @@ void MenuHistoryClear_Click(object sender, EventArgs e)
void MenuHistoryItem_Click(object sender, EventArgs e)
{
ToolStripMenuItem tsmi=sender as ToolStripMenuItem;
if(tsmi!=null)
Open(tsmi.Text);
if(tsmi!=null){
string file=tsmi.Text;
if(MainForm.isScript(file))
OpenScript(file);
else
Open(tsmi.Text);
}
}
#endregion
#region message
protected override void DefWndProc(ref System.Windows.Forms.Message m)
{
string file=null;
switch (m.Msg)
{
case MainForm.WM_OPEN://处理消息
string file=Path.Combine(Application.StartupPath, MainForm.TMPFILE);
file=Path.Combine(Application.StartupPath, MainForm.TMPFILE);
if(File.Exists(file)){
Open(File.ReadAllText(file));
File.Delete(file);
}
break;
case MainForm.WM_OPEN_SCRIPT:
file=Path.Combine(Application.StartupPath, MainForm.TMPFILE);
if(File.Exists(file)){
OpenScript(File.ReadAllText(file));
File.Delete(file);
}
break;
default:
base.DefWndProc(ref m);
break;
......@@ -160,6 +202,19 @@ protected override void DefWndProc(ref System.Windows.Forms.Message m)
#endregion
#region DataEditor
public void OpenScript(string file)
{
CodeEditForm cf=new CodeEditForm(file);
LANG.InitForm(cf, conflang_ce);
LANG.SetLanguage(cf);
if(!isInitAuto)
{
isInitAuto=true;
InitCodeEditor(funtxt, conlua);
}
cf.InitTooltip(tooltipDic, funList.ToArray(), conList.ToArray());
cf.Show(dockPanel1, DockState.Document);
}
public void Open(string file)
{
if(!string.IsNullOrEmpty(file) && File.Exists(file)){
......@@ -176,6 +231,9 @@ public void Open(string file)
def=new DataEditForm(datapath,file);
LANG.InitForm(def, conflang_de);
LANG.SetLanguage(def);
if(!isInitDataEditor)
datacfg.Init();
def.InitGameData(datacfg);
def.FormClosed+=new FormClosedEventHandler(def_FormClosed);
def.Show(dockPanel1, DockState.Document);
list.Add(def, "");
......@@ -288,7 +346,11 @@ void Menuitem_openClick(object sender, EventArgs e)
dlg.Filter=LANG.GetMsg(LMSG.CdbType);
if(dlg.ShowDialog()==DialogResult.OK)
{
Open(dlg.FileName);
string file=dlg.FileName;
if(MainForm.isScript(file))
OpenScript(file);
else
Open(file);
}
}
}
......@@ -306,10 +368,16 @@ void Menuitem_newClick(object sender, EventArgs e)
dlg.Filter=LANG.GetMsg(LMSG.CdbType);
if(dlg.ShowDialog()==DialogResult.OK)
{
if(DataBase.Create(dlg.FileName))
string file=dlg.FileName;
if(MainForm.isScript(file))
OpenScript(file);
else
{
if(MyMsg.Question(LMSG.IfOpenDataBase))
Open(dlg.FileName);
if(DataBase.Create(file))
{
if(MyMsg.Question(LMSG.IfOpenDataBase))
Open(file);
}
}
}
}
......@@ -413,5 +481,143 @@ void Menuitem_comp2Click(object sender, EventArgs e)
}
#endregion
void InitCodeEditor(string funtxt,string conlua)
{
if(!isInitDataEditor)
datacfg.Init();
tooltipDic.Clear();
funList.Clear();
conList.Clear();
AddFunction(funtxt);
AddConstant(conlua);
foreach(long k in datacfg.dicSetnames.Keys)
{
string key="0x"+k.ToString("x");
if(!tooltipDic.ContainsKey(key))
{
AddConToolTip(key, datacfg.dicSetnames[k]);
}
}
}
#region function
void AddFunction(string funtxt)
{
if(File.Exists(funtxt))
{
string[] lines=File.ReadAllLines(funtxt);
bool isFind=false;
string name="";
string desc="";
foreach(string line in lines)
{
if(string.IsNullOrEmpty(line)
|| line.StartsWith("=="))
continue;
if(line.StartsWith("●"))
{
//add
AddFuncTooltip(name, desc);
int t=line.IndexOf(" ");
int w=line.IndexOf("(");
if(t<w && t>0){
name=line.Substring(t+1,w-t-1);
isFind=true;
desc=line;
}
}
else if(isFind){
desc+=Environment.NewLine+line;
}
}
AddFuncTooltip(name, desc);
}
}
string GetFunName(string str)
{
int t=str.IndexOf(".");
if(t>0)
return str.Substring(t+1);
return str;
}
bool isANSIChar(char c)
{
if((int)c>127)
return false;
return true;
}
int CheckReturn(char[] chars, int index, int MAX)
{
int k=0;
for(k=0;k<MAX;k++)
{
if((index+k)<chars.Length){
if(chars[index+k]=='\n')
return k+1;
}
}
return -1;
}
void AddFuncTooltip(string name,string desc)
{
if(!string.IsNullOrEmpty(name))
{
string fname=GetFunName(name);
if(!tooltipDic.ContainsKey(fname)){
tooltipDic.Add(fname, desc);
AutocompleteItem aitem=new AutocompleteItem(fname);
aitem.ToolTipTitle = fname;
aitem.ToolTipText = desc;
funList.Add(aitem);
}
else
tooltipDic[fname] += Environment.NewLine + desc;
}
}
#endregion
#region constant
void AddConToolTip(string key, string desc)
{
AutocompleteItem aitem=new AutocompleteItem(key);
aitem.ToolTipTitle = key;
aitem.ToolTipText = desc;
conList.Add(aitem);
tooltipDic.Add(key, desc);
}
void AddConstant(string conlua)
{
//conList.Add("con");
if(File.Exists(conlua))
{
string[] lines=File.ReadAllLines(conlua);
foreach(string line in lines)
{
if(line.StartsWith("--"))
continue;
string k=line,desc=line;
int t=line.IndexOf("=");
int t2=line.IndexOf("--");
k = (t>0)?line.Substring(0,t).TrimEnd(new char[]{' ','\t'})
:line;
desc = (t>0)?line.Substring(t+1).Replace("--","\n")
:line;
if(!tooltipDic.ContainsKey(k)){
AddConToolTip(k, desc);
}
else
tooltipDic[k] += Environment.NewLine + desc;
}
}
}
#endregion
void Menuitem_codeeditorClick(object sender, EventArgs e)
{
OpenScript(null);
}
}
}
......@@ -42,8 +42,11 @@ private static void Main(string[] args)
}
else
{
int msg=MainForm.WM_OPEN;
if(MainForm.isScript(arg))
msg=MainForm.WM_OPEN_SCRIPT;
File.WriteAllText(Path.Combine(Application.StartupPath, MainForm.TMPFILE), arg);
SendMessage(instance.MainWindowHandle, MainForm.WM_OPEN, 0 ,0);
SendMessage(instance.MainWindowHandle, msg, 0 ,0);
//Thread.Sleep(1000);
Environment.Exit(1);
}
......
......@@ -28,4 +28,4 @@
//
// You can specify all the values or you can use the default the Revision and
// Build Numbers by using the '*' as shown below:
[assembly: AssemblyVersion("2.1.4.0")]
[assembly: AssemblyVersion("2.2.0.0")]
This diff is collapsed.
This diff is collapsed.
CodeEditForm->CodeEditForm 脚本编辑器
CodeEditForm->menuitem_file 文件(&F)
CodeEditForm->menuitem_open 打开
CodeEditForm->menuitem_save 保存
CodeEditForm->menuitem_saveas 另存为
CodeEditForm->menuitem_quit 退出
CodeEditForm->menuitem_setting 设置(&S)
CodeEditForm->menuitem_showmap 显示缩略图
CodeEditForm->menuitem_showinput 显示输入框
CodeEditForm->menuitem_help 帮助(&H)
CodeEditForm->menuitem_about 关于
\ No newline at end of file
......@@ -10,6 +10,7 @@ MainForm->menuitem_history 历史(&H)
MainForm->menuitem_quit 退出(&Q)
MainForm->menuitem_windows 窗口(&W)
MainForm->menuitem_dataeditor DataEditor
MainForm->menuitem_codeeditor CodeEditor
MainForm->menuitem_closeall 关闭所有
MainForm->menuitem_closeother 关闭其他
MainForm->menuitem_close 关闭当前
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
CodeEditForm->CodeEditForm 脚本编辑器
CodeEditForm->menuitem_file 文件(&F)
CodeEditForm->menuitem_open 打开
CodeEditForm->menuitem_save 保存
CodeEditForm->menuitem_saveas 另存为
CodeEditForm->menuitem_quit 退出
CodeEditForm->menuitem_setting 设置(&S)
CodeEditForm->menuitem_showmap 显示缩略图
CodeEditForm->menuitem_showinput 显示输入框
CodeEditForm->menuitem_help 帮助(&H)
CodeEditForm->menuitem_about 关于
\ No newline at end of file
......@@ -10,6 +10,7 @@ MainForm->menuitem_history History(&H)
MainForm->menuitem_quit Quit(&Q)
MainForm->menuitem_windows Windwos(&W)
MainForm->menuitem_dataeditor New DataEditor
MainForm->menuitem_codeeditor New CodeEditor
MainForm->menuitem_closeall Close All
MainForm->menuitem_closeother Close Other
MainForm->menuitem_close Close
\ No newline at end of file
[DataEditorX]2.1.4.0[DataEditorX]
[DataEditorX]2.2.0.0[DataEditorX]
[URL]https://github.com/247321453/DataEditorX/raw/master/win32/win32.zip[URL]
★使用前,请关联lua的打开方式,例如记事本,notepad++,等。
......@@ -66,6 +66,12 @@ DataEditorX.exe.config
描述不详细的bug,我修复不了。(都不知道是bug是什么)
★更新历史
2.2.0.0
增加lua编辑器,支持关联lua文件
等待:
lua编辑器的文件菜单整合
常用函数模板
根据函数提示搜索
2.1.4.0
改善:
浏览和导入MSE图片库的图片
......
No preview for this file type
This diff is collapsed.
This diff is collapsed.
# history
F:\games\ygocore\my.cdb
F:\games\ygocore\cards.cdb
F:\games\ygopro\cards.cdb
\ No newline at end of file
F:\games\ygocore\script\c126218.lua
F:\games\ygocore\cards.cdb
\ No newline at end of file
CodeEditForm->CodeEditForm 脚本编辑器
CodeEditForm->menuitem_file 文件(&F)
CodeEditForm->menuitem_open 打开
CodeEditForm->menuitem_save 保存
CodeEditForm->menuitem_saveas 另存为
CodeEditForm->menuitem_quit 退出
CodeEditForm->menuitem_setting 设置(&S)
CodeEditForm->menuitem_showmap 显示缩略图
CodeEditForm->menuitem_showinput 显示输入框
CodeEditForm->menuitem_help 帮助(&H)
CodeEditForm->menuitem_about 关于
\ No newline at end of file
......@@ -10,6 +10,7 @@ MainForm->menuitem_history 历史(&H)
MainForm->menuitem_quit 退出(&Q)
MainForm->menuitem_windows 窗口(&W)
MainForm->menuitem_dataeditor DataEditor
MainForm->menuitem_codeeditor CodeEditor
MainForm->menuitem_closeall 关闭所有
MainForm->menuitem_closeother 关闭其他
MainForm->menuitem_close 关闭当前
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
CodeEditForm->CodeEditForm 脚本编辑器
CodeEditForm->menuitem_file 文件(&F)
CodeEditForm->menuitem_open 打开
CodeEditForm->menuitem_save 保存
CodeEditForm->menuitem_saveas 另存为
CodeEditForm->menuitem_quit 退出
CodeEditForm->menuitem_setting 设置(&S)
CodeEditForm->menuitem_showmap 显示缩略图
CodeEditForm->menuitem_showinput 显示输入框
CodeEditForm->menuitem_help 帮助(&H)
CodeEditForm->menuitem_about 关于
\ No newline at end of file
......@@ -10,6 +10,7 @@ MainForm->menuitem_history History(&H)
MainForm->menuitem_quit Quit(&Q)
MainForm->menuitem_windows Windwos(&W)
MainForm->menuitem_dataeditor New DataEditor
MainForm->menuitem_codeeditor New CodeEditor
MainForm->menuitem_closeall Close All
MainForm->menuitem_closeother Close Other
MainForm->menuitem_close Close
\ No newline at end of file
[DataEditorX]2.1.4.0[DataEditorX]
[DataEditorX]2.2.0.0[DataEditorX]
[URL]https://github.com/247321453/DataEditorX/raw/master/win32/win32.zip[URL]
★使用前,请关联lua的打开方式,例如记事本,notepad++,等。
......@@ -66,6 +66,12 @@ DataEditorX.exe.config
描述不详细的bug,我修复不了。(都不知道是bug是什么)
★更新历史
2.2.0.0
增加lua编辑器,支持关联lua文件
等待:
lua编辑器的文件菜单整合
常用函数模板
根据函数提示搜索
2.1.4.0
改善:
浏览和导入MSE图片库的图片
......
No preview for this file type
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment