コード例 #1
0
ファイル: TechEditorForm.cs プロジェクト: nkodama/HoI2Editor
        /// <summary>
        ///     技術項目リストの新規イベントボタン押下時の処理
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnNewEventButtonClick(object sender, EventArgs e)
        {
            TechGroup grp = GetSelectedGroup();

            // 項目を作成する
            TechEvent item = new TechEvent();

            // 編集済みフラグを設定する
            grp.SetDirty();
            item.SetDirtyAll();

            ITechItem selected = techListBox.SelectedItem as ITechItem;
            if (selected != null)
            {
                // 選択項目の先頭座標を引き継ぐ
                item.Positions.Add(new TechPosition { X = selected.Positions[0].X, Y = selected.Positions[0].Y });

                // 選択項目が技術イベントならばIDを10増やす
                if (selected is TechEvent)
                {
                    TechEvent selectedEvent = selected as TechEvent;
                    item.Id = selectedEvent.Id + 10;
                }

                // 技術項目リストに項目を挿入する
                grp.InsertItem(item, selected);

                // 項目リストビューに項目を挿入する
                InsertTechListItem(item, techListBox.SelectedIndex + 1);
            }
            else
            {
                // 仮の座標を登録する
                item.Positions.Add(new TechPosition());

                // 技術項目リストに項目を追加する
                grp.AddItem(item);

                // 項目リストビューに項目を追加する
                AddTechListItem(item);
            }

            // 技術ツリーにラベルを追加する
            _techTreePanelController.AddItem(item);

            Log.Info("[Tech] Added new event: {0}", item.Id);
        }