private void CreateTsdTabstrip(out UITabstrip strip, UIComponent parent, UiCategoryTab category) { TLMUtils.createUIElement(out strip, parent.transform, "TLMTabstrip", new Vector4(5, 0, parent.width - 10, 40)); var effectiveOffsetY = strip.height; TLMUtils.createUIElement(out UITabContainer tabContainer, parent.transform, "TLMTabContainer", new Vector4(0, 40, parent.width, parent.height - 40)); strip.tabPages = tabContainer; UIButton tabTemplate = CreateTabSubStripTemplate(); UIComponent bodyContent = CreateContentTemplate(parent.width, parent.height - effectiveOffsetY - 10, category.isScrollable()); foreach (var kv in TransportSystemDefinition.sysDefinitions) { Type[] components; Type targetType; try { targetType = KlyteUtils.GetImplementationForGenericType(category.getTabGenericContentImpl(), kv.Value); components = new Type[] { targetType }; } catch { continue; } GameObject tab = Instantiate(tabTemplate.gameObject); GameObject body = Instantiate(bodyContent.gameObject); var configIdx = kv.Key.toConfigIndex(); String name = kv.Value.Name; TLMUtils.doLog($"configIdx = {configIdx};kv.Key = {kv.Key}; kv.Value= {kv.Value} "); String bgIcon = TLMConfigWarehouse.getBgIconForIndex(configIdx); String fgIcon = kv.Key.getTransportTypeIcon(); UIButton tabButton = tab.GetComponent <UIButton>(); tabButton.tooltip = TLMConfigWarehouse.getNameForTransportType(configIdx); tabButton.hoveredBgSprite = bgIcon; tabButton.focusedBgSprite = bgIcon; tabButton.normalBgSprite = bgIcon; tabButton.disabledBgSprite = bgIcon; tabButton.focusedColor = Color.green; tabButton.hoveredColor = new Color(0, 0.5f, 0f); tabButton.color = Color.black; tabButton.disabledColor = Color.gray; if (!string.IsNullOrEmpty(fgIcon)) { TLMUtils.createUIElement(out UIButton secSprite, tabButton.transform, "OverSprite", new Vector4(5, 5, 30, 30)); secSprite.normalFgSprite = fgIcon; secSprite.foregroundSpriteMode = UIForegroundSpriteMode.Scale; secSprite.isInteractive = false; secSprite.disabledColor = Color.black; } strip.AddTab(name, tab, body, components); } }
private void updateUI(bool syncFromInput = false) { TransportSystemDefinition tsd = TransportSystemDefinition.from(transportTool.m_prefab); TLMLineUtils.GetNamingRulesFromTSD(out ModoNomenclatura prefixo, out Separador sep, out ModoNomenclatura sufixo, out ModoNomenclatura nonPrefix, out bool zeros, out bool invertPrefixSuffix, tsd); if (syncFromInput) { String value = "0" + lineNumberTxtBox.text; int valPrefixo = linePrefixDropDown.selectedIndex; ushort num = ushort.Parse(value); if (prefixo != ModoNomenclatura.Nenhum) { num = (ushort)(valPrefixo * 1000 + (num % 1000)); } if (nextLineNumber + 1 != num) { nextLineNumber = (ushort)(num - 1); } } var configIdx = tsd.toConfigIndex(); Color color; if (TLMConfigWarehouse.getCurrentConfigBool(TLMConfigWarehouse.ConfigIndex.AUTO_COLOR_ENABLED)) { color = TLMUtils.CalculateAutoColor((ushort)(nextLineNumber + 1), configIdx, true); } else { color = TLMConfigWarehouse.getColorForTransportType(configIdx); } lineNumberTxtBox.color = color; lineFormat.color = color; lineFormat.backgroundSprite = TLMConfigWarehouse.getBgIconForIndex(configIdx); lineNumber.text = TLMUtils.getString(prefixo, sep, sufixo, nonPrefix, (nextLineNumber + 1) & 0xFFFF, zeros, invertPrefixSuffix); lineNumber.textColor = TLMUtils.contrastColor(color); int txtLen = lineNumber.text.Length; switch (txtLen) { case 1: lineNumber.textScale = 4; break; case 2: lineNumber.textScale = 3; break; case 3: lineNumber.textScale = 2.25f; break; case 4: lineNumber.textScale = 1.75f; break; case 5: lineNumber.textScale = 1.5f; break; case 6: lineNumber.textScale = 1.35f; break; case 7: lineNumber.textScale = 1.2f; break; case 8: lineNumber.textScale = 1.1f; break; default: lineNumber.textScale = 1f; break; } }