Kodi Development  20.0
for Binary and Script based Add-Ons

Detailed Description

Namespace: kodi::gui::dialogs::Numeric

Numeric dialogs
The functions listed below have to be permitted by the user for the representation of a numeric keyboard around an input.

The class supports several kinds, from an easy number choice up to the passport Word production and their confirmation for add-on.

It has the header #include <kodi/gui/dialogs/Numeric.h> be included to enjoy it.

Function Documentation

◆ ShowAndVerifyNewPassword()

bool ATTRIBUTE_HIDDEN kodi::gui::dialogs::Numeric::ShowAndVerifyNewPassword ( std::string &  newPassword)
inline

Use dialog to get numeric new password.

Parameters
[out]newPasswordString to preload into the keyboard accumulator. Overwritten with user input if return=true. Returned in MD5 format.
Returns
true if successful display and user input entry/re-entry. false if unsuccessful display, no user input, or canceled editing.

◆ ShowAndVerifyPassword()

int ATTRIBUTE_HIDDEN kodi::gui::dialogs::Numeric::ShowAndVerifyPassword ( const std::string &  password,
const std::string &  heading,
int  retries 
)
inline

Use dialog to verify numeric password.

Parameters
[in]passwordPassword to compare with user input, need in MD5 format.
[in]headingHeading to display
[in]retriesIf greater than 0, shows "Incorrect password, %d retries left" on dialog line 2, else line 2 is blank.
Returns
Possible values:
  • 0 if successful display and user input.
  • 1 if unsuccessful input.
  • -1 if no user input or canceled editing.

Example:

#include <stdio.h> // fprintf
#include <kodi/General.h>
#include <kodi/gui/dialogs/Numeric.h>
// The example below shows the complete use of keyboard dialog for password
// check. If only one check from add-on needed can be function with retries
// set to '0' called alone.
//
// The use of MD5 translated password is always required for the check on Kodi!
int maxretries = 3;
// Password names need to be send as md5 sum to kodi.
std::string password = kodi::GetMD5("1234");
// To the loop about password checks.
int ret;
for (unsigned int i = 0; i < maxretries; i++)
{
// Ask the user about the password.
ret = kodi::gui::dialogs::Numeric::ShowAndVerifyPassword(password, "Demo numeric password call for PW '1234'", i);
if (ret == 0)
{
fprintf(stderr, "Numeric password successfull confirmed after '%i' tries\n", i+1);
break;
}
else if (ret < 0)
{
fprintf(stderr, "Canceled editing on try '%i'\n", i+1);
break;
}
else // if (ret > 0)
{
fprintf(stderr, "Wrong numeric password entered on try '%i'\n", i+1);
}
}
int ATTRIBUTE_HIDDEN ShowAndVerifyPassword(std::string &password, const std::string &heading, int retries, unsigned int autoCloseMs=0)
Show keyboard and verify user input against password.
Definition: Keyboard.h:314
std::string ATTRIBUTE_HIDDEN GetMD5(const std::string &text)
Get the MD5 digest of the given text.
Definition: General.h:409

◆ ShowAndVerifyInput()

bool ATTRIBUTE_HIDDEN kodi::gui::dialogs::Numeric::ShowAndVerifyInput ( std::string &  toVerify,
const std::string &  heading,
bool  verifyInput 
)
inline

Use dialog to verify numeric password.

Parameters
[in,out]toVerifyValue to compare against user input.
[in]headingHeading to display
[in]verifyInputIf set as true we verify the users input versus toVerify.
Returns
true if successful display and user input. false if unsuccessful display, no user input, or canceled editing.

◆ ShowAndGetTime()

bool ATTRIBUTE_HIDDEN kodi::gui::dialogs::Numeric::ShowAndGetTime ( tm &  time,
const std::string &  heading 
)
inline

Use dialog to get time value.

Parameters
[out]timeOverwritten with user input if return=true and time inserted.
[in]headingHeading to display.
Returns
true if successful display and user input. false if unsuccessful display, no user input, or canceled editing.

Example:

#include <stdio.h> // printf
#include <time.h> // time_t, struct tm, time, localtime, strftime
#include <kodi/gui/dialogs/Numeric.h>
time_t rawtime;
struct tm * timeinfo;
char buffer [10];
time (&rawtime);
timeinfo = localtime(&rawtime);
bool bRet = kodi::gui::dialogs::Numeric::ShowAndGetTime(*timeinfo, "Selected time test call");
strftime(buffer, sizeof(buffer), "%H:%M.", timeinfo);
printf("Selected time it's %s and was on Dialog %s\n", buffer, bRet ? "OK" : "Canceled");
bool ATTRIBUTE_HIDDEN ShowAndGetTime(tm &time, const std::string &heading)
Use dialog to get time value.
Definition: Numeric.h:194

◆ ShowAndGetDate()

bool ATTRIBUTE_HIDDEN kodi::gui::dialogs::Numeric::ShowAndGetDate ( tm &  date,
const std::string &  heading 
)
inline

Use dialog to get date value.

Parameters
[in,out]dateOverwritten with user input if return=true and date inserted.
[in]headingHeading to display
Returns
true if successful display and user input. false if unsuccessful display, no user input, or canceled editing.

Example:

#include <stdio.h> // printf
#include <time.h> // time_t, struct tm, time, localtime, strftime
#include <kodi/gui/dialogs/Numeric.h>
time_t rawtime;
struct tm * timeinfo;
char buffer [20];
time (&rawtime);
timeinfo = localtime(&rawtime);
bool bRet = kodi::gui::dialogs::Numeric::ShowAndGetDate(*timeinfo, "Selected date test call");
strftime(buffer, sizeof(buffer), "%Y-%m-%d", timeinfo);
printf("Selected date it's %s and was on Dialog %s\n", buffer, bRet ? "OK" : "Canceled");
bool ATTRIBUTE_HIDDEN ShowAndGetDate(tm &date, const std::string &heading)
Use dialog to get date value.
Definition: Numeric.h:232

◆ ShowAndGetIPAddress()

bool ATTRIBUTE_HIDDEN kodi::gui::dialogs::Numeric::ShowAndGetIPAddress ( std::string &  ipAddress,
const std::string &  heading 
)
inline

Use dialog to get a IP.

Parameters
[in,out]ipAddressOverwritten with user input if return=true and IP address inserted.
[in]headingHeading to display.
Returns
true if successful display and user input. false if unsuccessful display, no user input, or canceled editing.

◆ ShowAndGetNumber()

bool ATTRIBUTE_HIDDEN kodi::gui::dialogs::Numeric::ShowAndGetNumber ( std::string &  input,
const std::string &  heading,
unsigned int  autoCloseTimeoutMs = 0 
)
inline

Use dialog to get normal number.

Parameters
[in,out]inputOverwritten with user input if return=true and time in seconds inserted
[in]headingHeading to display
[in]autoCloseTimeoutMs[opt] To close the dialog after a specified time, in milliseconds, default is 0 which keeps the dialog open indefinitely.
Returns
true if successful display and user input. false if unsuccessful display, no user input, or canceled editing.

Example:

#include <stdio.h> // printf
#include <stdlib.h> // strtoull (C++11)
#include <kodi/gui/dialogs/Numeric.h>
std::string number;
bool bRet = kodi::gui::dialogs::Numeric::ShowAndGetNumber(number, "Number test call");
printf("Written number input is : %llu and was %s\n",
strtoull(number.c_str(), nullptr, 0), bRet ? "OK" : "Canceled");
bool ATTRIBUTE_HIDDEN ShowAndGetNumber(std::string &input, const std::string &heading, unsigned int autoCloseTimeoutMs=0)
Use dialog to get normal number.
Definition: Numeric.h:295

◆ ShowAndGetSeconds()

bool ATTRIBUTE_HIDDEN kodi::gui::dialogs::Numeric::ShowAndGetSeconds ( std::string &  time,
const std::string &  heading 
)
inline

Show numeric keypad to get seconds.

Parameters
[in,out]timeOverwritten with user input if return=true and time in seconds inserted.
[in]headingHeading to display
Returns
true if successful display and user input. false if unsuccessful display, no user input, or canceled editing.