Exemple #1
0
        public UiYesNoBox(string message, string caption)
        {
            children = new List<UiComponent>();
            backgroundColor = GraphicScheme.uiBackgroundColor;

            Width = width;

            this.caption = new UiLabel(caption, GraphicScheme.font1);
            this.message = new UiLabel(message, GraphicScheme.font1);

            this.caption.X = 3;
            this.caption.Y = 3;
            this.message.X = 3;
            this.message.Y = 6 + this.caption.Height;

            AddChild(this.caption);
            AddChild(this.message);

            btnYes = new UiButton("Да", 20);
            btnNo = new UiButton("Не", 20);

            btnYes.X = 3;
            btnYes.Y = this.message.Y + this.message.Height + 3;

            btnNo.X = btnYes.Width + 6;
            btnNo.Y = btnYes.Y;

            AddChild(btnYes);
            AddChild(btnNo);

            Height = btnYes.Y + btnNo.Height + 3;          
        }
        private int x = 2; // отместването от началото

        /// <summary>
        /// Добавя нов бутон
        /// </summary>
        /// <param name="text">Текста на бутона</param>
        /// <param name="handler">Функцията, която се извиква при натискане</param>
        public override UiButton AddItem(string text, ComponentClickedHandler handler)
        {
            UiButton newButton = new UiButton(text, 20);
            newButton.X = x;
            newButton.Y = 2;

            shouldAdd = true;
            AddChild(newButton);
            newButton.ComponentClicked += handler;
            x += newButton.Width + 2;
            return newButton;
        }
        /// <summary>
        /// Добавя бутон в долната част на менюто
        /// </summary>
        /// <param name="text">Текста на бутона</param>
        /// <param name="handler">Функцията, която се извиква при натискане</param>
        public virtual UiButton AddItem(String text, ComponentClickedHandler handler)
        {
            UiButton newButton = new UiButton(text, 20);
            newButton.X = 3;
            newButton.Y = 5 + 25 * children.Count;
            if (Width < (newButton.Width + 6))
            {
                Width = newButton.Width + 6;
                UpdateButtons();
            }
            else newButton.UpdateWidth(Width - 6);

            shouldAdd = true;
            AddChild(newButton);
            newButton.ComponentClicked += handler;
            Height = 5 + 25 * children.Count;
            return newButton;
        }
        /// <summary>
        /// Слага всичките неща в Gui-то
        /// </summary>
        public void InitializeGui()
        {
            gui = new Gui(window);

            fileMenu = new UiVerticalMenu(true);
            fileMenu.AddItem("Зареди", menu_FileOpen);
            fileMenu.AddItem("Запази", menu_FileSave);

            fileMenu.X = 0;
            fileMenu.Y = 20;

            fileMenu.visible = false;

            gui.Add(fileMenu);

            arrangeMenu = new UiVerticalMenu(true);
            arrangeMenu.AddItem("В кръг", menu_Circle);
            arrangeMenu.AddItem("Центрирай", BtnCenterGraph);
            arrangeMenu.AddItem("Разбъракно", menu_Shuffle);

            arrangeMenu.X = 50;
            arrangeMenu.Y = 20;

            arrangeMenu.visible = false;

            gui.Add(arrangeMenu);

            menu = new UiHorizontalMenu(1024);

            menu.AddItem("Файл", menu_FileClicked);
            menu.AddItem("Подредба", menu_ArrangeClicked);
            edgeBtn = menu.AddItem("Добави ребра(включи)", BtnAddEdgeToggle);
            physBtn = menu.AddItem("Физика(включи)", BtnPhysToggle);
            menu.AddItem("Създай граф", menu_Generate);
            menu.AddItem("Изчисти", menu_Clear);
            directivityBtn = menu.AddItem("Насочен(не)", menu_Directivity);
            weightBtn = menu.AddItem("Претеглен(не)", menu_Weight);

            gui.Add(menu);

            #region Debug текстове

            dbgLabel1 = new UiLabel("Все още няма нужда от мен за дебъг!", GraphicScheme.font1);
            dbgLabel1.visible = false;
            dbgLabel1.Y = 25;
            dbgLabel1.X = 5;

            dbgLabel2 = new UiLabel("Все още няма нужда от мен за дебъг!", GraphicScheme.font1);
            dbgLabel2.visible = false;
            dbgLabel2.Y = 45;
            dbgLabel2.X = 5;

            dbgLabel3 = new UiLabel("Все още няма нужда от мен за дебъг!", GraphicScheme.font1);
            dbgLabel3.visible = false;
            dbgLabel3.Y = 65;
            dbgLabel3.X = 5;

            gui.Add(dbgLabel1);
            gui.Add(dbgLabel2);
            gui.Add(dbgLabel3);

            #endregion

            edgeInputLabel = new UiLabel("Въведете тегло на ребро(приключване с Enter или кликване)", GraphicScheme.font1);
            edgeInputLabel.X = 340;
            edgeInputLabel.Y = 50;
            edgeInputLabel.visible = false;
            gui.Add(edgeInputLabel);

            rmbMenu = new UiVerticalMenu();
            rmbMenu.visible = false;
            rmbMenu.AddItem("Добави връх", rmbMenu_AddVertex);
            rmbMenu.AddItem("Демаркирай", rmbMenu_Deselect);
            
            gui.Add(rmbMenu);
            //menu.movable = true;

            propertyPanel = new UiPropertyPanel();
            propertyPanel.X = 0;
            propertyPanel.Y = 500;

            gui.Add(propertyPanel);

            if (connector != null)
            { // менюто за контрол на алгоритъм се показва само когато има такъв
                algoControlMenu = new UiHorizontalMenu(200);

                algoControlMenu.X = 412;
                algoControlMenu.Y = 575;

                algoControlMenu.AddItem("Стъпка", BtnSingleStep);
                algoControlMenu.AddItem("Автоматично", MenuBtnPlay);
                algoControlMenu.AddItem("Пауза", MenuBtnPause);

                gui.Add(algoControlMenu);
            }

            
        }