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); } }