示例#1
0
 protected virtual void DoDragStartEvent(ref BaseDragObject dragObject)
 {
     if (OnDragStart != null)
     {
         OnDragStart.Invoke(this, ref dragObject);
     }
 }
示例#2
0
        private void OnIngrDragStart(object sender, ref BaseDragObject dragObject)
        {
            int idx = fIngredientsList.SelIndex;

            if (idx >= 0 && idx < fIngredientsList.Items.Count)
            {
                Item item = (Item)((fIngredientsList.Items.GetItem(idx).Data is Item) ? fIngredientsList.Items.GetItem(idx).Data : null);
                dragObject = new InventoryObject();
                ((InventoryObject)dragObject).InvItem = item;
            }
        }
示例#3
0
        private void OnColDragStart(object sender, ref BaseDragObject dragObject)
        {
            int idx = fColList.SelIndex;

            if (idx >= 0 && idx < fColList.Items.Count)
            {
                Item item = (Item)fColList.Items.GetItem(idx).Data;
                dragObject = new InventoryObject();
                ((InventoryObject)dragObject).InvItem = item;
            }
        }
        private void OnPackDragStart(object sender, ref BaseDragObject dragObject)
        {
            int idx = fPackList.SelIndex;

            if (idx >= 0 && idx < fPackList.Items.Count)
            {
                Item item = (Item)fPackList.Items.GetItem(idx).Data;
                if (fIngredientsList.Items.IndexOf(item.Name) < 0)
                {
                    dragObject = new InventoryObject();
                    ((InventoryObject)dragObject).InvItem = item;
                }
            }
        }
示例#5
0
        private void OnPackDragStart(object sender, ref BaseDragObject dragObject)
        {
            int idx = fPackList.SelIndex;

            if (idx >= 0 && idx < fPackList.Items.Count)
            {
                Item item = (Item)fPackList.Items.GetItem(idx).Data;
                if (fIngredients.FindByGUID(item.UID_Renamed) == null)
                {
                    dragObject = new InventoryObject();
                    ((InventoryObject)dragObject).InvItem = item;
                }
                else
                {
                    dragObject = null;
                }
            }
        }
示例#6
0
        protected void Repaint(BaseScreen screen)
        {
            try {
                if (fStyleChanging)
                {
                    return;
                }

                AdjustAbsCoords();
                ResetAbsClip(screen);

                DoPaintEvent(screen);

                int num = fControls.Count;
                for (int i = 0; i < num; i++)
                {
                    BaseControl ctl = fControls[i];
                    if (ctl.fVisible)
                    {
                        ctl.Repaint(screen);
                    }
                }

                ResetAbsClip(screen);

                if (fOwner == null)
                {
                    BaseImage cur = GetSubControl(fMouseX, fMouseY).Cursor;
                    if (cur != null)
                    {
                        screen.DrawImage(fMouseX, fMouseY, 0, 0, cur.Width, cur.Height, cur, 255);
                    }

                    BaseDragObject dragObject = DragObject;
                    if (dragObject != null)
                    {
                        dragObject.Draw(screen);
                    }
                }
            } catch (Exception ex) {
                Logger.Write("BaseControl.repaint(" + GetType().Name + "): " + ex.Message);
            }
        }
示例#7
0
        private void ExDragInit(bool immediate)
        {
            BaseMainWindow mainWnd = MainWindow;

            DragControl = this;
            try {
                BaseDragObject dObject = null;
                DragControl.DoDragStartEvent(ref dObject);

                if (DragControl == null)
                {
                    return;
                }

                if (dObject == null)
                {
                    dObject = new BaseDragObject();
                }
                DragObject              = dObject;
                DragObject.DragTarget   = null;
                DragObject.DragStartPos = mainWnd.MousePoint;
                DragObject.DragPos      = DragObject.DragStartPos;

                if (immediate)
                {
                    DragObject.ActiveDrag = true;
                }
                else
                {
                    DragObject.ActiveDrag = false;
                }

                if (DragObject.ActiveDrag)
                {
                    ExDragTo(DragObject.DragStartPos);
                }
            } catch (Exception e) {
                DragControl = null;
                throw e;
            }
        }
示例#8
0
        public static void ExDragDone(bool Drop)
        {
            if (DragObject != null && !DragObject.Cancelling)
            {
                BaseDragObject DragSave = DragObject;
                try {
                    try {
                        DragObject.Cancelling = true;
                        ExtPoint TargetPos = ExtPoint.Empty;

                        if (DragObject.DragTarget != null && DragObject.DragTarget != null)
                        {
                            TargetPos = DragObject.DragPos;
                        }

                        bool Accepted = (DragObject.DragTarget != null & Drop) && DragObject.ActiveDrag && ExDoDragOver(DRAGSTATE_LEAVE);

                        if (Accepted)
                        {
                            DragControl.DoDragEndEvent(DragObject.DragTarget, TargetPos.X, TargetPos.Y);
                            DragObject.DragTarget.DoDragDropEvent(DragControl, TargetPos.X, TargetPos.Y);
                        }
                    } finally {
                        if (DragSave != null)
                        {
                            DragSave.Cancelling = false;
                        }
                        DragObject = null;
                    }
                } finally {
                    DragControl = null;
                    if (DragSave != null)
                    {
                        DragSave = null;
                    }
                }
            }
        }