public MessageBoxControl() { DataContext = this; InitializeComponent(); _username = user.Username; socket = AppSocket.Instance; GetChatRooms(); currentChannel = "Général"; socket.Emit("joinChannel", user.Username, "Général"); socket.On("newChannel", (data) => { GetChatRooms(); }); socket.On("chat message", (data) => { Console.WriteLine("message!"); Newtonsoft.Json.Linq.JObject obj = (Newtonsoft.Json.Linq.JObject)data; Newtonsoft.Json.Linq.JToken un = obj.GetValue("username"); Newtonsoft.Json.Linq.JToken ts = obj.GetValue("timestamp"); Newtonsoft.Json.Linq.JToken ms = obj.GetValue("message"); Newtonsoft.Json.Linq.JToken channelName = obj.GetValue("channel"); string newMessage = Environment.NewLine + un.ToString() + ts.ToString() + ":\n" + ms.ToString() + Environment.NewLine; updateDictionnary(newMessage.ToString(), channelName.ToString()); Dispatcher.Invoke(() => { if (currentChannel == channelName.ToString()) { messageList.Text += newMessage.ToString(); } }); }); }
public WaitingRoomViewModel() { socket.On("joinGame", (data) => { Console.WriteLine(data); Newtonsoft.Json.Linq.JArray test = (Newtonsoft.Json.Linq.JArray)data; Console.WriteLine(test.Count); if (test.Count != 0) { for (int i = 0; i < test.Count; i++) { string text = test[i] + ", "; Console.WriteLine("names: " + text); TextBoxData += text; } } }); socket.On("nextRound", (data) => { Mediator.Notify("GoToFreeForAll", ""); }); }
private void GetChatRooms() { List <string> temp = new List <string>(); socket.Emit("channels"); socket.On("channels", (data) => { temp = (JsonConvert.DeserializeObject <List <string> >(data.ToString())); Dispatcher.Invoke(() => { foreach (var channel in temp) { if (!channels.Contains(channel)) { channels.Add(channel); ListOfChannels.Items.Add(channel); } } }); }); }
public DrawingWindow() { InitializeComponent(); drawingAttributes = surfaceDessin.DefaultDrawingAttributes; drawingAttributes.Color = (Color)ColorConverter.ConvertFromString("#000000"); drawingAttributes.Height = 10; drawingAttributes.Width = 10; drawingAttributes.StylusTip = StylusTip.Ellipse; socket.On(SocketEvents.STROKE_DRAWING, (points) => { Dispatcher.Invoke(() => { Stroke newStroke = new Stroke(JsonConvert.DeserializeObject <StylusPointCollection>(points.ToString())); newStroke.DrawingAttributes = drawingAttributes; newStroke.DrawingAttributes.Color = drawingAttributes.Color; newStroke.DrawingAttributes.Width = drawingAttributes.Width; newStroke.DrawingAttributes.Height = drawingAttributes.Height; newStroke.DrawingAttributes.StylusTip = drawingAttributes.StylusTip; surfaceDessin.Strokes.Add(newStroke); ongoingStrokeIndex.Add(newStroke); }); }); socket.On(SocketEvents.STROKE_COLLECTED, (points) => { Dispatcher.Invoke(() => { Stroke newStroke = new Stroke(JsonConvert.DeserializeObject <StylusPointCollection>(points.ToString())); newStroke.DrawingAttributes.Color = drawingAttributes.Color; newStroke.DrawingAttributes.Width = drawingAttributes.Width; newStroke.DrawingAttributes.Height = drawingAttributes.Height; newStroke.DrawingAttributes.StylusTip = drawingAttributes.StylusTip; foreach (Stroke strokeToDelete in ongoingStrokeIndex) { surfaceDessin.Strokes.Remove(strokeToDelete); } surfaceDessin.Strokes.Add(newStroke); ongoingStrokeIndex.Clear(); }); }); socket.On(SocketEvents.STROKE_ERASING, (points) => { Dispatcher.Invoke(() => { List <StylusPoint> pointsToCheck = (JsonConvert.DeserializeObject <List <StylusPoint> >(points.ToString())); pointsToCheck.ForEach((point) => { StrokeCollection strokesToBeErased = surfaceDessin.Strokes.HitTest(new Point(point.X, point.Y)); surfaceDessin.Strokes.Remove(strokesToBeErased); }); }); }); socket.On(SocketEvents.STROKE_SEGMENT_ERASING, (points) => { Dispatcher.Invoke(() => { List <StylusPoint> pointsToCheck = (JsonConvert.DeserializeObject <List <StylusPoint> >(points.ToString())); Console.WriteLine(pointsToCheck.Count + " POINTS"); IncrementalStrokeHitTester eraserTester = surfaceDessin.Strokes.GetIncrementalStrokeHitTester(generateStylusShape()); eraserTester.StrokeHit += EraserTester_StrokeHit; pointsToCheck.ForEach((point) => eraserTester.AddPoint(new Point(point.X, point.Y))); eraserTester.StrokeHit -= EraserTester_StrokeHit; eraserTester.EndHitTesting(); }); }); socket.On(SocketEvents.STROKE_COLOR, (color) => { Dispatcher.Invoke(() => { string hex = "#" + ((Int64)color).ToString("X8"); drawingAttributes.Color = (Color)ColorConverter.ConvertFromString(hex); }); }); socket.On(SocketEvents.STROKE_SIZE, (size) => { Dispatcher.Invoke(() => { drawingAttributes.Height = Convert.ToInt32(size.ToString()); drawingAttributes.Width = Convert.ToInt32(size.ToString()); }); }); socket.On(SocketEvents.STROKE_TIP, (tip) => { Dispatcher.Invoke(() => { drawingAttributes.StylusTip = ((string)tip == Tool.PEN_ROUND_TIP) ? StylusTip.Ellipse : StylusTip.Rectangle; }); }); socket.On(SocketEvents.STROKE_TOOL, (tool) => { Dispatcher.Invoke(() => { OutilSelectionne = tool.ToString(); }); }); }
/// <summary> /// Constructeur de VueModele /// On récupère certaines données initiales du modèle et on construit les commandes /// sur lesquelles la vue se connectera. /// </summary> public FreeForAllViewModel() { JoiningGameWindow tes = new JoiningGameWindow(); socket.On("nextRound", (data) => { Console.WriteLine("se rend au next round"); // string test = data.ToString(); Console.WriteLine(data); JavaScriptSerializer js = new JavaScriptSerializer(); info = js.Deserialize <response>(data.ToString()); string name = info.draftsman; string user = User.instance.Username; if (name == user) { ActivateDrawing = true; ActivateGuessing = false; } else { ActivateDrawing = false; ActivateGuessing = true; } TextBoxWordData = info.game.name; }); socket.On("answer", (data) => { Console.WriteLine("answer socket"); Newtonsoft.Json.Linq.JObject obj = (Newtonsoft.Json.Linq.JObject)data; Newtonsoft.Json.Linq.JToken un = obj.GetValue("valid"); Newtonsoft.Json.Linq.JToken ts = obj.GetValue("score"); bool validity = (bool)un; if (validity) { answerBox = false; } else { answerBox = true; } Console.WriteLine("answer validity: " + answerBox.ToString()); Console.WriteLine("score: " + (string)ts); }); ButtonCommand = new RelayCommand(o => ConvertDrawingToSVG("ToSVG")); // On écoute pour des changements sur le modèle. Lorsqu'il y en a, EditeurProprieteModifiee est appelée. editeur.PropertyChanged += new PropertyChangedEventHandler(EditeurProprieteModifiee); // On initialise les attributs de dessin avec les valeurs de départ du modèle. AttributsDessin = new DrawingAttributes(); AttributsDessin.Color = (Color)ColorConverter.ConvertFromString(editeur.CouleurSelectionnee); AjusterPointe(); Traits = editeur.traits; // Pour les commandes suivantes, il est toujours possible des les activer. // Donc, aucune vérification de type Peut"Action" à faire. ChoisirPointe = new RelayCommand <string>(editeur.ChoisirPointe); ChoisirOutil = new RelayCommand <string>(editeur.ChoisirOutil); }