void IDropTarget.Drop(IDropInfo dropInfo) { if (dropInfo.Data is SizeItemModel) { SizeItemModel item = dropInfo.Data as SizeItemModel; var card = new SampleCardItemModel { Size = item }; ViewModelLocator.PreviewTabViewModel.Cards.Add(card); } }
private void CardMouseMove(object sender, MouseEventArgs e) { if (mouseDown) { return; } SampleCardItemModel card = (sender as Canvas).DataContext as SampleCardItemModel; MouseHitType = SetHitType(new Rect(card.X, card.Y, card.CardWidth, card.CardHeight), e.GetPosition(sender as Canvas)); SetMouseCursor(); e.Handled = true; return; }
private void CardMouseDown(object sender, MouseButtonEventArgs e) { DragItem = sender as Canvas; SampleCardItemModel card = DragItem.DataContext as SampleCardItemModel; if (e.ClickCount == 2) { card.IsBack = !card.IsBack; return; } ViewModelLocator.PreviewTabViewModel.Selection = card.Size; mouseDownOffset = e.GetPosition(DragItem); MouseHitType = SetHitType(new Rect(card.X, card.Y, card.CardWidth, card.CardHeight), mouseDownOffset); if (MouseHitType == HitType.None) { return; } SetMouseCursor(); mouseDown = true; cardsView.CaptureMouse(); }
public PreviewTabViewModel() { var _game = ViewModelLocator.GameLoader.Game; if (_game.GlobalPlayer == null) { _game.GlobalPlayer = new GlobalPlayer() { Counters = new List <Counter>(), Groups = new List <Group>() }; } Table = new TableItemModel(_game.Table, new IdeCollection <IdeBaseItem>(this)) { CanRemove = false, CanCopy = false, CanInsert = false }; Piles = new IdeCollection <IdeBaseItem>(this); foreach (var pile in _game.Player.Groups) { Piles.Add(new GroupItemModel(pile, Piles)); } Piles.CollectionChanged += (sender, args) => { _game.Player.Groups = Piles.Select(x => ((GroupItemModel)x)._group); RaisePropertyChanged("CollapsedPiles"); RaisePropertyChanged("VisiblePiles"); Messenger.Default.Send(new GroupChangedMessage(args)); }; AddPileCommand = new RelayCommand(AddPile); Counters = new IdeCollection <IdeBaseItem>(this); foreach (var counter in _game.Player.Counters) { Counters.Add(new CounterItemModel(counter, Counters)); } Counters.CollectionChanged += (sender, args) => { _game.Player.Counters = Counters.Select(x => ((CounterItemModel)x)._counter); }; AddCounterCommand = new RelayCommand(AddCounter); GlobalPiles = new IdeCollection <IdeBaseItem>(this); foreach (var pile in _game.GlobalPlayer.Groups) { GlobalPiles.Add(new GroupItemModel(pile, GlobalPiles)); } GlobalPiles.CollectionChanged += (sender, args) => { _game.GlobalPlayer.Groups = GlobalPiles.Select(x => ((GroupItemModel)x)._group); RaisePropertyChanged("CollapsedGlobalPiles"); RaisePropertyChanged("VisibleGlobalPiles"); Messenger.Default.Send(new GroupChangedMessage(args)); }; AddGlobalPileCommand = new RelayCommand(AddGlobalPile); GlobalCounters = new IdeCollection <IdeBaseItem>(this); foreach (var counter in _game.GlobalPlayer.Counters) { GlobalCounters.Add(new CounterItemModel(counter, GlobalCounters)); } GlobalCounters.CollectionChanged += (sender, args) => { _game.GlobalPlayer.Counters = GlobalCounters.Select(x => ((CounterItemModel)x)._counter); }; AddGlobalCounterCommand = new RelayCommand(AddGlobalCounter); CardSizes = new IdeCollection <IdeBaseItem>(this); foreach (var sizeDef in _game.CardSizes) { var size = new SizeItemModel(sizeDef.Value, CardSizes); CardSizes.Add(size); if (sizeDef.Key == "") { CardSizes.DefaultItem = size; } } CardSizes.CollectionChanged += (sender, args) => { UpdateCardSizesDef(); Messenger.Default.Send(new CardSizeChangedMesssage(args)); }; CardSizes.DefaultItemChanged += (sender, args) => { UpdateCardSizesDef(); }; AddSizeCommand = new RelayCommand(AddSize); Phases = new IdeCollection <IdeBaseItem>(this); foreach (var phase in _game.Phases) { Phases.Add(new PhaseItemModel(phase, Phases)); } Phases.CollectionChanged += (sender, args) => { _game.Phases = Phases.Select(x => ((PhaseItemModel)x)._phase).ToList(); }; AddPhaseCommand = new RelayCommand(AddPhase); Boards = new IdeCollection <IdeBaseItem>(this); foreach (var boardDef in _game.GameBoards) { var board = new BoardItemModel(boardDef.Value, Boards); Boards.Add(board); if (boardDef.Key == "") { Boards.DefaultItem = board; } } ActiveBoard = (BoardItemModel)Boards.DefaultItem; Boards.CollectionChanged += (sender, args) => { UpdateBoardsDef(); }; Boards.DefaultItemChanged += (sender, args) => { UpdateBoardsDef(); }; AddBoardCommand = new RelayCommand(AddBoard); Cards = new ObservableCollection <SampleCardItemModel>(); var card = new SampleCardItemModel { Size = (SizeItemModel)CardSizes.DefaultItem }; Cards.Add(card); RaisePropertyChanged("Cards"); }
public PreviewTabViewModel() { #region table if (_game.Table == null) { _game.Table = new Group() { Name = "Table", Width = 640, Height = 480 }; } Table = new TableItemModel(_game.Table, new IdeCollection <IdeBaseItem>(this)) { CanRemove = false, CanCopy = false, CanInsert = false }; #endregion #region piles if (_game.Player == null) { _game.Player = new Player(); } Piles = new IdeCollection <IdeBaseItem>(this); foreach (var pile in _game.Player.Groups) { Piles.Add(new GroupItemModel(pile, Piles)); } Piles.CollectionChanged += (sender, args) => { _game.Player.Groups = Piles.Select(x => ((GroupItemModel)x)._group); RaisePropertyChanged("CollapsedPiles"); RaisePropertyChanged("VisiblePiles"); Messenger.Default.Send(new GroupChangedMessage(args)); }; AddPileCommand = new RelayCommand(AddPile); #endregion #region counters Counters = new IdeCollection <IdeBaseItem>(this); foreach (var counter in _game.Player.Counters) { Counters.Add(new CounterItemModel(counter, Counters)); } Counters.CollectionChanged += (sender, args) => { _game.Player.Counters = Counters.Select(x => ((CounterItemModel)x)._counter); }; AddCounterCommand = new RelayCommand(AddCounter); #endregion #region globalpiles if (_game.GlobalPlayer == null) { _game.GlobalPlayer = new GlobalPlayer(); } GlobalPiles = new IdeCollection <IdeBaseItem>(this); foreach (var pile in _game.GlobalPlayer.Groups) { GlobalPiles.Add(new GroupItemModel(pile, GlobalPiles)); } GlobalPiles.CollectionChanged += (sender, args) => { _game.GlobalPlayer.Groups = GlobalPiles.Select(x => ((GroupItemModel)x)._group); RaisePropertyChanged("CollapsedGlobalPiles"); RaisePropertyChanged("VisibleGlobalPiles"); Messenger.Default.Send(new GroupChangedMessage(args)); }; AddGlobalPileCommand = new RelayCommand(AddGlobalPile); #endregion #region globalcounters GlobalCounters = new IdeCollection <IdeBaseItem>(this); foreach (var counter in _game.GlobalPlayer.Counters) { GlobalCounters.Add(new CounterItemModel(counter, GlobalCounters)); } GlobalCounters.CollectionChanged += (sender, args) => { _game.GlobalPlayer.Counters = GlobalCounters.Select(x => ((CounterItemModel)x)._counter); }; AddGlobalCounterCommand = new RelayCommand(AddGlobalCounter); #endregion #region sizes CardSizes = new IdeCollection <IdeBaseItem>(this); foreach (var sizeDef in _game.CardSizes) { var size = new SizeItemModel(sizeDef.Value, CardSizes); CardSizes.Add(size); if (sizeDef.Key == "") { CardSizes.DefaultItem = size; } } CardSizes.CollectionChanged += (sender, args) => { UpdateCardSizesDef(); Messenger.Default.Send(new CardSizeChangedMesssage(args)); }; CardSizes.DefaultItemChanged += (sender, args) => { UpdateCardSizesDef(); }; AddSizeCommand = new RelayCommand(AddSize); #endregion #region phases Phases = new IdeCollection <IdeBaseItem>(this); foreach (var phase in _game.Phases) { Phases.Add(new PhaseItemModel(phase, Phases)); } Phases.CollectionChanged += (sender, args) => { _game.Phases = Phases.Select(x => ((PhaseItemModel)x)._phase).ToList(); }; AddPhaseCommand = new RelayCommand(AddPhase); #endregion #region boards Boards = new IdeCollection <IdeBaseItem>(this); foreach (var boardDef in _game.GameBoards) { var board = new BoardItemModel(boardDef.Value, Boards); Boards.Add(board); if (boardDef.Key == "") { Boards.DefaultItem = board; } } Boards.CollectionChanged += (sender, args) => { UpdateBoardsDef(); }; Boards.DefaultItemChanged += (sender, args) => { UpdateBoardsDef(); }; AddBoardCommand = new RelayCommand(AddBoard); #endregion #region samplecards Cards = new ObservableCollection <SampleCardItemModel>(); if (CardSizes.DefaultItem != null) { var card = new SampleCardItemModel { Size = (SizeItemModel)CardSizes.DefaultItem }; Cards.Add(card); } #endregion #region activeboard if (Boards.DefaultItem != null) { ActiveBoard = (BoardItemModel)Boards.DefaultItem; } #endregion }