diff --git a/src/uimenu.cpp b/src/uimenu.cpp index efaf21f..6239f65 100644 --- a/src/uimenu.cpp +++ b/src/uimenu.cpp @@ -702,15 +702,30 @@ void CUIMenu::EditProgramNumber (CUIMenu *pUIMenu, TMenuEvent Event) CUIMenu::EditProgramNumber (pUIMenu, MenuEventStepDown); } } else { - string TG ("TG"); - TG += to_string (nTG+1); - - string Value = to_string (nValue+1) + "=" + pUIMenu->m_pMiniDexed->GetVoiceName (nTG); - - pUIMenu->m_pUI->DisplayWrite (TG.c_str (), - pUIMenu->m_pParentMenu[pUIMenu->m_nCurrentMenuItem].Name, - Value.c_str (), - nValue > 0, nValue < (int) CSysExFileLoader::VoicesPerBank-1); + // Format: 000:000 TG1 (bank:voice padded, TGx right-aligned) + int nBank = pUIMenu->m_pMiniDexed->GetTGParameter(CMiniDexed::TGParameterVoiceBank, nTG); + std::string left = "000"; + left += std::to_string(nBank+1); + left = left.substr(left.length()-3,3); + left += ":"; + std::string voiceNum = "000"; + voiceNum += std::to_string(nValue+1); + voiceNum = voiceNum.substr(voiceNum.length()-3,3); + left += voiceNum; + + std::string tgLabel = "TG" + std::to_string(nTG+1); + unsigned lcdCols = pUIMenu->m_pConfig->GetLCDColumns(); + unsigned pad = 0; + if (lcdCols > left.length() + tgLabel.length()) + pad = lcdCols - (unsigned)(left.length() + tgLabel.length()); + std::string topLine = left + std::string(pad, ' ') + tgLabel; + + std::string Value = pUIMenu->m_pMiniDexed->GetVoiceName (nTG); + + pUIMenu->m_pUI->DisplayWrite (topLine.c_str(), + "", + Value.c_str(), + nValue > 0, nValue < (int) CSysExFileLoader::VoicesPerBank); } } @@ -1996,5 +2011,3 @@ void CUIMenu::EditTGParameterModulation (CUIMenu *pUIMenu, TMenuEvent Event) nValue > rParam.Minimum, nValue < rParam.Maximum); } - -