diff options
Diffstat (limited to 'xbmc/dialogs/GUIDialogNumeric.cpp')
-rw-r--r-- | xbmc/dialogs/GUIDialogNumeric.cpp | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/xbmc/dialogs/GUIDialogNumeric.cpp b/xbmc/dialogs/GUIDialogNumeric.cpp index 0443f48a4f..fa82a0db5a 100644 --- a/xbmc/dialogs/GUIDialogNumeric.cpp +++ b/xbmc/dialogs/GUIDialogNumeric.cpp @@ -72,7 +72,7 @@ void CGUIDialogNumeric::OnInitWindow() data["type"] = "ip"; break; case INPUT_PASSWORD: - data["type"] = "password"; + data["type"] = "numericpassword"; break; case INPUT_NUMBER: data["type"] = "number"; @@ -89,6 +89,7 @@ void CGUIDialogNumeric::OnInitWindow() if (control != NULL) data["title"] = control->GetDescription(); + data["value"] = GetOutput(); ANNOUNCEMENT::CAnnouncementManager::Announce(ANNOUNCEMENT::Input, "xbmc", "OnInputRequested", data); } @@ -585,23 +586,37 @@ void CGUIDialogNumeric::SetMode(INPUT_MODE mode, const CStdString &initial) SetMode(mode, (void*)&initial); } -void CGUIDialogNumeric::GetOutput(void *output) +void CGUIDialogNumeric::GetOutput(void *output) const { if (!output) return; if (m_mode == INPUT_TIME || m_mode == INPUT_TIME_SECONDS || m_mode == INPUT_DATE) memcpy(output, &m_datetime, sizeof(m_datetime)); - if (m_mode == INPUT_IP_ADDRESS) + else if (m_mode == INPUT_IP_ADDRESS) { CStdString *ipaddress = (CStdString *)output; ipaddress->Format("%d.%d.%d.%d", m_ip[0], m_ip[1], m_ip[2], m_ip[3]); } - if (m_mode == INPUT_NUMBER || m_mode == INPUT_PASSWORD) + else if (m_mode == INPUT_NUMBER || m_mode == INPUT_PASSWORD) { CStdString *number = (CStdString *)output; *number = m_number; } } +CStdString CGUIDialogNumeric::GetOutput() const +{ + CStdString output; + if (m_mode == INPUT_DATE) + output.Format("%02i/%02i/%04i", m_datetime.wDay, m_datetime.wMonth, m_datetime.wYear); + else if (m_mode == INPUT_TIME) + output.Format("%i:%02i", m_datetime.wHour, m_datetime.wMinute); + else if (m_mode == INPUT_TIME_SECONDS) + output.Format("%i:%02i", m_datetime.wMinute, m_datetime.wSecond); + else + GetOutput(&output); + return output; +} + bool CGUIDialogNumeric::ShowAndGetSeconds(CStdString &timeString, const CStdString &heading) { CGUIDialogNumeric *pDialog = (CGUIDialogNumeric *)g_windowManager.GetWindow(WINDOW_DIALOG_NUMERIC); |