Ejemplo n.º 1
0
        protected override void OnEnter(EventArgs e)
        {
            bool flag = true;

            base.OnEnter(e);
            if (_layout != null)
            {
                if (_layout.NodeCount > 0)
                {
                    ServerLabel serverLabel = _layout.LabelArray[_layout.FocusedServerIndex - 1];
                    if (serverLabel.Parent == this)
                    {
                        serverLabel.Focus();
                        flag = false;
                    }
                }
            }
            else
            {
                ServerBase serverBase = ServerTree.Instance.SelectedNode as ServerBase;
                if (serverBase != null)
                {
                    serverBase.Focus();
                    flag = false;
                }
            }
            if (flag)
            {
                Focus();
            }
        }
Ejemplo n.º 2
0
        private void DrawThumbnail(ServerLabel label, int windowTop)
        {
            Rectangle thumbnailAbsoluteBounds = _layout.GetThumbnailAbsoluteBounds(label.ThumbnailIndex);
            int       num    = thumbnailAbsoluteBounds.Top - windowTop;
            int       top    = num + ThumbnailLabelHeight - 1;
            Server    server = label.Server;

            server.SetThumbnailView(thumbnailAbsoluteBounds.X, top, thumbnailAbsoluteBounds.Width, thumbnailAbsoluteBounds.Height);
            label.Size     = new Size(thumbnailAbsoluteBounds.Width, ThumbnailLabelHeight);
            label.Location = new Point(thumbnailAbsoluteBounds.X, num);
            base.Controls.Add(label);
            label.Show();
            server.Show();
            if (Program.TheForm.ActiveControl == this && label.ThumbnailIndex == _layout.FocusedServerIndex)
            {
                label.Focus();
                _layout.FocusedServerIndex = 0;
            }
        }
Ejemplo n.º 3
0
        protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {
            ServerLabel serverLabel = Program.TheForm.ActiveControl as ServerLabel;

            if (serverLabel == null)
            {
                if (_layout == null || Program.TheForm.ActiveControl != this)
                {
                    return(base.ProcessCmdKey(ref msg, keyData));
                }
                serverLabel = _layout.LabelArray[_layout.FocusedServerIndex - 1];
            }
            _layout.EnsureTabIndex();
            int value          = serverLabel.Server.DisplaySettings.ThumbnailScale.Value;
            int thumbnailIndex = serverLabel.ThumbnailIndex;
            int num            = _layout.ServerTileX[thumbnailIndex];
            int num2           = _layout.ServerTileY[thumbnailIndex];
            int tabIndex       = serverLabel.TabIndex;

            switch (keyData)
            {
            case Keys.Tab:
            case Keys.LButton | Keys.Back | Keys.Shift:
                ServerTree.Instance.Focus();
                return(true);

            case Keys.Left:
                if (--tabIndex == 0)
                {
                    return(true);
                }
                thumbnailIndex = _layout.TabIndexToServerIndex[tabIndex];
                num            = _layout.ServerTileX[thumbnailIndex];
                num2           = _layout.ServerTileY[thumbnailIndex];
                break;

            case Keys.Right:
                if (++tabIndex > _layout.NodeCount)
                {
                    return(true);
                }
                thumbnailIndex = _layout.TabIndexToServerIndex[tabIndex];
                num            = _layout.ServerTileX[thumbnailIndex];
                num2           = _layout.ServerTileY[thumbnailIndex];
                break;

            case Keys.Up:
                if (--num2 < 0)
                {
                    return(true);
                }
                break;

            case Keys.Down:
                num2 += value;
                if (num2 > _layout.LowestTileY)
                {
                    return(true);
                }
                break;

            case Keys.Home:
                num  = 0;
                num2 = 0;
                break;

            case Keys.End:
                num  = _layout.ServerLayoutToIndex.GetUpperBound(1);
                num2 = _layout.LowestTileY;
                break;

            case Keys.Prior:
            {
                if (num2 == 0)
                {
                    return(true);
                }
                int val3 = (int)Math.Floor((double)serverLabel.Top / (double)UnitHeight);
                int val4 = base.Height / UnitHeight;
                int num4 = Math.Max(val3, val4);
                num2 = Math.Max(0, num2 - num4);
                break;
            }

            case Keys.Next:
            {
                if (num2 == _layout.LowestTileY)
                {
                    return(true);
                }
                int val  = (int)Math.Floor((double)(serverLabel.Top + GetServerHeight(value)) / (double)UnitHeight);
                int val2 = base.Height / UnitHeight;
                int num3 = Math.Max(val, val2);
                num2 = Math.Min(_layout.LowestTileY, num2 + num3);
                break;
            }

            default:
                return(base.ProcessCmdKey(ref msg, keyData));
            }
            while (true)
            {
                thumbnailIndex = _layout.ServerLayoutToIndex[num2, num];
                if (thumbnailIndex != 0)
                {
                    break;
                }
                num--;
            }
            serverLabel = _layout.LabelArray[thumbnailIndex - 1];
            ScrollServerIntoView(serverLabel);
            serverLabel.Focus();
            return(true);
        }