Example #1
0
 /// <summary>
 /// 猫ペイントのkey.txtを書き込み
 /// </summary>
 /// <param name="KL"></param>
 public void WriteNekoKeytxt(string NpDir, KeyConfigList KL)
 {
     try
     {
         //ファイルにテキストを書き出し
         using (StreamWriter w = new StreamWriter(NpDir + "/config/key.txt"
                                                  , false, System.Text.Encoding.GetEncoding("Shift_JIS")))
         {
             foreach (var tmp in KL)
             {
                 //ネコぺkey.txtに入ってなくてデフォルトでアサインされてる機能への対応
                 if ((tmp.ID >= 790 && tmp.ID <= 793) || tmp.ID == 3334)
                 {
                     //ピクセル単位の移動と全タブ表示切替に割当がない場合、key.txtには書き込まない
                     if (tmp.assign == "")
                     {
                         continue;
                     }
                 }
                 string str = Convert.ToString(tmp.ID) + " " + tmp.name + tmp.assign;
                 w.WriteLine(str);
             }
         }
     }
     catch (Exception e)
     {
         MessageBox.Show(e.Message);
     }
 }
Example #2
0
 /// <summary>
 /// 猫ペイントのkey.txtを書き込み
 /// </summary>
 /// <param name="KL"></param>
 public void WriteNekoKeytxt(string NpDir, KeyConfigList KL)
 {
     try
     {
         //ファイルにテキストを書き出し
         using (StreamWriter w = new StreamWriter(NpDir + Constants.NP_KEY_PATH
                                                  , false, System.Text.Encoding.GetEncoding("Shift_JIS")))
         {
             foreach (var tmp in KL)
             {
                 string str = Convert.ToString(tmp.ID) + " " + tmp.name + tmp.assign;
                 w.WriteLine(str);
             }
         }
     }
     catch (Exception e)
     {
         MessageBox.Show(e.Message);
     }
 }
Example #3
0
        /// <summary>
        /// アプリケーション設定からショートカットキー全定義取得
        /// データグリッドの一覧作成元になります
        /// </summary>
        /// <param name="KeyConvDef"></param>
        public void GetAllDef(KeyConfigList KL)
        {
            StringCollection src = Properties.Settings.Default.AllKeyDef;

            //ショートカットキー全定義取得
            foreach (string str in src)
            {
                KeyConfigData fd = new KeyConfigData();
                //最初の空白を検索
                int ito = str.IndexOf(" ");
                //最初の空白までをカテゴリとして抽出
                fd.Cat = str.Substring(0, ito);
                int ifrom = ito + 1;
                ito = str.IndexOf(" ", ifrom);
                //次の空白までをIDとして抽出
                fd.ID = Convert.ToInt32(str.Substring(ifrom, ito - ifrom));
                ifrom = ito + 1;
                //残りを機能名として設定
                fd.name = str.Substring(ifrom);
                KL.Add(fd);
            }
        }
Example #4
0
        /// <summary>
        /// 猫ペイントのkey.txtを取得
        /// 取得したキー割り当てを一覧から探して設定
        /// 一覧にない場合(4352以降のスクリプトショートカット)は追加
        /// </summary>
        public void ReadNekoKeytxt(string NpDir, int ScriptID, Dictionary <string, int> Assigned, Dictionary <int, string> AllName, KeyConfigList KL)
        {
            try
            {
                //重複定義回避用
                List <int> dupChk = new List <int>();
                // シフトJISのファイルの読み込み
                string[] lines1 = File.ReadAllLines(NpDir + "\\config\\key.txt",
                                                    System.Text.Encoding.GetEncoding("Shift_JIS"));
                foreach (string line in lines1)
                {
                    int           ID;
                    string        KEY;
                    string        name   = "";
                    List <string> tmpDiv = new List <string>();

                    //最初の空白を検索
                    int ito = line.IndexOf(" ");
                    //最初の空白までをIDとして抽出
                    ID = Convert.ToInt32(line.Substring(0, ito));
                    //重複チェック
                    if (dupChk.Contains(ID))
                    {
                        //重複していたら二件目以降を無視
                        continue;
                    }
                    dupChk.Add(ID);
                    //最初の{を検索
                    int ifrom = ito + 1;
                    ito = line.IndexOf("{", ifrom);
                    if (ito > 0)
                    {
                        name = line.Substring(ifrom, ito - ifrom);
                        //{が発見できた場合(ショートカット設定済み)
                        //{までを機能名として設定
                        ifrom = ito;
                        //最後の}を検索
                        ito = line.LastIndexOf("}");
                        if (ito > ifrom)
                        {
                            //{から}までを取得。前後にスペースを付加
                            KEY = " " + line.Substring(ifrom, ito - ifrom + 1) + " ";
                            //作成済みの一覧からIDを検索
                            bool Flg = false;
                            foreach (var fd in KL)
                            {
                                if (fd.ID == ID)
                                {
                                    //IDの一致するレコードにショートカット設定
                                    fd.assign = KEY;
                                    //分割後の割り当てを取得
                                    fd.DivAssign(tmpDiv);
                                    //重複回避用一時領域
                                    List <string> tmp = new List <string>();
                                    foreach (string div in tmpDiv)
                                    {
                                        if (Assigned.ContainsKey(div) != true)
                                        {
                                            //割り当て済みリストに追加
                                            Assigned.Add(div, ID);
                                            tmp.Add(div);
                                        }
                                    }
                                    if (tmp.Count > 0)
                                    {
                                        fd.CatAssign(tmp);
                                    }
                                    else
                                    {
                                        fd.assign = "";
                                    }
                                    Flg = true;
                                    break;
                                }
                            }
                            if (Flg == false)
                            {
                                AllName.Add(ID, name);
                                KeyConfigData fd = new KeyConfigData();
                                fd.ID     = ID;
                                fd.name   = name;
                                fd.assign = KEY;
                                fd.Cat    = "スクリプト";
                                KL.Add(fd);
                                fd.DivAssign(tmpDiv);
                                foreach (string div in tmpDiv)
                                {
                                    //割り当て済みリストに追加
                                    Assigned.Add(div, ID);
                                }
                            }
                        }
                    }
                    else
                    {
                        name = line.Substring(ifrom);
                        //作成済みの一覧からIDを検索
                        bool Flg = false;
                        foreach (var fd in KL)
                        {
                            if (fd.ID == ID)
                            {
                                Flg = true;
                                break;
                            }
                        }
                        if (Flg == false)
                        {
                            AllName.Add(ID, name);
                            KeyConfigData fd = new KeyConfigData();
                            fd.ID   = ID;
                            fd.name = name;
                            fd.Cat  = "スクリプト";
                            KL.Add(fd);
                        }
                    }
                }
            }

            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }
        }