Exemplo n.º 1
0
        void MoveServerListItem(ref Views.UserControls.ServerUI moving, ref Views.UserControls.ServerUI destination)
        {
            var indexDest   = destination.GetIndex();
            var indexMoving = moving.GetIndex();

            if (indexDest == indexMoving)
            {
                return;
            }

            moving.SetIndex(
                indexDest < indexMoving ?
                indexDest - 0.5 :
                indexDest + 0.5);

            RefreshUI();
        }
Exemplo n.º 2
0
        void RefreshFlyPanelWorker(Action done)
        {
            var start = DateTime.Now.Millisecond;

            servers.ResetIndex();
            var flatList    = GetFilteredList();
            var pagedList   = GenPagedServerList(flatList);
            var showWelcome = servers.CountAllServers() == 0;
            List <Views.UserControls.ServerUI> removed = null;

            Action next = () =>
            {
                lazyStatusBarUpdater?.Postpone();
                if (removed != null)
                {
                    DisposeFlyPanelControlByList(removed);
                }
                var relex = flyPanelUpdateInterval - (DateTime.Now.Millisecond - start);
                VgcApis.Misc.Utils.Sleep(Math.Max(0, relex));
                done();
            };

            Action worker = () =>
            {
                flyPanel.SuspendLayout();
                removed = GetAllServerControls();
                flyPanel.Controls.Clear();
                if (showWelcome)
                {
                    flyPanel.Controls.Add(welcomeItem);
                }
                else
                {
                    foreach (var serv in pagedList)
                    {
                        var ui = new Views.UserControls.ServerUI(serv);
                        flyPanel.Controls.Add(ui);
                    }
                }
                flyPanel.ResumeLayout();
            };

            VgcApis.Misc.UI.InvokeThen(worker, next);
        }
Exemplo n.º 3
0
        void MoveServerListItem(ref Views.UserControls.ServerUI moving, ref Views.UserControls.ServerUI destination)
        {
            if (moving == null || destination == null)
            {
                ReloadFlyPanel();
                return;
            }

            var indexDest   = destination.GetIndex();
            var indexMoving = moving.GetIndex();

            if (indexDest == indexMoving)
            {
                return;
            }

            moving.SetIndex(
                indexDest < indexMoving ?
                indexDest - 0.5 :
                indexDest + 0.5);
            RefreshUI();
        }