コード例 #1
0
        private void load_archive(TreeNode current)
        {
            List_Strings.BeginUpdate();
            List_Strings.Items.Clear();

            if (current.Parent != null)
            {
                Split.Panel2.Enabled = true;

                current_table   = int.Parse(current.Parent.Text.Substring(0, 2), System.Globalization.NumberStyles.HexNumber);
                current_archive = int.Parse(current.Text, System.Globalization.NumberStyles.HexNumber);

                TextTable     table           = (TextTable)current_controller.Tables[current_table];
                List <string> current_strings = table.get_contents(current_archive);

                for (int i = 0; i < current_strings.Count; i++)
                {
                    ListViewItem listview_item = new ListViewItem();
                    listview_item.Text = i.ToString("X2");
                    listview_item.SubItems.Add(current_strings[i]);
                    List_Strings.Items.Add(listview_item);
                }
            }
            else
            {
                Split.Panel2.Enabled = false;
            }
            List_Strings.EndUpdate();
        }
コード例 #2
0
        private void List_Strings_ItemActivate(object sender, EventArgs e)
        {
            if (List_Strings.SelectedItems.Count > 0)
            {
                TextTable    text_table = (TextTable)current_controller.Tables[current_table];
                ListViewItem item       = List_Strings.SelectedItems[0];
                int          index      = int.Parse(item.SubItems[0].Text, System.Globalization.NumberStyles.HexNumber);

                List <string> archive_strings = text_table.get_contents(current_archive);
                string        active_string   = archive_strings[index];

                Form archive_box;
                if (text_table.get_type(current_archive) == 1)
                {
                    archive_box = new Text_Edit_ArchiveT1(active_string);
                }
                else
                {
                    int character = text_table.get_args(current_archive, index, 1);
                    int voice     = text_table.get_args(current_archive, index, 2);
                    archive_box = new Text_Edit_ArchiveT2(active_string, character, voice);
                }

                using (var form = archive_box)
                {
                    var result = form.ShowDialog();
                    if (result == DialogResult.OK)
                    {
                        ArchiveEdit data = (ArchiveEdit)form;
                        archive_strings[index] = data.ArchiveText;

                        text_table.set_contents(current_archive, archive_strings);
                        text_table.set_args(current_archive, index, data.ArchiveArg1, 1);
                        text_table.set_args(current_archive, index, data.ArchiveArg2, 2);

                        current_controller.Tables[current_table] = text_table;
                        item.SubItems[1].Text = data.ArchiveText;
                        List_Strings.Update();
                    }
                }
            }
        }
コード例 #3
0
        private void search_text()
        {
            int last_index = search_index;

            for (int i = search_index; i < List_Strings.Items.Count; i++)
            {
                if (List_Strings.Items[i].SubItems[1].Text.Contains(SearchBox.Text))
                {
                    List_Strings.Items[i].Selected = true;
                    List_Strings.Select();
                    List_Strings.EnsureVisible(i);
                    search_index = i + 1;
                    break;
                }
            }

            if (last_index == search_index)
            {
                search_index = 0;
            }
        }