bool CGUIDialogKeyboardGeneric::ShowAndGetInput(char_callback_t pCallback, const std::string &initialString, std::string &typedString, const std::string &heading, bool bHiddenInput) { CGUIDialogKeyboardGeneric *pKeyboard = (CGUIDialogKeyboardGeneric*)g_windowManager.GetWindow(WINDOW_DIALOG_KEYBOARD); if (!pKeyboard) return false; m_pCharCallback = pCallback; // setup keyboard pKeyboard->Initialize(); pKeyboard->SetHeading(heading); pKeyboard->SetHiddenInput(bHiddenInput); pKeyboard->SetText(initialString); // do this using a thread message to avoid render() conflicts ThreadMessage tMsg = {TMSG_DIALOG_DOMODAL, WINDOW_DIALOG_KEYBOARD, g_windowManager.GetActiveWindow()}; CApplicationMessenger::Get().SendMessage(tMsg, true); pKeyboard->Close(); // If have text - update this. if (pKeyboard->IsConfirmed()) { typedString = pKeyboard->GetText(); return true; } else return false; }
bool CGUIDialogKeyboardGeneric::ShowAndGetInput(char_callback_t pCallback, const std::string &initialString, std::string &typedString, const std::string &heading, bool bHiddenInput) { CGUIDialogKeyboardGeneric *pKeyboard = CServiceBroker::GetGUI()->GetWindowManager().GetWindow<CGUIDialogKeyboardGeneric>(WINDOW_DIALOG_KEYBOARD); if (!pKeyboard) return false; m_pCharCallback = pCallback; // setup keyboard pKeyboard->Initialize(); pKeyboard->SetHeading(heading); pKeyboard->SetHiddenInput(bHiddenInput); pKeyboard->SetText(initialString); pKeyboard->Open(); pKeyboard->Close(); // If have text - update this. if (pKeyboard->IsConfirmed()) { typedString = pKeyboard->GetText(); return true; } else return false; }