void Item_Event(object obj, Gnome.CanvasEventArgs args) { EventButton ev = new EventButton(args.Event.Handle); CanvasRE item = (CanvasRE)obj; switch (ev.Type) { case EventType.ButtonPress: if (ev.Button == 1) { remember_x = ev.X; remember_y = ev.Y; args.RetVal = true; return; } else if (ev.Button == 3) { item.Destroy(); args.RetVal = true; return; } break; case EventType.TwoButtonPress: ChangeItemColor(item); args.RetVal = true; return; case EventType.MotionNotify: Gdk.ModifierType state = (Gdk.ModifierType)ev.State; if ((state & Gdk.ModifierType.Button1Mask) != 0) { double new_x = ev.X, new_y = ev.Y; item.Move(new_x - remember_x, new_y - remember_y); remember_x = new_x; remember_y = new_y; args.RetVal = true; return; } break; case EventType.EnterNotify: item.WidthUnits = 3.0; args.RetVal = true; return; case EventType.LeaveNotify: item.WidthUnits = 1.0; args.RetVal = true; return; } args.RetVal = false; return; }
void AddObject(object obj, EventArgs args) { double x1 = random.Next(width); double y1 = random.Next(height); double x2 = random.Next(width); double y2 = random.Next(height); if (x1 > x2) { Swap(ref x1, ref x2); } if (y1 > y2) { Swap(ref y1, ref y2); } if ((x2 - x1) < 10) { x2 += 10; } if ((y2 - y1) < 10) { y2 += 10; } CanvasRE item = null; if (random.Next(2) > 0) { item = new CanvasRect(canvas.Root()); } else { item = new CanvasEllipse(canvas.Root()); } item.X1 = x1; item.Y1 = y1; item.X2 = x2; item.Y2 = y2; item.FillColor = "white"; item.OutlineColor = "black"; item.WidthUnits = 1.0; item.CanvasEvent += new Gnome.CanvasEventHandler(Item_Event); }
void ChangeItemColor (CanvasRE item) { string[] colors = new string[] {"red", "yellow", "green", "cyan", "blue", "magenta"}; item.FillColor = colors[random.Next (colors.Length)]; }
void ChangeItemColor(CanvasRE item) { string[] colors = new string[] { "red", "yellow", "green", "cyan", "blue", "magenta" }; item.FillColor = colors[random.Next(colors.Length)]; }