Kodi Documentation 18.0
Kodi is an open source media player and entertainment hub.
Dialog Numeric

\cpp_namespace{ kodi::gui::dialogs::Numeric } Numeric dialogs More...

Namespaces

namespace  kodi::gui::dialogs::Numeric
 

Functions

bool kodi::gui::dialogs::Numeric::ShowAndVerifyNewPassword (std::string &newPassword)
 Use dialog to get numeric new password. More...
 
int kodi::gui::dialogs::Numeric::ShowAndVerifyPassword (const std::string &password, const std::string &heading, int retries)
 Use dialog to verify numeric password. More...
 
bool kodi::gui::dialogs::Numeric::ShowAndVerifyInput (std::string &toVerify, const std::string &heading, bool verifyInput)
 Use dialog to verify numeric password. More...
 
bool kodi::gui::dialogs::Numeric::ShowAndGetTime (tm &time, const std::string &heading)
 Use dialog to get time value. More...
 
bool kodi::gui::dialogs::Numeric::ShowAndGetDate (tm &date, const std::string &heading)
 Use dialog to get date value. More...
 
bool kodi::gui::dialogs::Numeric::ShowAndGetIPAddress (std::string &ipAddress, const std::string &heading)
 Use dialog to get a IP. More...
 
bool kodi::gui::dialogs::Numeric::ShowAndGetNumber (std::string &input, const std::string &heading, unsigned int autoCloseTimeoutMs=0)
 Use dialog to get normal number. More...
 
bool kodi::gui::dialogs::Numeric::ShowAndGetSeconds (std::string &time, const std::string &heading)
 Show numeric keypad to get seconds. More...
 

Detailed Description

\cpp_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

◆ ShowAndGetDate()

bool 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 *&zwj;/
#include <time.h> /* time_t, struct tm, time, localtime, strftime *&zwj;/
#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");

◆ ShowAndGetIPAddress()

bool 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 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]autoCloseTimeoutMsTo 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 *&zwj;/
#include <stdlib.h> /* strtoull (C++11) *&zwj;/
#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");

◆ ShowAndGetSeconds()

bool 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.

◆ ShowAndGetTime()

bool 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 *&zwj;/
#include <time.h> /* time_t, struct tm, time, localtime, strftime *&zwj;/
#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");

◆ ShowAndVerifyInput()

bool 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.

◆ ShowAndVerifyNewPassword()

bool 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 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 *&zwj;/
#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!
*&zwj;/
int maxretries = 3;
/*
* Password names need to be send as md5 sum to kodi.
*&zwj;/
std::string password = kodi::GetMD5("1234");
/*
* To the loop about password checks.
*&zwj;/
int ret;
for (unsigned int i = 0; i < maxretries; i++)
{
/*
* Ask the user about the password.
*&zwj;/
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) *&zwj;/
{
fprintf(stderr, "Wrong numeric password entered on try '%i'\n", i+1);
}
}