Esempio n. 1
0
 public TileGridAction(MouseButton button, MouseModifier mod, GridAction action, TileGridEventHandler callback = null)
 {
     this.button   = button;
     this.mod      = mod;
     this.action   = action;
     this.callback = callback;
 }
Esempio n. 2
0
            public SubTileCollisionEditor() : base()
            {
                Width      = 2;
                Height     = 2;
                TileWidth  = 8;
                TileHeight = 8;
                Scale      = 2;

                // On clicked...
                TileGridEventHandler callback = delegate(object sender, int index) {
                    // Toggle the collision of the subtile if it uses the
                    // "basic" collision mode (upper nibble is zero).
                    if ((tileset.GetTileCollision(TileIndex) & 0xf0) == 0)
                    {
                        SetBasicCollision(TileIndex, HoveringX, HoveringY,
                                          !GetBasicCollision(TileIndex, HoveringX, HoveringY));
                    }
                };

                base.AddMouseAction(MouseButton.Any, MouseModifier.Any | MouseModifier.Drag, GridAction.Callback, callback);
            }
Esempio n. 3
0
        // Constructors

        public SelectionBox() : base()
        {
            base.Width        = 8;
            base.Height       = 2;
            base.TileWidth    = 18;
            base.TileHeight   = 18;
            base.TilePaddingX = 2;
            base.TilePaddingY = 2;

            base.Selectable      = true;
            base.BackgroundColor = new Cairo.Color(0.8, 0.8, 0.8);
            base.HoverColor      = RoomEditor.ObjectHoverColor;

            TileGridEventHandler dragCallback = (sender, index) => {
                if (index != SelectedIndex)
                {
                    OnMoveSelection(SelectedIndex, index);
                    SelectedIndex = index;
                }
            };

            base.AddMouseAction(MouseButton.LeftClick, MouseModifier.Any | MouseModifier.Drag,
                                GridAction.Callback, dragCallback);


            this.ButtonPressEvent += (sender, args) => {
                if (args.Event.Button == 3)
                {
                    if (HoveringIndex != -1)
                    {
                        SelectedIndex = HoveringIndex;
                    }
                    ShowPopupMenu(args.Event);
                }
            };
        }
Esempio n. 4
0
        public void AddMouseAction(MouseButton button, MouseModifier mod, GridAction action, TileGridEventHandler callback = null)
        {
            TileGridAction act;

            if (action == GridAction.Callback)
            {
                if (callback == null)
                {
                    throw new Exception("Need to specify a callback.");
                }
                act = new TileGridAction(button, mod, action, callback);
            }
            else
            {
                if (callback != null)
                {
                    throw new Exception("This action doesn't take a callback.");
                }
                act = new TileGridAction(button, mod, action);
            }

            actionList.Add(act);
        }