private UiPosition GetPanelPosition(PanelSetup setup, TypePadding dockPadding) { return(new UiPosition(setup.StartPos, setup.Pos.StartYPos + dockPadding.Bottom, setup.PanelReg.Width, setup.Pos.Height - (dockPadding.Bottom + dockPadding.Top))); }
protected PanelType(Hash <string, object> data) { Enabled = (bool)data[nameof(Enabled)]; Color = (string)data[nameof(Color)]; Order = (int)data[nameof(Order)]; Width = (float)data[nameof(Width)]; Padding = new TypePadding((Hash <string, object>)data[nameof(Padding)]); }
private UiPosition GetTypePosition(float startPos, float width, TypePadding padding) { UiPosition pos = new UiPosition(startPos + padding.Left, padding.Bottom, width * (1 - (padding.Left + padding.Right)), 1 - (padding.Top + padding.Bottom)); return(pos); }
private List <PanelUpdate> CreatePanel(Panel panel, PanelSetup setup, UpdateEnum update) { List <PanelUpdate> containers = new List <PanelUpdate>(); if (update == UpdateEnum.All || update == UpdateEnum.Panel) { TypePadding dockPadding = _pluginConfig.Docks[setup.PanelReg.Dock].DockPadding; UiPosition pos = GetPanelPosition(setup, dockPadding); CuiElementContainer container = Ui.Container(setup.PanelColor, pos, setup.UiParentPanel); containers.Add(new PanelUpdate { Container = container, PanelName = setup.UiParentPanel }); } List <PanelType> panelTypes = new List <PanelType>(); if (panel.Text != null) { panelTypes.Add(panel.Text); } if (panel.Image != null) { panelTypes.Add(panel.Image); } float offset = 0; foreach (PanelType type in panelTypes.Where(pt => pt.Enabled).OrderBy(pt => pt.Order)) { if (type is PanelText) { if (update == UpdateEnum.All || update == UpdateEnum.Text) { containers.Add(CreateText(panel, setup.UiParentPanel, offset)); } } else if (type is PanelImage) { if (update == UpdateEnum.All || update == UpdateEnum.Image) { containers.Add(CreateImage(panel, setup.UiParentPanel, offset)); } } offset += type.Width; } return(containers); }