private void btnDelete_Click(object sender, RoutedEventArgs e) { MySelectableListItem sel = lstTriggers.CurrentlySelected; if (sel != null) { Trigger trigger = ((object[])sel.CustomData)[1] as Trigger; int selectedIndex = lstTriggers.SelectedIndex; if (lstTriggers.isLastItemSelected()) { selectedIndex--; } lstTriggers.Remove(sel); Triggers.Delete(trigger); if (selectedIndex >= 0) // Select next item { lstTriggers.SelectedIndex = selectedIndex; } else // Category empty, regenerate catagories { updateLists(); } UnsavedChanges = true; } }
private void lstPlayers_SelectionChanged(MySelectableListItem lastSelected, MySelectableListItem newSelected) { if (lastSelected != newSelected) { if (lastSelected != null) { object[] data = lastSelected.CustomData as object[]; Label lbl = data[1] as Label; lbl.Background = Brushes.Transparent; lbl.InvalidateVisual(); } if (newSelected != null) { object[] data = newSelected.CustomData as object[]; Label lbl = data[1] as Label; lbl.Background = selected; lbl.InvalidateVisual(); PlayerDef pd = data[0] as PlayerDef; using (var d = lstTriggers.Dispatcher.DisableProcessing()) { lstTriggers.Clear(); List <UIElement> items = new List <UIElement>(); List <Trigger> trigs = Triggers.TriggerData[pd]; foreach (Trigger trig in trigs) { InsertTriggerIntoTheVisualList(trig); } } } } }
private void btnActMoveUp_Click(object sender, RoutedEventArgs e) { MySelectableListItem sel = lstAct.CurrentlySelected; if (sel != null) { lstAct.MoveItemUp(sel); } }
private void btnCondMoveDown_Click(object sender, RoutedEventArgs e) { MySelectableListItem sel = lstCond.CurrentlySelected; if (sel != null) { lstCond.MoveItemDown(sel); } }
private MySelectableListItem addVisualAction(Action act) { RichTextBox cb = new RichTextBox(); // Callback should change it, but it won't change the already added MySelectableListItem TriggerDefinitionPartProperties def = new TriggerDefinitionPartProperties(); def.g = cb; Trigger.regenerateTextboxForTriggerDefinitionParts(def, act.getDefinitionParts, (RichTextBox qcb) => { cb = qcb; }); MySelectableListItem item = new MySelectableListItem(new Object[] { cb, act, def }, cb); lstAct.Add(item); return(item); }
private void btnMoveDown_Click(object sender, RoutedEventArgs e) { MySelectableListItem sel = lstTriggers.CurrentlySelected; if (sel != null) { lstTriggers.MoveItemDown(sel); Trigger trigger = ((object[])sel.CustomData)[1] as Trigger; Triggers.MoveDown(trigger); UnsavedChanges = true; } }
private MySelectableListItem InsertTriggerIntoTheVisualList(Trigger trig) { Brush brush = new SolidColorBrush(Colors.Red); TriggerDefinitionPartProperties def = new TriggerDefinitionPartProperties(); FrameworkElement g = trig.getTrigerListItem(def); def.g = (RichTextBox)g; MySelectableListItem item = new MySelectableListItem(new object[] { g, trig, def }, g); lstTriggers.Add(item); return(item); }
private void btnModify_Click(object sender, RoutedEventArgs e) { MySelectableListItem sel = lstTriggers.CurrentlySelected; if (sel != null) { Trigger trigger = ((object[])sel.CustomData)[1] as Trigger; new WndModify(trigger, Triggers, (Trigger trig) => { Triggers.UpdateAffecteds(trig); refershListAndKeepSelection(); UnsavedChanges = true; }); } }
private void btnActCopy_Click(object sender, RoutedEventArgs e) { MySelectableListItem sel = lstAct.CurrentlySelected; if (sel != null) { Action act = ((object[])sel.CustomData)[1] as Action; Parser parser = new Parser(new Scanner(act.ToSaveString(false))); Action clone = parser.parseOnlyAction(); MySelectableListItem item = addVisualAction(clone); lstAct.MoveItemBeforeItem(item, sel); lstAct.MoveItemBeforeItem(sel, item); } TabControl_SelectionChanged(null, null); }
private void btnCopy_Click(object sender, RoutedEventArgs e) { MySelectableListItem sel = lstTriggers.CurrentlySelected; if (sel != null) { Trigger trigger = ((object[])sel.CustomData)[1] as Trigger; string textTrig = trigger.ToSaveString(false); Trigger trig = Triggers.loadAndInsertAfter(textTrig, trigger); MySelectableListItem item = InsertTriggerIntoTheVisualList(trig); lstTriggers.MoveItemBeforeItem(item, sel); lstTriggers.MoveItemBeforeItem(sel, item); UnsavedChanges = true; } }
private void lstAct_SelectionChanged(MySelectableListItem lastSelected, MySelectableListItem newSelected) { TabControl_SelectionChanged(null, null); bool isSel = newSelected != null; btnActCopy.IsEnabled = isSel; btnActDel.IsEnabled = isSel; btnActMoveDown.IsEnabled = isSel; btnActMoveUp.IsEnabled = isSel; if (lstAct.isLastItemSelected()) { btnActMoveDown.IsEnabled = false; } if (lstAct.isFirstItemSelected()) { btnActMoveUp.IsEnabled = false; } if (lastSelected != newSelected) // Ignore the crap of this shit { if (lastSelected != null) { FrameworkElement ls = ((object[])lastSelected.CustomData)[0] as FrameworkElement; TriggerDefinitionPartProperties props = ((object[])lastSelected.CustomData)[2] as TriggerDefinitionPartProperties; props.FireSelectionChange(false); if (ls is RichTextBox) { ((RichTextBox)ls).Background = Brushes.White; ((RichTextBox)ls).Foreground = Brushes.Black; ls.InvalidateVisual(); } } if (newSelected != null) { FrameworkElement ls = ((object[])newSelected.CustomData)[0] as FrameworkElement; TriggerDefinitionPartProperties props = ((object[])newSelected.CustomData)[2] as TriggerDefinitionPartProperties; props.FireSelectionChange(true); if (ls is RichTextBox) { ((RichTextBox)ls).Background = selected; ((RichTextBox)ls).Foreground = Brushes.White; ls.InvalidateVisual(); } } } }
private void btnActDel_Click(object sender, RoutedEventArgs e) { MySelectableListItem sel = lstAct.CurrentlySelected; if (sel != null) { int selectedIndex = lstAct.SelectedIndex; if (lstAct.isLastItemSelected()) { selectedIndex--; } lstAct.Remove(sel); if (selectedIndex >= 0) // Select next item { lstAct.SelectedIndex = selectedIndex; } } TabControl_SelectionChanged(null, null); }
private void btnNewTrigger_Click(object sender, RoutedEventArgs e) { Trigger newTrig = new StarcraftEPDTriggers.Trigger(); MySelectableListItem item = lstPlayers.CurrentlySelected; if (item != null) { PlayerDef pd = ((object[])item.CustomData)[0] as PlayerDef; newTrig.getAffectedPlayers().Add(pd); } new WndModify(newTrig, Triggers, (Trigger trig) => { Triggers.TriggerCreated(trig); MySelectableListItem timSel = lstPlayers.CurrentlySelected; PlayerDef pd = null; if (timSel != null) { pd = ((object[])timSel.CustomData)[0] as PlayerDef; } refershListAndKeepSelection(trig, pd); UnsavedChanges = true; }); }
private void refershListAndKeepSelection() { MySelectableListItem selectedTrigger = lstTriggers.CurrentlySelected; MySelectableListItem selectedPlayer = lstPlayers.CurrentlySelected; if (selectedTrigger != null) { Trigger trigDef = ((object[])selectedTrigger.CustomData)[1] as Trigger; PlayerDef pselPld = null; if (selectedPlayer == null) { if (trigDef.getAffectedPlayers().Count == 0) { updateLists(); lstTriggers.Clear(); return; } pselPld = trigDef.getAffectedPlayers()[0]; } else { pselPld = ((object[])selectedPlayer.CustomData)[0] as PlayerDef; } refershListAndKeepSelection(trigDef, pselPld); } else // No selected trigger { if (selectedPlayer == null) // No selected player { updateLists(); lstTriggers.Clear(); return; } PlayerDef pselPld = ((object[])selectedPlayer.CustomData)[0] as PlayerDef; refershListAndKeepSelection(null, pselPld); } }
private void lstPlayer_DoubleClicked(MySelectableListItem item) { btnModify_Click(null, null); }