private void addVariableToolStripMenuItem_Click(object sender, EventArgs e) { if (treeView.SelectedObject is IEditableVariable editableVariable) { viewModel.AddListElement(editableVariable); } }
private void AddChunkPointers(ToolStripMenuItem menu, CR2WExportWrapper chunk) { var chunkData = chunk.data; menu.DropDownItems.Clear(); foreach (var variable in chunkData.GetEditableVariables()) { if (variable is IHandleAccessor ihdl && ihdl.IsSerialized && !ihdl.ChunkHandle) { continue; } // single ptrs if (variable is IChunkPtrAccessor ptrAccessor) { ToolStripItem item = new ToolStripMenuItem() { Text = ptrAccessor.REDName, Name = ptrAccessor.REDName, Tag = variable }; item.Click += new EventHandler(ptr_Click); menu.DropDownItems.Add(item); } // array ptrs if (variable is IArrayAccessor arrayAccessor && (arrayAccessor.Elementtype.Contains("handle:") || arrayAccessor.Elementtype.Contains("ptr:"))) { ToolStripItem item = new ToolStripMenuItem() { Text = arrayAccessor.REDName, Name = arrayAccessor.REDName, Tag = variable }; item.Click += new EventHandler(arrayPtr_Click); menu.DropDownItems.Add(item); } } void ptr_Click(object sender, EventArgs e) { if (sender is ToolStripItem item && item.Tag is IEditableVariable variable && variable is IChunkPtrAccessor ptrAccessor) { viewModel.AddNewChunkFor(ptrAccessor); } } void arrayPtr_Click(object sender, EventArgs e) { if (sender is ToolStripItem item && item.Tag is IEditableVariable variable) { viewModel.AddListElement(variable); } } }