Exemplo n.º 1
0
        public int DoResizeStep(int currentVal)
        {
            switch (rsStage)
            {
            case ResizeStage.Sleeping: return(currentVal);            // do nothing

            case ResizeStage.Accelerating:
                if (rsMaximizing)
                {
                    rsSpeed++;
                }
                else
                {
                    rsSpeed--;
                }
                if ((rsMaximizing && currentVal > rsTarget) || (!rsMaximizing && currentVal < rsTarget))
                {
                    rsStage++;
                }
                return(currentVal + rsSpeed);

            case ResizeStage.Breaking:
                rsSpeed /= 2;
                if (rsSpeed <= 10)
                {
                    rsStage++;
                }
                return(currentVal + rsSpeed);

            case ResizeStage.Reversing:
                if (rsMaximizing)
                {
                    rsSpeed--;
                }
                else
                {
                    rsSpeed++;
                }
                if ((rsMaximizing && currentVal + rsSpeed < rsTarget) || (!rsMaximizing && currentVal + rsSpeed > rsTarget))
                {
                    rsStage = ResizeStage.Sleeping;
                    return(rsTarget);
                }
                return(currentVal + rsSpeed);
            }
            return(currentVal);
        }
Exemplo n.º 2
0
 public void Set(int current, int target)
 {
     if (current == target)
     {
         rsStage = ResizeStage.Sleeping;
         return;
     }
     rsTarget     = target;
     rsSpeed      = 0;
     rsMaximizing = current < rsTarget;
     if (rsMaximizing)
     {
         rsOverlap = rsTarget + ((rsTarget - current) / 3);
     }
     else
     {
         rsOverlap = rsTarget - ((current - rsTarget) / 3);
     }
     rsStage = ResizeStage.Accelerating;
 }
Exemplo n.º 3
0
 public ResizeTool()
 {
     rsStage = ResizeStage.Sleeping;
 }