private void resyncText() { ItemDisplayViewModel vm = this.DataContext as ItemDisplayViewModel; Item item = vm.Item; MenuItem setBuyout = new MenuItem(); string pricingInfo = string.Empty; if (Settings.Buyouts.ContainsKey(item.UniqueIDHash)) { pricingInfo = Settings.Buyouts[item.UniqueIDHash].Buyout; if (pricingInfo == string.Empty) { pricingInfo = Settings.Buyouts[item.UniqueIDHash].Price; } } if (textblock != null) { this.MainGrid.Children.Remove(textblock); } textblock = new TextBlock(); textblock.Text = pricingInfo; if (item is Currency) { textblock.VerticalAlignment = System.Windows.VerticalAlignment.Bottom; } textblock.IsHitTestVisible = false; textblock.Margin = new Thickness(1, 1, 0, 0); this.MainGrid.Children.Add(textblock); }
private ContextMenu getContextMenu() { ItemDisplayViewModel vm = this.DataContext as ItemDisplayViewModel; Item item = vm.Item; ContextMenu menu = new ContextMenu(); menu.Background = Brushes.Black; if (!(item is Currency)) { MenuItem setBuyout = new MenuItem(); var buyoutControl = new SetBuyoutView(); if (Settings.Buyouts.ContainsKey(item.UniqueIDHash)) { var price = Settings.Buyouts[item.UniqueIDHash].Split(' '); buyoutControl.SetValue(price[0], CurrencyAbbreviationMap.Instance.FromAbbreviation(price[1])); } setBuyout.Header = buyoutControl; buyoutControl.SaveClicked += new SetBuyoutView.BuyoutHandler(buyoutView_SaveClicked); buyoutControl.RemoveClicked += new SetBuyoutView.BuyoutHandler(buyoutControl_RemoveClicked); menu.Items.Add(setBuyout); } return(menu); }
private ContextMenu getContextMenu() { ItemDisplayViewModel vm = this.DataContext as ItemDisplayViewModel; Item item = vm.Item; ContextMenu menu = new ContextMenu(); menu.Background = Brushes.Black; menu.Resources = expressionDarkGrid; MenuItem setBuyout = new MenuItem(); setBuyout.StaysOpenOnClick = true; var buyoutControl = new SetBuyoutView(); if (Settings.Buyouts.ContainsKey(item.UniqueIDHash)) { buyoutControl.SetBuyoutInfo(Settings.Buyouts[item.UniqueIDHash]); } setBuyout.Header = buyoutControl; buyoutControl.Update += buyoutControl_Update; buyoutControl.SaveImageClicked += buyoutControl_SaveImageClicked; menu.Items.Add(setBuyout); return(menu); }
void ItemDisplay_Loaded(object sender, RoutedEventArgs e) { ItemDisplayViewModel vm = this.DataContext as ItemDisplayViewModel; if (vm != null) { Image i = vm.getImage(); itemImage = i; if (i != null) { this.MainGrid.Children.Add(i); if (vm.HasSocket) { BindSocketPopup(vm); } this.Height = i.Height; this.Width = i.Width; } } this.Loaded -= new RoutedEventHandler(ItemDisplay_Loaded); resyncText(); }
private void resyncText() { if (EnableBuyOuts == bool.TrueString) { ItemDisplayViewModel vm = this.DataContext as ItemDisplayViewModel; Item item = vm.Item; if (item is Currency) { return; } MenuItem setBuyout = new MenuItem(); string buyoutValue = string.Empty; if (Settings.Buyouts.ContainsKey(item.UniqueIDHash)) { buyoutValue = Settings.Buyouts[item.UniqueIDHash]; } if (textblock != null) { this.MainGrid.Children.Remove(textblock); } textblock = new TextBlock(); textblock.Text = buyoutValue; textblock.IsHitTestVisible = false; textblock.Margin = new Thickness(1, 1, 0, 0); this.MainGrid.Children.Add(textblock); } }
void ItemDisplay_Loaded(object sender, RoutedEventArgs e) { ItemDisplayViewModel vm = this.DataContext as ItemDisplayViewModel; Image i = vm.getImage(); UIElement socket = vm.getSocket(); this.MainGrid.Children.Add(i); if (socket != null) { doSocketOnHover(socket, i); } if (EnableBuyOuts == bool.TrueString) { i.ContextMenu = getContextMenu(); } this.Height = i.Height; this.Width = i.Width; this.Loaded -= new RoutedEventHandler(ItemDisplay_Loaded); if (EnableBuyOuts == bool.TrueString) { resyncText(); } }
private void BindSocketPopup(ItemDisplayViewModel vm) { UIElement socket = null; bool isKeyPressed = false; Action DisplaySocket = () => { if (socket == null) { socket = vm.GetSocket(this.IsQuadStash); } if (!MainGrid.Children.Contains(socket)) { MainGrid.Children.Add(socket); } }; MainGrid.MouseEnter += (o, ev) => { DisplaySocket(); }; MainGrid.MouseLeave += (o, ev) => { if (!isKeyPressed) { MainGrid.Children.Remove(socket); } }; MainWindow mainWindow = Application.Current.Windows.OfType <MainWindow>().FirstOrDefault(); mainWindow.KeyDown += (o, ev) => { if ((ev.SystemKey == Key.LeftAlt) || (ev.SystemKey == Key.RightAlt)) { isKeyPressed = true; DisplaySocket(); } }; mainWindow.KeyUp += (o, ev) => { if (((Keyboard.GetKeyStates(Key.LeftAlt) == KeyStates.None) || (Keyboard.GetKeyStates(Key.LeftAlt) == KeyStates.Toggled)) && ((Keyboard.GetKeyStates(Key.RightAlt) == KeyStates.None) || (Keyboard.GetKeyStates(Key.RightAlt) == KeyStates.Toggled))) { isKeyPressed = false; if (!MainGrid.IsMouseOver) { MainGrid.Children.Remove(socket); } } }; }
void buyoutControl_RemoveClicked(string amount, string orbType) { if (EnableBuyOuts == bool.TrueString) { ItemDisplayViewModel vm = this.DataContext as ItemDisplayViewModel; Item item = vm.Item; Settings.Buyouts.Remove(item.UniqueIDHash); Settings.Save(); resyncText(); } }
void buyoutView_SaveClicked(string amount, string orbType) { var abbreviation = CurrencyAbbreviationMap.Instance.FromCurrency(orbType); ItemDisplayViewModel vm = this.DataContext as ItemDisplayViewModel; Item item = vm.Item; Settings.Buyouts[item.UniqueIDHash].Buyout = string.Format("{0} {1}", amount, abbreviation); Settings.SaveBuyouts(); resyncText(); }
private void updateBuyout(ItemTradeInfo info) { ItemDisplayViewModel vm = this.DataContext as ItemDisplayViewModel; Item item = vm.Item; if (info.IsEmpty) { Settings.Buyouts.Remove(item.UniqueIDHash); return; } Settings.Buyouts[item.UniqueIDHash] = info; }
private void BindSocketPopup(ItemDisplayViewModel vm) { UIElement socket = null; MainGrid.MouseEnter += (o, ev) => { if (socket == null) { socket = vm.GetSocket(); } if (!MainGrid.Children.Contains(socket)) { MainGrid.Children.Add(socket); } }; MainGrid.MouseLeave += (o, ev) => MainGrid.Children.Remove(socket); }
private void Render() { int columns = NormalSpacing, rows = NormalSpacing; // Force divination card tabs to use quad tab spacing so there is enough room to show all the different // cards. A normal tab only has 144 slots, but there are >200 divination cards. if (TabType == TabType.Quad || TabType == TabType.DivinationCard) { columns = QuadSpacing; rows = QuadSpacing; gridOuter.Background = new ImageBrush(new BitmapImage(new Uri("pack://application:,,,/Images/stash-quad-grid.png"))); } grid.ColumnDefinitions.Clear(); grid.RowDefinitions.Clear(); grid.Children.Clear(); for (var i = 0; i < columns; i++) { grid.ColumnDefinitions.Add(new ColumnDefinition()); for (var j = 0; j < rows; j++) { if (i == 0) { grid.RowDefinitions.Add(new RowDefinition()); } var childGrid = new Grid(); var currentKey = new Tuple <int, int>(i, j); // Divination cards always have Y == 0, and X has a unique value for each type of card. Map the // card's "real" location to a fake one on the grid, so it can be displayed. var stashLocation = TabType == TabType.DivinationCard ? new Tuple <int, int>(j * columns + i, 0) : currentKey; var keyItem = TabItemsToViewModels.Keys.FirstOrDefault(item => item.X == stashLocation.Item1 && item.Y == stashLocation.Item2); if (keyItem == null) { continue; } ItemDisplayViewModel itemViewModel = TabItemsToViewModels[keyItem]; var itemDisplay = new ItemDisplay { ViewModel = itemViewModel, IsQuadStash = TabType == TabType.Quad || TabType == TabType.DivinationCard }; childGrid.Children.Add(itemDisplay); SetBackground(childGrid, keyItem); Grid.SetColumn(childGrid, i); Grid.SetRow(childGrid, j); if (itemViewModel.Item.H > 1) { Grid.SetRowSpan(childGrid, itemViewModel.Item.H); } if (itemViewModel.Item.W > 1) { Grid.SetColumnSpan(childGrid, itemViewModel.Item.W); } grid.Children.Add(childGrid); } } Ready = true; }