aboutsummaryrefslogtreecommitdiff
path: root/xbmc/dialogs/GUIDialogNumeric.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'xbmc/dialogs/GUIDialogNumeric.cpp')
-rw-r--r--xbmc/dialogs/GUIDialogNumeric.cpp23
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);