diff --git a/networkPaint/MainForm.Designer.cs b/networkPaint/MainForm.Designer.cs index c64b689..c4e9f67 100644 --- a/networkPaint/MainForm.Designer.cs +++ b/networkPaint/MainForm.Designer.cs @@ -48,7 +48,9 @@ this.paintArea.Size = new System.Drawing.Size(640, 480); this.paintArea.TabIndex = 0; this.paintArea.TabStop = false; - this.paintArea.Click += new System.EventHandler(this.paintArea_Click); + this.paintArea.MouseDown += new System.Windows.Forms.MouseEventHandler(this.paintArea_MouseDown); + this.paintArea.MouseMove += new System.Windows.Forms.MouseEventHandler(this.paintArea_MouseMove); + this.paintArea.MouseUp += new System.Windows.Forms.MouseEventHandler(this.paintArea_MouseUp); // // timer // diff --git a/networkPaint/MainForm.cs b/networkPaint/MainForm.cs index 4d6574a..f2721cf 100644 --- a/networkPaint/MainForm.cs +++ b/networkPaint/MainForm.cs @@ -8,30 +8,44 @@ namespace networkPaint { public partial class MainForm : Form { - Color color; Random r = new Random(); WebClient client = new WebClient(); - Bitmap bitmap; + Bitmap bitmap = new Bitmap(640, 480); Graphics graphics; + + Color color; string url = "http://kawaiizenbo.me/toys/networkpaint/"; + bool dragging = false; + public MainForm() { InitializeComponent(); color = intToRGB(r.Next(0, 0xFFFFFF)); - bitmap = new Bitmap(640, 480); paintArea.Image = bitmap; graphics = Graphics.FromImage(bitmap); } - private void paintArea_Click(object sender, EventArgs e) + private void paintArea_MouseUp(object sender, MouseEventArgs e) { - MouseEventArgs em = (MouseEventArgs)e; - NameValueCollection values = new NameValueCollection(); - values["color"] = rgbToInt(color).ToString(); - values["x"] = em.X.ToString(); - values["y"] = em.Y.ToString(); - values["size"] = brushSizeNumericUpDown.Value.ToString(); - client.UploadValues(url + "post.php", values); + dragging = false; + } + + private void paintArea_MouseDown(object sender, MouseEventArgs e) + { + dragging = true; + } + + private void paintArea_MouseMove(object sender, MouseEventArgs e) + { + if (dragging) + { + NameValueCollection values = new NameValueCollection(); + values["color"] = rgbToInt(color).ToString(); + values["x"] = e.X.ToString(); + values["y"] = e.Y.ToString(); + values["size"] = brushSizeNumericUpDown.Value.ToString(); + client.UploadValues(url + "post.php", values); + } } private void MainForm_Load(object sender, EventArgs e) @@ -44,6 +58,7 @@ namespace networkPaint string responseString = client.DownloadString(url + "data.ppf"); client.Dispose(); if (responseString.Trim() == "") return; + graphics.Clear(Color.White); foreach (string packet in responseString.Split(';')) { try @@ -63,16 +78,6 @@ namespace networkPaint paintArea.Image = bitmap; } - public static int rgbToInt(Color color) - { - return ((255 & 0x0ff) << 24) | ((color.R & 0x0ff) << 16) | ((color.G & 0x0ff) << 8) | (color.B & 0x0ff); - } - - public static Color intToRGB(int color) - { - return Color.FromArgb(0xFF, (color & 0x00FF0000) >> 16, (color & 0x0000FF00) >> 8, color & 0x000000FF); - } - private void changeColorButton_Click(object sender, EventArgs e) { colorDialog.ShowDialog(); @@ -98,5 +103,15 @@ namespace networkPaint paintArea.Image = bitmap; graphics = Graphics.FromImage(bitmap); } + + public static int rgbToInt(Color color) + { + return ((255 & 0x0ff) << 24) | ((color.R & 0x0ff) << 16) | ((color.G & 0x0ff) << 8) | (color.B & 0x0ff); + } + + public static Color intToRGB(int color) + { + return Color.FromArgb(0xFF, (color & 0x00FF0000) >> 16, (color & 0x0000FF00) >> 8, color & 0x000000FF); + } } }