예제 #1
0
    public static void Focus()
    {
        // Se o digitalizador não estiver habilitado então isso não é necessário
        if (Focused != null && Focused.Viewable)
        {
            return;
        }

        // Percorre toda a árvore de ordem para executar o comando
        Stack <List <Tools.Order_Structure> > Stack = new Stack <List <Tools.Order_Structure> >();

        Stack.Push(Tools.Order);
        while (Stack.Count != 0)
        {
            List <Tools.Order_Structure> Top = Stack.Pop();

            for (byte i = 0; i < Top.Count; i++)
            {
                if (Top[i].Data.Visible)
                {
                    // Altera o digitalizador focado para o primeiro visível
                    if (Top[i].Data is Structure && !Tools.Order[i].Data.Name.Equals("Chat"))
                    {
                        Focused = Top[i];
                        return;
                    }
                    Stack.Push(Top[i].Nodes);
                }
            }
        }
        Focused = null;
    }
예제 #2
0
    public static void ChangeFocus()
    {
        List <Tools.Order_Structure> Parent;

        if (Focused.Parent != null)
        {
            Parent = Focused.Parent.Nodes;
        }
        else
        {
            Parent = Tools.Order;
        }
        int Index = Parent.IndexOf(Focused), Temp = Index + 1;

        // Altera o digitalizador focado para o próximo
        while (Temp != Index)
        {
            if (Temp == Parent.Count)
            {
                Temp = 0;
            }
            if (Parent[Temp].Viewable && Parent[Temp].Data is Structure)
            {
                Focused = Parent[Temp];
                return;
            }
            Temp++;
        }
    }
예제 #3
0
파일: Read.cs 프로젝트: Kukks/CryBits
    private static void Tools(Tools.Order_Structure Parent, ref List <Tools.Order_Structure> Node, BinaryReader Data)
    {
        // Lê todos os filhos
        byte Size = Data.ReadByte();

        for (byte i = 0; i < Size; i++)
        {
            // Lê a ferramenta
            Tools.Structure Temp_Tool = new Tools.Structure();
            switch ((Tools.Types)Data.ReadByte())
            {
            case global::Tools.Types.Button: Temp_Tool = Button(Data); Buttons.List.Add((Buttons.Structure)Temp_Tool); break;

            case global::Tools.Types.TextBox: Temp_Tool = TextBox(Data); TextBoxes.List.Add((TextBoxes.Structure)Temp_Tool); break;

            case global::Tools.Types.Panel: Temp_Tool = Panel(Data); Panels.List.Add((Panels.Structure)Temp_Tool); break;

            case global::Tools.Types.CheckBox: Temp_Tool = CheckBox(Data); CheckBoxes.List.Add((CheckBoxes.Structure)Temp_Tool); break;
            }

            // Adiciona à lista
            Tools.Order_Structure Temp_Order = new Tools.Order_Structure();
            Temp_Order.Nodes  = new List <Tools.Order_Structure>();
            Temp_Order.Parent = Parent;
            Temp_Order.Data   = Temp_Tool;
            Node.Add(Temp_Order);

            // Pula pro próximo
            Tools(Node[i], ref Node[i].Nodes, Data);
        }
    }
예제 #4
0
        // Eventos
        public void MouseUp(Tools.Order_Structure Order)
        {
            // Somente se necessário
            if (!Tools.IsAbove(new Rectangle(Position, new Size(Width, Graphics.TSize(Graphics.Tex_TextBox).Height))))
            {
                return;
            }

            // Define o foco no digitalizador
            Focused = Order;

            // Altera o foco do digitalizador
            if (((Structure)Order.Data).Name.Equals("Chat"))
            {
                Loop.Chat_Timer            = Environment.TickCount + Chat.Sleep_Timer;
                Panels.Get("Chat").Visible = true;
            }
        }