Esempio n. 1
0
        public EditingToolsAdapterViewHolder(View itemView, Action <EditingToolsAdapterClickEventArgs> clickListener,
                                             Action <EditingToolsAdapterClickEventArgs> longClickListener) : base(itemView)
        {
            try
            {
                MainView = itemView;

                ImgToolIcon = MainView.FindViewById <TextView>(Resource.Id.imgToolIcon);
                TxtTool     = MainView.FindViewById <TextView>(Resource.Id.txtTool);

                itemView.Click += (sender, e) => clickListener(new EditingToolsAdapterClickEventArgs
                {
                    View = itemView, Position = AdapterPosition
                });
                itemView.LongClick += (sender, e) => longClickListener(new EditingToolsAdapterClickEventArgs
                {
                    View = itemView, Position = AdapterPosition
                });

                RegularTxt6 = Typeface.CreateFromAsset(itemView.Context.Assets, "SF-UI-Display-Regular.ttf");
                TxtTool.SetTypeface(RegularTxt6, TypefaceStyle.Normal);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Esempio n. 2
0
        }/// <summary>

        /// 模型 存储到文件
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="file"></param>
        /// <returns></returns>
        public static bool Object2File <T>(string file, T t)
        {
            string s  = Object2String(t);
            bool   rs = TxtTool.Create(file, s);

            return(rs);
        }
Esempio n. 3
0
 /// <summary>
 /// 写入 Whatsnew
 /// </summary>
 /// <param name="vm"></param>
 public static void UpdateWhatsnew(VersionModel vm)
 {
     TxtTool.Append(R.Files.Whatsnew, string.Format("{0} {1} {2}",
                                                    vm.CodeName, vm.VersionNumber, (vm.PluginName == "" ? "" : "For:" + vm.PluginName)));
     TxtTool.Append(R.Files.Whatsnew, vm.VersionDesc);
     TxtTool.Append(R.Files.Whatsnew, new string('=', 50));
 }
Esempio n. 4
0
        /// <summary>
        /// 写出运行时状态信息
        /// </summary>
        private void WriteStatus(StatusLogModel status)
        {
            try
            {
                if (status != null)
                {
                    //处理比率
                    status.Long = status.Long / 1000;
                    status.AFK  = status.AFK / 1000;
                    if (status.AFK > status.Long)
                    {
                        status.AFK = status.Long;
                    }

                    //设置日志目录和日志文件
                    string path = DirTool.Combine(LogPath, "status");
                    string file = DirTool.Combine(path, DateTime.Now.ToString("yyyy-MM-dd") + ".txt");
                    //创建日志目录
                    DirTool.Create(path);
                    //写出日志
                    TxtTool.Append(file, status.ToString());
                }
                Cleaner();
            }
            catch { }
        }
Esempio n. 5
0
 private void BtBuild_Click(object sender, EventArgs e)
 {
     Task.Factory.StartNew(() =>
     {
         this.Invoke(new Action(() => { LbResult.Text = "开始检索并生成目录文件,请稍候……"; }));
         beginTime            = DateTime.Now;
         string path          = TbPath.Text;
         string parentPath    = DirTool.Parent(path);
         FileCodeHelper fcode = new FileCodeHelper();
         if (Directory.Exists(path) && Directory.Exists(parentPath))
         {
             List <string> fileList = FileTool.GetAllFile(path);
             if (!ListTool.IsNullOrEmpty(fileList))
             {
                 VersionModel version = new VersionModel()
                 {
                     Number = DateTime.Now.Second, Path = path, FileList = new List <VersionFile>(),
                 };
                 foreach (var item in fileList)
                 {
                     version.FileList.Add(new VersionFile()
                     {
                         File = item.Replace(path, ""),
                         MD5  = fcode.GetMD5(item),
                     });
                 }
                 string file = string.Format(@"{0}\version.txt", parentPath);
                 string json = JsonTool.ToStr(version);
                 TxtTool.Create(file, json);
             }
         }
         endTime = DateTime.Now;
         this.Invoke(new Action(() => { LbResult.Text = string.Format("生成完成,用时:{0}秒。", (endTime - beginTime).TotalSeconds); }));
     });
 }
Esempio n. 6
0
        private void btPackage_Click(object sender, EventArgs e)
        {
            string src  = tbPath.Text;
            string file = tbName.Text + "-" + tbVersion.Text.Replace('.', '-') + ".udp";
            string dst  = DirTool.Combine(DirTool.GetFilePath(tbPath.Text), file);

            if (FilePackageTool.Pack(src, dst) > 0 && File.Exists(dst))
            {
                string md5Code = FileTool.GetMD5(dst);
                //设置更新模型,14个属性
                AppUpdateInfo aui = new AppUpdateInfo()
                {
                    Name         = tbName.Text,
                    Author       = tbAuthor.Text,
                    Desc         = tbDesc.Text,
                    Version      = tbVersion.Text,
                    ReleasePath  = tbReleasePath.Text,
                    Necessary    = cbNecessary.Checked,
                    DateTime     = DateTime.Now,
                    DownloadMode = rbHttpMode.Checked ? 0 : 1,
                    HttpUrl      = tbHttpUrl.Text,
                    FtpIp        = tbFtpIp.Text,
                    FtpAccount   = tbFtpAccount.Text,
                    FtpPassword  = tbFtpPassword.Text,
                    FtpFile      = tbFtpFile.Text,
                    Md5          = md5Code,
                };
                string auiJson = JsonTool.ToStr(aui);
                TxtTool.Create(dst + ".txt", auiJson);
            }
        }
Esempio n. 7
0
        public void setPrintText()
        {
            if (mLastPrintOriginText == OriginText)
            {
                return;
            }
            mLastPrintOriginText = OriginText;

            if (linkObject)
            {
#if UNITY_5_2 || UNITY_5_3_OR_NEWER || UNITY_5_4
                base.text = TxtTool.PrintText(ref m_OriginText, mOriginIndexList, mUnderlineIndexList);
                mVertexHelper.Clear();
#else
                base.m_Text = UGUIText_Extend.PrintText(ref m_OriginText, mOriginIndexList, mUnderlineIndexList);
                vbo.Clear();
#endif
                //updateVBO();
            }
            else
#if UNITY_5_2 || UNITY_5_3_OR_NEWER || UNITY_5_4
            { base.text = this.OriginText; }
#else
            { base.m_Text = this.OriginText; }
#endif
        }
Esempio n. 8
0
        public static T ToObjFromFile <T>(string file)
        {
            string json = TxtTool.Read(file);

            if (!string.IsNullOrWhiteSpace(json))
            {
                try { return(JsonConvert.DeserializeObject <T>(json)); } catch (Exception e) { }
            }
            return(default(T));
        }
Esempio n. 9
0
        /// <summary>
        /// 整理图片到指定位置
        /// </summary>
        /// <param name="file">图片路径</param>
        /// <param name="path">整理目标路径</param>
        /// <param name="picture">图片信息模型</param>
        /// <returns></returns>
        public static bool ReorganizePicture(string file, string path, Pictures picture)
        {
            try
            {
                if (File.Exists(file))
                {
                    //根据照片信息旋转,生成临时文件
                    string temp = DirTool.Combine(path, "_data", "temp");
                    DirTool.Create(temp);
                    string tempfile = DirTool.Combine(temp, picture.Name);
                    if (File.Exists(tempfile))
                    {
                        FileTool.Delete(tempfile);
                    }
                    RotateImageTool.Rotate(file, tempfile);

                    //创建压缩图
                    string normal = DirTool.Combine(path, "_data", "normal", $"{picture.Model}", $"{picture.OrigTime.Year}-{picture.OrigTime.Month}");
                    DirTool.Create(normal);
                    if (File.Exists(DirTool.Combine(normal, picture.Name)))
                    {
                        FileTool.Delete(DirTool.Combine(normal, picture.Name));
                    }
                    ImageHelper.MakeThumbnail(tempfile, DirTool.Combine(normal, picture.Name), 1000, 1000, "H");

                    //创建缩略图
                    string thumb = DirTool.Combine(path, "_data", "thumb", $"{picture.Model}", $"{picture.OrigTime.Year}-{picture.OrigTime.Month}");
                    DirTool.Create(thumb);
                    if (File.Exists(DirTool.Combine(thumb, picture.Name)))
                    {
                        FileTool.Delete(DirTool.Combine(thumb, picture.Name));
                    }
                    ImageHelper.MakeThumbnail(tempfile, DirTool.Combine(thumb, picture.Name), 500, 500, "Cut");

                    //整理原始照片
                    string original = DirTool.Combine(path, $"{picture.Model}", $"{picture.OrigTime.Year}-{picture.OrigTime.Month}");
                    DirTool.Create(original);
                    if (File.Exists(DirTool.Combine(original, picture.Name)))
                    {
                        FileTool.Delete(DirTool.Combine(original, picture.Name));
                    }
                    File.Move(file, DirTool.Combine(original, picture.Name));

                    //整理照片基础信息
                    string info = DirTool.Combine(path, "_data", "info", $"{picture.Model}", $"{picture.OrigTime.Year}-{picture.OrigTime.Month}");
                    DirTool.Create(info);
                    TxtTool.Create(DirTool.Combine(info, picture.Name + ".info"), JsonTool.ToStr(picture));

                    FileTool.Delete(tempfile);
                    return(true);
                }
            }
            catch { return(false); }
            return(false);
        }
Esempio n. 10
0
        internal static List <USBVendorModel> GetByFile()
        {
            string s = TxtTool.Read(R.Files.USBIds);
            List <USBVendorModel> list = Json.String2Object <List <USBVendorModel> >(s);

            if (Ls.Ok(list))
            {
                return(list);
            }
            return(null);
        }
Esempio n. 11
0
        private void 生成配置ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            VersionModel vm     = GatherModel();
            string       vmJson = JsonTool.ToStr(vm);
            string       vmFile = string.IsNullOrWhiteSpace(NowOpenFile) ?
                                  R.Paths.VersionFile + string.Format("{0}.version", DateTime.Now.ToString("MMddHHmmss")) :
                                  NowOpenFile;

            TxtTool.Create(vmFile, vmJson);
            TsslRunStatus.Text = "构建成功:" + Path.GetFileName(vmFile);
        }
Esempio n. 12
0
        private void 生成配置到指定目录ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            SaveFileDialog fileDialog = new SaveFileDialog();

            fileDialog.InitialDirectory = R.Paths.VersionFile;
            fileDialog.Filter           = "版本文件|*.version";
            if (fileDialog.ShowDialog() == DialogResult.OK)
            {
                VersionModel vm     = GatherModel();
                string       vmJson = JsonTool.ToStr(vm);
                TxtTool.Create(fileDialog.FileName, vmJson);
                TsslRunStatus.Text = "构建成功:" + Path.GetFileName(fileDialog.FileName);
            }
        }
Esempio n. 13
0
 private static void WriteFile(LogType type, string message)
 {
     if (IsWriteFile)
     {
         lock (LogFileLock)
         {
             //设置日志目录
             string logPath = AppDomain.CurrentDomain.BaseDirectory + "Log";
             string file    = string.Format(@"{0}\{1}.txt", logPath, DateTime.Now.ToString("yyyy-MM-dd"));
             //创建日志目录
             DirTool.Create(logPath);
             //写出日志
             TxtTool.Append(file, string.Format(LogFormat, DateTime.Now.ToString(TimeFormat), type.ToString(), message));
         }
     }
 }
Esempio n. 14
0
 public static bool Write(DataEntity data)
 {
     if (data != null && data.User != null && Str.Ok(data.User.Email, data.User.Passcode))
     {
         string s     = PassHelper.EnData(data);
         string file  = R.Files.GetUserDataFile(data.User.Email);
         string cache = R.Files.GetUserDataCacheFile(data.User.Email);
         bool   f1    = TxtTool.Create(cache, s);
         if (f1)
         {
             bool f2 = FileTool.Copy(cache, file, true);
             return(f2);
         }
     }
     return(false);
 }
Esempio n. 15
0
        internal static void Get()
        {
            Task.Factory.StartNew(() =>
            {
                List <USBVendorModel> list = GetByFile();
                if (Ls.Ok(list))
                {
                    __USBIDS = list;
                }

                List <USBVendorModel> weblist = GetByWeb();
                if (Ls.Ok(weblist))
                {
                    __USBIDS = weblist;
                    TxtTool.Create(R.Files.USBIds, Json.Object2String(weblist));
                }
            });
        }
Esempio n. 16
0
 /// <summary>
 /// 写出运行时状态信息
 /// </summary>
 private void WriteStatus(FormActiveLogModel status)
 {
     try
     {
         if (status != null)// && Str.Ok(status.FormName, status.FormText))// && status.Duration > 0
         {
             //设置日志目录和日志文件
             string path = DirTool.Combine(LogPath, "form_active");
             string file = DirTool.Combine(path, DateTime.Now.ToString("yyyy-MM-dd") + ".txt");
             //创建日志目录
             DirTool.Create(path);
             //写出日志
             TxtTool.Append(file, status.ToString());
         }
         Cleaner();
     }
     catch { }
 }
Esempio n. 17
0
    //读取故事文件
    public ChatManager.ChatActionBox LoadStory(string path, ChatManager.ChatConfig config)
    {
        ChatManager.ChatActionBox storylist = new ChatManager.ChatActionBox();

#if _storyDebug
        ResourcesLoader resourcesLoader = new ResourcesLoader();
        string[]        txt             = resourcesLoader.LoadStoryConfig("Config/" + config.Languege + "/" + path + ".txt");
#else
        TxtTool  tt  = new TxtTool();
        string[] txt = tt.ReadFile(config.Languege, path);
#endif

        storylist = ParseActionList(txt, config);

        //初始化index
        storylist.NowIndex = 0;

        return(storylist);
    }
Esempio n. 18
0
        public void OnPointerClick(PointerEventData eventData)
        {
            if (!linkObject || OriginText.Length < 1)
            {
                return;
            }

            Vector2 localPos;
            bool    ret = RectTransformUtility.ScreenPointToLocalPointInRectangle(cachedTransform, eventData.position, eventData.pressEventCamera, out localPos);

            if (!ret)
            {
                return;
            }

#if UNITY_5_2 || UNITY_5_3_OR_NEWER || UNITY_5_4
            if (mVertexHelper.currentVertCount < 1)
#else
            if (vbo.Count < 1)
#endif
            { updateVBO(); }


#if UNITY_5_2 || UNITY_5_3_OR_NEWER || UNITY_5_4
            int textIndex = UGUIText_Extend.GetExactCharacterIndex(mVertexHelper, localPos);
#else
            int textIndex = UGUIText_Extend.GetExactCharacterIndex(vbo, localPos);
#endif

            if (textIndex < 0)
            {
                return;
            }

            if (mOriginIndexList.Count <= textIndex)
            {
                return;
            }

            int originIndex = mOriginIndexList[textIndex];
            TxtTool.ProcessLinkObjectText(OriginText, originIndex);
        }
Esempio n. 19
0
 /// <summary>
 /// 写出到日志文件
 /// </summary>
 /// <param name="log"></param>
 private void WriteFile(LogModel log)
 {
     lock (LogFileLock)
     {
         //设置日志目录和日志文件
         string filePath = GetFilePath(log.Type);
         string file     = DirTool.Combine(filePath, DateTime.Now.ToString("yyyy-MM-dd") + ".txt");
         //创建日志目录
         DirTool.Create(filePath);
         //处理日志信息(换行)
         log.Message = Cons.FormatLine(log.Message);
         //写出日志
         TxtTool.Append(
             file,
             string.Format(LOG_FORMAT,
                           log.CreateTime.ToString(TIME_FORMAT),
                           log.Type.ToString(),
                           log.Message));
         Cleaner(log.Type);
     }
 }
Esempio n. 20
0
 private void WriteFile(LogModel log)
 {
     if (IsWriteFile)
     {
         lock (LogFileLock)
         {
             //设置日志目录
             string logPath = AppDomain.CurrentDomain.BaseDirectory + LogPath;
             string file    = string.Format(@"{0}\{1}.txt", logPath, DateTime.Now.ToString("yyyy-MM-dd"));
             //创建日志目录
             DirTool.Create(logPath);
             //写出日志
             TxtTool.Append(
                 file,
                 string.Format(LOG_FORMAT,
                               log.CreateTime.ToString(TIME_FORMAT),
                               log.Type.ToString(),
                               StringTool.ReplaceNewLine(log.Message)));
         }
     }
 }
Esempio n. 21
0
        /// <summary>
        /// 保存配置信息
        /// </summary>
        /// <returns></returns>
        public override bool DoSave()
        {
            string s = Json.Object2String(this.Config);

            s = JsonFormat.Format(s);

            TxtTool.Create(this.FilePath, s);
            bool result = TxtTool.Create(this.FilePathBackup, s);

            if (result)
            {
                if (Json.File2Object <T>(this.FilePathBackup) != null)
                {
                    if (FileTool.Copy(this.FilePathBackup, this.FilePath, true))
                    {
                        FileTool.Delete(this.FilePathBackup);
                    }
                }
            }
            return(result);
        }
Esempio n. 22
0
        private void CreateVersionMap()
        {
            string versionNumber = TbVersionNumber.Text;
            string ftpPath       = TbFtpPath.Text;

            string[] beginClose = TbBeginClose.Text.Split(';');
            string[] endRun     = TbEndRun.Text.Split(';');

            string       path       = TbPath.Text;
            string       parentPath = DirTool.Parent(path);
            FileCodeTool fcode      = new FileCodeTool();

            if (Directory.Exists(path) && Directory.Exists(parentPath))
            {
                List <string> fileList = FileTool.GetAllFile(path);
                if (!ListTool.IsNullOrEmpty(fileList))
                {
                    VersionModel version = new VersionModel()
                    {
                        Number            = versionNumber,
                        ServerPath        = ftpPath,
                        BeginCloseProcess = beginClose,
                        EndRunProcess     = endRun,
                        FileList          = new List <VersionFile>()
                    };

                    foreach (var item in fileList)
                    {
                        version.FileList.Add(new VersionFile()
                        {
                            File = item.Replace(path, ""),
                            MD5  = fcode.GetMD5(item),
                        });
                    }
                    string file = string.Format(@"{0}\update.version", parentPath, versionNumber);
                    string json = JsonTool.ToStr(version);
                    TxtTool.Create(file, json);
                }
            }
        }
Esempio n. 23
0
            public static void Persistence()
            {
                DirTool.Create(R.Paths.Store);

                List <SystemStatusModel>  ssm = new List <SystemStatusModel>();
                List <ProjectStatusModel> psm = new List <ProjectStatusModel>();

                foreach (var item in SystemStatus.ToArray())
                {
                    ssm.Add(item.Value);
                }
                foreach (var item in ProjectStatus.ToArray())
                {
                    psm.Add(item.Value);
                }

                string ss = Json.Object2String(ssm.OrderBy(x => x.IP));
                string ps = Json.Object2String(psm.OrderBy(x => x.IP).ThenBy(x => x.Port));

                bool ss_flag = TxtTool.Create(R.Files.SystemStatus, ss);
                bool ps_flag = TxtTool.Create(R.Files.ProjectStatus, ps);
            }
Esempio n. 24
0
 private void WriteFile(List <LogModel> list)
 {
     if (IsWriteFile)
     {
         lock (LogFileLock)
         {
             //设置日志目录
             string logPath = AppDomain.CurrentDomain.BaseDirectory + LogPath;
             string file    = string.Format(@"{0}\{1}.txt", logPath, DateTime.Now.ToString("yyyy-MM-dd"));
             //创建日志目录
             DirTool.Create(logPath);
             //整理要输出的内容
             List <string> txts = new List <string>();
             foreach (var item in list)
             {
                 txts.Add(string.Format(LOG_FORMAT, item.CreateTime.ToString(TIME_FORMAT), item.Type.ToString(), item.Message));
             }
             //写出日志
             TxtTool.Append(file, txts);
         }
     }
 }
Esempio n. 25
0
        public static DataEntity Read(string email, string passcode)
        {
            DataEntity result = null;

            if (Str.Ok(email, passcode))
            {
                string     file  = R.Files.GetUserDataFile(email);
                string     cache = R.Files.GetUserDataCacheFile(email);
                string     s     = TxtTool.Read(file);
                string     s_c   = TxtTool.Read(cache);
                DataEntity d     = PassHelper.DeData(s, email, passcode);
                DataEntity d_s   = PassHelper.DeData(s, email, passcode);
                if (d != null && d_s == null)
                {
                    result = d;
                }
                if (d == null && d_s != null)
                {
                    result = d_s;
                }
                if (d != null && d_s != null)
                {
                    if (d.UpdateTime > d_s.UpdateTime)
                    {
                        result = d;
                    }
                    else
                    {
                        result = d_s;
                    }
                }
                if (result != null)
                {
                    R.Data = result;
                }
            }
            return(result);
        }
Esempio n. 26
0
        /// <summary>
        /// 初始化Ini配置信息
        /// </summary>
        static void InitIni()
        {
            DirTool.Create(R.Paths.Settings);
            DirTool.Create(R.Paths.Projects);
            DirTool.Create(R.Paths.DefaultPublishStorage);
            DirTool.Create(R.Paths.DefaultNewStorage);

            R.Paths.PublishStorage = IniTool.GetString(R.Files.Settings, "Paths", "PublishStorage", R.Paths.DefaultPublishStorage);
            if (string.IsNullOrWhiteSpace(R.Paths.PublishStorage))
            {
                R.Paths.PublishStorage = R.Paths.DefaultPublishStorage;
            }

            R.Paths.NewStorage = IniTool.GetString(R.Files.Settings, "Paths", "NewStorage", R.Paths.DefaultNewStorage);
            if (string.IsNullOrWhiteSpace(R.Paths.NewStorage))
            {
                R.Paths.NewStorage = R.Paths.DefaultNewStorage;
            }

            R.Tx.IP                  = IniTool.GetString(R.Files.Settings, "Console", "IP", "");
            R.Tx.Port                = IniTool.GetInt(R.Files.Settings, "Console", "Port", 0);
            R.Tx.LocalIP             = IniTool.GetString(R.Files.Settings, "Local", "IP", "");
            R.Tx.LocalName           = IniTool.GetString(R.Files.Settings, "Local", "Name", "");
            R.IsAutoDeleteExpiredLog = IniTool.GetBool(R.Files.Settings, "Settings", "AutoDeleteExpiredLog", false);
            R.AppID                  = IniTool.GetString(R.Files.Settings, "App", "ID", "");

            if (!Str.Ok(R.AppID))
            {
                R.AppID = GuidTool.Short();
                IniTool.Set(R.Files.Settings, "App", "ID", R.AppID);
            }

            if (!File.Exists(R.Files.NewStorageReadme))
            {
                TxtTool.Create(R.Files.NewStorageReadme, R.NewStorageReadmeTxt);
            }
        }
        private void ProjectItemPart_Load(object sender, EventArgs e)
        {
            //启动按钮默认不可用(Init初始化后变为可用)
            BTStartOrStop.Enabled = false; //禁止启动/关闭
            BTAddNew.Enabled      = false; //禁止装载新版本
            CBVersion.Enabled     = false; //禁止选择启动版本

            //持续监控端口及端口进程状态
            ProcessStatus();

            //加载项目资料(加载前检查是否存在)
            if (File.Exists(DirTool.Combine(R.Paths.Projects, Name)))
            {
                string txt = TxtTool.Read(DirTool.Combine(R.Paths.Projects, Name));
                var    p   = Json.String2Object <ProjectModel>(txt);
                if (p != null)
                {
                    SetProject(p);
                }
            }

            //将控件加入到管理列表中
            R.ProjectItems.Add(this);
        }
Esempio n. 28
0
        public void setPrintText()
        {
            if (mLastPrintOriginText == OriginText)
            {
                return;
            }
            mLastPrintOriginText = OriginText;

            if (linkObject)
            {
                string _sprStr  = m_OriginText;
                string _linkStr = TxtTool.PrintText(ref m_OriginText, mOriginIndexList, mUnderlineIndexList);

                GetPrintText(_linkStr);
                _sprStr       = Regex.Replace(_sprStr, @"\<\s*sprite\s*(.*?)\s*\/\>", GetSpace(2));
                this.cacheStr = _sprStr;
                base.text     = TxtTool.PrintText(ref _sprStr, mOriginIndexList, mUnderlineIndexList);
                mVertexHelper.Clear();
            }
            else
            {
                base.text = GetPrintText(this.OriginText);
            }
        }
Esempio n. 29
0
 public void SetLinkCallback(string linkType, Action <string> action)
 {
     TxtTool.SetCallback(linkType, action);
 }
Esempio n. 30
0
 public void ClearLinkCallback(string linkType)
 {
     TxtTool.SetCallback(linkType, null);
 }