MegaMan.LevelEditor.JoinTool.Click C# (CSharp) Метод

Click() публичный Метод

public Click ( ScreenDrawingSurface surface, Point location ) : void
surface ScreenDrawingSurface
location System.Drawing.Point
Результат void
        public void Click(ScreenDrawingSurface surface, Point location)
        {
            ContextMenu menu = new ContextMenu();

            // find a join to modify
            var nearest = NearestJoin(surface, location);

            if (nearest != null)
            {
                string typeText = (nearest.type == JoinType.Vertical)? "Left-Right" : "Up-Down";

                menu.MenuItems.Add("Modify " + typeText + " Join from " + nearest.screenOne + " to " + nearest.screenTwo, (s, e) => EditJoin(surface, nearest));

                menu.MenuItems.Add("Delete " + typeText + " Join from " + nearest.screenOne + " to " + nearest.screenTwo, (s, e) => DeleteJoin(surface, nearest));
            }
            else
            {
                if (location.X > surface.Width - surface.Screen.Tileset.TileSize)
                {
                    menu.MenuItems.Add(new MenuItem("New Rightward Join from " + surface.Screen.Name,
                                                    (s, e) => NewJoin(surface, surface.Screen.Name, "", JoinType.Vertical, location.Y / surface.Screen.Tileset.TileSize)));
                }
                if (location.X < surface.Screen.Tileset.TileSize)
                {
                    menu.MenuItems.Add(new MenuItem("New Leftward Join from " + surface.Screen.Name,
                                                    (s, e) => NewJoin(surface, "", surface.Screen.Name, JoinType.Vertical, location.Y / surface.Screen.Tileset.TileSize)));
                }
                if (location.Y > surface.Height - surface.Screen.Tileset.TileSize)
                {
                    menu.MenuItems.Add(new MenuItem("New Downward Join from " + surface.Screen.Name,
                                                    (s, e) => NewJoin(surface, surface.Screen.Name, "", JoinType.Horizontal, location.X / surface.Screen.Tileset.TileSize)));
                }
                if (location.Y < surface.Screen.Tileset.TileSize)
                {
                    menu.MenuItems.Add(new MenuItem("New Upward Join from " + surface.Screen.Name,
                                                    (s, e) => NewJoin(surface, "", surface.Screen.Name, JoinType.Horizontal, location.X / surface.Screen.Tileset.TileSize)));
                }
            }
            menu.Show(surface, location);
        }