Commit 7d1cf42f authored by keyongyu's avatar keyongyu

1229

parent 981f8645
......@@ -16,14 +16,16 @@
using DataEditorX.Language;
using System.Text.RegularExpressions;
using DataEditorX.Core;
using DataEditorX.Config;
using System.Configuration;
using DataEditorX.Controls;
namespace DataEditorX
{
/// <summary>
/// Description of CodeEditForm.
/// </summary>
public partial class CodeEditForm : DockContent
public partial class CodeEditForm : DockContent, IEditForm
{
#region Style
SortedDictionary<long,string> cardlist;
......@@ -36,7 +38,6 @@ public partial class CodeEditForm : DockContent
AutocompleteMenu popupMenu_con;
AutocompleteMenu popupMenu_find;
string nowFile;
public string NowFile { get { return nowFile; } }
string title;
string oldtext;
Dictionary<string,string> tooltipDic;
......@@ -76,32 +77,22 @@ void InitForm()
popupMenu_find.Items.MaximumSize = new System.Drawing.Size(200, 400);
popupMenu_find.Items.Width = 300;
title=this.Text;
fctb.SyntaxHighlighter=new MySyntaxHighlighter();
string fontname=ConfigurationManager.AppSettings["fontname"];
float fontsize=0;
if(float.TryParse(ConfigurationManager.AppSettings["fontsize"]
, out fontsize))
string fontname = MyConfig.readString(MyConfig.TAG_FONT_NAME);
float fontsize = MyConfig.readFloat(MyConfig.TAG_FONT_SIZE, 14);
fctb.Font=new Font(fontname,fontsize);
if(ReadConfig("IME").ToLower()=="true")
if(MyConfig.readBoolean(MyConfig.TAG_IME))
fctb.ImeMode=ImeMode.On;
if (ReadConfig("wordwrap").ToLower() == "true")
if (MyConfig.readBoolean(MyConfig.TAG_WORDWRAP))
fctb.WordWrap = true;
else
fctb.WordWrap = false;
if (ReadConfig("tabisspace").ToLower() == "true")
if (MyConfig.readBoolean(MyConfig.TAG_TAB2SPACES))
tabisspaces = true;
else
tabisspaces = false;
}
string ReadConfig(string key)
{
string v = ConfigurationManager.AppSettings[key];
if (string.IsNullOrEmpty(v))
return "";
else
return v;
}
public void LoadXml(string xmlfile)
{
fctb.DescriptionFile=xmlfile;
......@@ -110,7 +101,23 @@ public void LoadXml(string xmlfile)
#endregion
#region Open
public void Open(string file)
public void SetActived()
{
this.Activate();
}
public bool CanOpen(string file)
{
return YGOUtil.isScript(file);
}
public string GetOpenFile()
{
return nowFile;
}
public bool Create(string file)
{
return Open(file);
}
public bool Open(string file)
{
if(!string.IsNullOrEmpty(file))
{
......@@ -126,7 +133,9 @@ public void Open(string file)
fctb.OpenFile(nowFile, new UTF8Encoding(false));
oldtext=fctb.Text;
SetTitle();
return true;
}
return false;
}
void HideMenu()
......@@ -323,7 +332,7 @@ bool savefile(bool saveas)
{
using (SaveFileDialog sfdlg = new SaveFileDialog())
{
sfdlg.Filter = "Script(*.lua)|*.lua|All Files(*.*)|*.*";
sfdlg.Filter = LANG.GetMsg(LMSG.ScriptFilter);
if (sfdlg.ShowDialog() == DialogResult.OK)
{
nowFile = sfdlg.FileName;
......
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
namespace DataEditorX.Common
{
class CodeEdit : RichTextBox
public class Area
{
public CodeEdit()
: base()
public Area()
{
left = 0;
top = 0;
width = 0;
height = 0;
}
public int left;
public int top;
public int width;
public int height;
}
}
......@@ -7,8 +7,9 @@
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using DataEditorX.Common;
namespace DataEditorX
namespace DataEditorX.Common
{
/// <summary>
/// Description of ImageHelper.
......@@ -44,6 +45,10 @@ public static Bitmap Zoom(Bitmap sourceBitmap, int newWidth, int newHeight)
#endregion
#region 裁剪
public static Bitmap Cut(Bitmap sourceBitmap, Area area)
{
return Cut(sourceBitmap, area.left, area.top, area.width, area.height);
}
/// <summary>
/// 裁剪图像
/// </summary>
......
/*
/*
* 由SharpDevelop创建。
* 用户: Acer
* 日期: 2014-10-25
......@@ -10,25 +10,25 @@
namespace System
{
/// <summary>
/// Description of User32.
/// </summary>
public class User32
{
[DllImport("User32.dll", EntryPoint = "SendMessage")]
public static extern int SendMessage(IntPtr hWnd, int msg, uint wParam, uint lParam);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern int SetWindowPos(IntPtr hWnd, int hWndInsertAfter, int x, int y, int Width, int Height, int flags);
/// <summary>
/// 得到当前活动的窗口
/// </summary>
/// <returns></returns>
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern System.IntPtr GetForegroundWindow();
public static void WindowToTop()
{
}
}
}
/// <summary>
/// Description of User32.
/// </summary>
public class User32
{
[DllImport("User32.dll", EntryPoint = "SendMessage")]
public static extern int SendMessage(IntPtr hWnd, int msg, uint wParam, uint lParam);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern int SetWindowPos(IntPtr hWnd, int hWndInsertAfter, int x, int y, int Width, int Height, int flags);
/// <summary>
/// 得到当前活动的窗口
/// </summary>
/// <returns></returns>
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern System.IntPtr GetForegroundWindow();
public static void WindowToTop()
{
}
}
}
\ No newline at end of file
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Text;
using DataEditorX.Common;
namespace DataEditorX.Config
{
class MyConfig
{
public const int WM_OPEN = 0x0401;
public const int MAX_HISTORY = 0x10;
public const string TAG_DATA = "data";
public const string TAG_LANGUAGE = "language";
public const string TAG_IMAGE_OTHER = "image_other";
public const string TAG_IMAGE_XYZ = "image_xyz";
public const string TAG_IMAGE_PENDULUM = "image_pendulum";
public const string TAG_IMAGE_SIZE = "image";
public const string TAG_IMAGE_QUILTY = "image_quilty";
public const string TAG_FONT_NAME = "fontname";
public const string TAG_FONT_SIZE = "fontsize";
public const string TAG_IME = "IME";
public const string TAG_WORDWRAP = "wordwrap";
public const string TAG_TAB2SPACES = "tabisspace";
public const string TAG_SOURCE_URL = "sourceURL";
public const string TAG_UPDATE_URL = "updateURL";
public const string FILE_LANGUAGE = "language.txt";
public const string FILE_TEMP = "open.tmp";
public const string FILE_MESSAGE = "message.txt";
public const string FILE_HISTORY = "history.txt";
public static string readString(string key)
{
return ConfigurationManager.AppSettings[key];
}
public static int readInteger(string key,int def)
{
int i;
if (int.TryParse(readString(key), out i))
return i;
return def;
}
public static float readFloat(string key, float def)
{
float i;
if (float.TryParse(readString(key), out i))
return i;
return def;
}
public static int[] readIntegers(string key, int length)
{
string temp = readString(key);
int[] ints = new int[length];
string[] ws = string.IsNullOrEmpty(temp) ? null : temp.Split(',');
if (ws != null && ws.Length > 0 && ws.Length <= length)
{
for (int i = 0; i < ws.Length; i++)
{
int.TryParse(ws[i], out ints[i]);
}
}
return ints;
}
public static Area readArea(string key)
{
int[] ints = readIntegers(key, 4);
Area a = new Area();
if (ints != null)
{
a.left = ints[0];
a.top = ints[1];
a.width = ints[2];
a.height = ints[3];
}
return a;
}
public static bool readBoolean(string key)
{
if (readString(key).ToLower() == "true")
return true;
else
return false;
}
}
}
......@@ -10,7 +10,7 @@
namespace System.Windows.Forms
{
public class DListView :ListView
{
{
public DListView()
{
SetStyle(ControlStyles.OptimizedDoubleBuffer |
......
......@@ -13,14 +13,13 @@
namespace FastColoredTextBoxNS
{
/// <summary>
/// Description of FastColoredTextBoxEx.
/// </summary>
public class FastColoredTextBoxEx : FastColoredTextBox
{
Point lastMouseCoord;
string mFile;
public FastColoredTextBoxEx() : base()
{
this.SyntaxHighlighter = new MySyntaxHighlighter();
}
public new event EventHandler<ToolTipNeededEventArgs> ToolTipNeeded;
protected override void OnMouseMove(MouseEventArgs e)
......
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using DataEditorX.Core;
using DataEditorX.Config;
using System.Windows.Forms;
using DataEditorX.Language;
namespace DataEditorX.Controls
{
interface IMainForm
{
void CdbMenuClear();
void LuaMenuClear();
void AddCdbMenu(ToolStripItem item);
void AddLuaMenu(ToolStripItem item);
void Open(string file);
}
class History
{
IMainForm mainForm;
string historyFile;
List<string> cdbhistory;
List<string> luahistory;
public string[] GetcdbHistory()
{
return cdbhistory.ToArray();
}
public string[] GetluaHistory()
{
return luahistory.ToArray();
}
public History(IMainForm mainForm)
{
this.mainForm = mainForm;
cdbhistory = new List<string>();
luahistory = new List<string>();
}
public void ReadHistory(string historyFile)
{
if (!File.Exists(historyFile))
return;
this.historyFile = historyFile;
string[] lines = File.ReadAllLines(historyFile);
AddHistorys(lines);
}
void AddHistorys(string[] lines)
{
luahistory.Clear();
cdbhistory.Clear();
foreach (string line in lines)
{
if (string.IsNullOrEmpty(line) || line.StartsWith("#"))
continue;
if (File.Exists(line))
{
if (YGOUtil.isScript(line))
{
if (luahistory.Count < MyConfig.MAX_HISTORY
&& luahistory.IndexOf(line) < 0)
luahistory.Add(line);
}
else
{
if (cdbhistory.Count < MyConfig.MAX_HISTORY
&& cdbhistory.IndexOf(line) < 0)
cdbhistory.Add(line);
}
}
}
}
public void AddHistory(string file)
{
List<string> tmplist = new List<string>();
//添加到开始
tmplist.Add(file);
//添加旧记录
tmplist.AddRange(cdbhistory.ToArray());
tmplist.AddRange(luahistory.ToArray());
//
AddHistorys(tmplist.ToArray());
SaveHistory();
MenuHistory();
}
void SaveHistory()
{
string texts = "# database history";
foreach (string str in cdbhistory)
{
if (File.Exists(str))
texts += Environment.NewLine + str;
}
texts += Environment.NewLine + "# script history";
foreach (string str in luahistory)
{
if (File.Exists(str))
texts += Environment.NewLine + str;
}
File.Delete(historyFile);
File.WriteAllText(historyFile, texts);
}
public void MenuHistory()
{
//cdb历史
mainForm.CdbMenuClear();
foreach (string str in cdbhistory)
{
ToolStripMenuItem tsmi = new ToolStripMenuItem(str);
tsmi.Click += MenuHistoryItem_Click;
mainForm.AddCdbMenu(tsmi);
}
mainForm.AddCdbMenu(new ToolStripSeparator());
ToolStripMenuItem tsmiclear = new ToolStripMenuItem(LANG.GetMsg(LMSG.ClearHistory));
tsmiclear.Click += MenuHistoryClear_Click;
mainForm.AddCdbMenu(tsmiclear);
//lua历史
mainForm.LuaMenuClear();
foreach (string str in luahistory)
{
ToolStripMenuItem tsmi = new ToolStripMenuItem(str);
tsmi.Click += MenuHistoryItem_Click;
mainForm.AddLuaMenu(tsmi);
}
mainForm.AddLuaMenu(new ToolStripSeparator());
ToolStripMenuItem tsmiclear2 = new ToolStripMenuItem(LANG.GetMsg(LMSG.ClearHistory));
tsmiclear2.Click += MenuHistoryClear2_Click;
mainForm.AddLuaMenu(tsmiclear2);
}
void MenuHistoryClear2_Click(object sender, EventArgs e)
{
luahistory.Clear();
MenuHistory();
SaveHistory();
}
void MenuHistoryClear_Click(object sender, EventArgs e)
{
cdbhistory.Clear();
MenuHistory();
SaveHistory();
}
void MenuHistoryItem_Click(object sender, EventArgs e)
{
ToolStripMenuItem tsmi = sender as ToolStripMenuItem;
if (tsmi != null)
{
string file = tsmi.Text;
mainForm.Open(file);
}
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace DataEditorX.Controls
{
interface IEditForm
{
string GetOpenFile();
bool Create(string file);
bool Open(string file);
bool CanOpen(string file);
bool Save();
void SetActived();
}
}
......@@ -7,12 +7,12 @@
*/
using System;
using System.Configuration;
using DataEditorX.Config;
using DataEditorX.Common;
namespace DataEditorX.Core
{
/// <summary>
/// Description of ImageSet.
/// </summary>
public class ImageSet
{
bool isInit;
......@@ -24,55 +24,25 @@ public void Init()
if(isInit)
return;
isInit=true;
string temp=ConfigurationManager.AppSettings["image_other"];
string[] ws=string.IsNullOrEmpty(temp)?null:temp.Split(',');
if(ws!=null && ws.Length==4){
int.TryParse(ws[0],out this.other_x);
int.TryParse(ws[1],out this.other_y);
int.TryParse(ws[2],out this.other_w);
int.TryParse(ws[3],out this.other_h);
}
//MyMsg.Show(string.Format("other:{0},{1},{2},{3}",other_x,other_y,other_w,other_h));
temp=ConfigurationManager.AppSettings["image_xyz"];
ws=string.IsNullOrEmpty(temp)?null:temp.Split(',');
if(ws!=null && ws.Length==4){
int.TryParse(ws[0],out this.xyz_x);
int.TryParse(ws[1],out this.xyz_y);
int.TryParse(ws[2],out this.xyz_w);
int.TryParse(ws[3],out this.xyz_h);
}
//MyMsg.Show(string.Format("xyz:{0},{1},{2},{3}",xyz_x,xyz_y,xyz_w,xyz_h));
temp=ConfigurationManager.AppSettings["image_pendulum"];
ws=string.IsNullOrEmpty(temp)?null:temp.Split(',');
if(ws!=null && ws.Length==4){
int.TryParse(ws[0],out this.pendulum_x);
int.TryParse(ws[1],out this.pendulum_y);
int.TryParse(ws[2],out this.pendulum_w);
int.TryParse(ws[3],out this.pendulum_h);
}
//MyMsg.Show(string.Format("pendulum:{0},{1},{2},{3}",pendulum_x,pendulum_y,pendulum_w,pendulum_h));
temp=ConfigurationManager.AppSettings["image"];
ws=string.IsNullOrEmpty(temp)?null:temp.Split(',');
if(ws!=null && ws.Length==4){
int.TryParse(ws[0],out this.w);
int.TryParse(ws[1],out this.h);
int.TryParse(ws[2],out this.W);
int.TryParse(ws[3],out this.H);
}
//MyMsg.Show(string.Format("image:{0},{1},{2},{3}",w,h,W,H));
temp=ConfigurationManager.AppSettings["image_quilty"];
if(!string.IsNullOrEmpty(temp)){
int.TryParse(temp, out this.quilty);
}
//MyMsg.Show(string.Format("quilty:{0}",quilty));
this.normalArea = MyConfig.readArea(MyConfig.TAG_IMAGE_OTHER);
this.xyzArea = MyConfig.readArea(MyConfig.TAG_IMAGE_XYZ);
this.pendulumArea = MyConfig.readArea(MyConfig.TAG_IMAGE_PENDULUM);
int[] ints = MyConfig.readIntegers(MyConfig.TAG_IMAGE_SIZE, 4);
this.w = ints[0];
this.h = ints[1];
this.W = ints[2];
this.H = ints[3];
this.quilty = MyConfig.readInteger(MyConfig.TAG_IMAGE_QUILTY, 95);
}
public int quilty;
public int w,h,W,H;
public int other_x,other_y;
public int other_w,other_h;
public int xyz_x,xyz_y;
public int xyz_w,xyz_h;
public int pendulum_x,pendulum_y;
public int pendulum_w,pendulum_h;
public Area normalArea;
public Area xyzArea;
public Area pendulumArea;
}
}
......@@ -16,6 +16,8 @@
using System.ComponentModel;
using DataEditorX.Language;
using DataEditorX.Common;
using DataEditorX.Config;
namespace DataEditorX.Core
{
......@@ -72,8 +74,7 @@ public void Cancel()
}
public static void CheckVersion(bool showNew)
{
string newver = CheckUpdate.Check(
ConfigurationManager.AppSettings["updateURL"]);
string newver = CheckUpdate.Check(MyConfig.readString(MyConfig.TAG_UPDATE_URL));
int iver, iver2;
int.TryParse(Application.ProductVersion.Replace(".", ""), out iver);
int.TryParse(newver.Replace(".", ""), out iver2);
......@@ -121,19 +122,13 @@ public void CutImages(string imgpath,bool isreplace)
Bitmap bp=new Bitmap(jpg);
Bitmap bmp=null;
if(c.IsType(CardType.TYPE_XYZ)){
bmp = MyBitmap.Cut(bp,
imgSet.xyz_x,imgSet.xyz_y,
imgSet.xyz_w,imgSet.xyz_h);
bmp = MyBitmap.Cut(bp, imgSet.xyzArea);
}
else if(c.IsType(CardType.TYPE_PENDULUM)){
bmp = MyBitmap.Cut(bp,
imgSet.pendulum_x,imgSet.pendulum_y,
imgSet.pendulum_w,imgSet.pendulum_h);
bmp = MyBitmap.Cut(bp, imgSet.pendulumArea);
}
else{
bmp = MyBitmap.Cut(bp,
imgSet.other_x,imgSet.other_y,
imgSet.other_w,imgSet.other_h);
bmp = MyBitmap.Cut(bp, imgSet.normalArea);
}
MyBitmap.SaveAsJPEG(bmp, savejpg, imgSet.quilty);
//bmp.Save(savejpg, ImageFormat.Png);
......
......@@ -20,7 +20,18 @@ public static void SetConfig(DataConfig dcfg)
{
datacfg = dcfg;
}
public static bool isScript(string file)
{
if (file != null && file.EndsWith(".lua", StringComparison.OrdinalIgnoreCase))
return true;
return false;
}
public static bool isDataBase(string file)
{
if (file != null && file.EndsWith(".cdb", StringComparison.OrdinalIgnoreCase))
return true;
return false;
}
public static string GetCardImagePath(string picpath,Card c)
{
string jpg = MyPath.Combine(picpath, c.id + ".jpg");
......
This diff is collapsed.
......@@ -48,7 +48,7 @@
</Reference>
<Reference Include="Microsoft.VisualBasic" />
<Reference Include="System" />
<Reference Include="System.Configuration" />
<Reference Include="System.configuration" />
<Reference Include="System.Data" />
<Reference Include="System.Data.SQLite">
<HintPath>DLL\System.Data.SQLite.dll</HintPath>
......@@ -68,20 +68,21 @@
<DependentUpon>CodeEditForm.cs</DependentUpon>
</Compile>
<Compile Include="Common\CheckUpdate.cs" />
<Compile Include="Common\CodeEdit.cs">
<Compile Include="Controls\DoubleContorl.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Common\DoubleContorl.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Common\FastColoredTextBoxEx.cs">
<Compile Include="Controls\FastColoredTextBoxEx.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="Common\MyPath.cs" />
<Compile Include="Common\MySyntaxHighlighter.cs" />
<Compile Include="Controls\History.cs" />
<Compile Include="Controls\IEditForm.cs" />
<Compile Include="Controls\MySyntaxHighlighter.cs" />
<Compile Include="Common\MyBitmap.cs" />
<Compile Include="Common\User32.cs" />
<Compile Include="Common\ZipStorer.cs" />
<Compile Include="Common\Area.cs" />
<Compile Include="Config\Config.cs" />
<Compile Include="Core\Card.cs" />
<Compile Include="Core\CardAttribute.cs" />
<Compile Include="Core\CardRace.cs" />
......@@ -213,13 +214,7 @@
<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>
<None Include="chinese\language-mainform.txt">
<None Include="chinese\language.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="chinese\message.txt">
......@@ -343,5 +338,6 @@
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
0x0 卡片种族
0x1 战士族
0x2 魔法使
0x2 魔法
0x4 天使族
0x8 恶魔族
0x10 不死族
......
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_setcard 设置卡片库
CodeEditForm->menuitem_find 查找
CodeEditForm->menuitem_replace 替换
CodeEditForm->menuitem_help 帮助(&H)
CodeEditForm->menuitem_about 关于
\ No newline at end of file
DataEditForm->btn_add 添加(&A)
DataEditForm->btn_del 删除(&D)
DataEditForm->btn_lua 脚本(&L)
DataEditForm->btn_img 导入卡图(&I)
DataEditForm->btn_undo 撤销(&U)
DataEditForm->btn_mod 修改(&M)
DataEditForm->btn_PageDown 下一页
DataEditForm->btn_PageUp 上一页
DataEditForm->btn_reset 重置(&R)
DataEditForm->btn_serach 搜索(&S)
DataEditForm->DataEditForm DataEditorX
DataEditForm->lb_atkdef ATK/DEF
DataEditForm->lb_cardalias 同名卡
DataEditForm->lb_cardcode 卡片密码
DataEditForm->lb_categorys 效果种类
DataEditForm->lb_pleft_right 灵摆刻度
DataEditForm->lb_scripttext
DataEditForm->lb_tiptexts 提示文字
DataEditForm->lb_types 卡片种类
DataEditForm->lb2 /
DataEditForm->lb4 /
DataEditForm->lb5 /
DataEditForm->lv_cardlist0 密码
DataEditForm->lv_cardlist1 卡片名称
DataEditForm->menu_tools 功能(&T)
DataEditForm->menuitem_exportdata 导出所有卡片数据为zip
DataEditForm->menuitem_cancelTask 取消当前任务
DataEditForm->menuitem_compdb 压缩当前数据库
DataEditForm->menuitem_convertimage 批量导入卡图
DataEditForm->menuitem_importmseimg MSE图片库
DataEditForm->menuitem_openLastDataBase 最后打开的数据库
DataEditForm->menuitem_cutimages 裁剪列表卡片的图片
DataEditForm->menuitem_saveasmse_select 所选卡片导出MSE存档
DataEditForm->menuitem_saveasmse 当前所有卡片导出MSE存档
DataEditForm->menuitem_about 关于(&A)
DataEditForm->menuitem_checkupdate 检查更新
DataEditForm->menuitem_copyselectto 所选卡片复制到...
DataEditForm->menuitem_copyto 当前所有卡片复制到...
DataEditForm->menuitem_file 文件(&F)
DataEditForm->menuitem_github 源码主页
DataEditForm->menuitem_help 帮助(&H)
DataEditForm->menuitem_new 新建(&N)
DataEditForm->menuitem_open 打开(&O)
DataEditForm->menuitem_quit 退出(&Q)
DataEditForm->menuitem_readimages 从图像文件夹读取
DataEditForm->menuitem_readydk 从ydk文件读取
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
No preview for this file type
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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