void ShowEditbox(const char* aTitleUtf8, const char* aTextUtf8, SsdKeyboardCallback callback, void *context, TEditBoxType aBoxType ){ if (!gisRegistered) { NOPH_EditBoxScreen_registerEditBoxTextAddr(&editbox_text[0]); gisRegistered= TRUE; } if ( aBoxType & EEditBoxEmail ){ // Standard roadmap_input_type_set_mode(inputtype_free_text); } else if ( aBoxType & EEditBoxPassword ){ // Standard roadmap_input_type_set_mode(inputtype_free_text); myShowEditBox( aTitleUtf8, aTextUtf8, callback, context, NOPH_EditBoxScreen_PASSWORD_FIELD); } else if ( aBoxType & EEditBoxAlphaNumeric ){ // Standard roadmap_input_type_set_mode(inputtype_alphanumeric); myShowEditBox( aTitleUtf8, aTextUtf8, callback, context, NOPH_EditBoxScreen_EDIT_FIELD); } else { roadmap_input_type_set_mode(inputtype_free_text); myShowEditBox( aTitleUtf8, aTextUtf8, callback, context, NOPH_EditBoxScreen_EDIT_FIELD); } }
void ssd_dialog_hide (const char *name, int exit_code) { SsdDialog prev = NULL; SsdDialog dialog = RoadMapDialogCurrent; if (dialog == NULL) return; dialog = RoadMapDialogCurrent; //might have changes while (dialog && strcmp(dialog->name, name)) { prev = dialog; dialog = dialog->activated_prev; } if (!dialog) { return; } if (dialog->on_dialog_closed) { dialog->on_dialog_closed( exit_code, dialog->context); } if (prev == NULL) { if (RoadMapDialogCurrent) RoadMapDialogCurrent = RoadMapDialogCurrent->activated_prev; } else { prev->activated_prev = dialog->activated_prev; } if (RoadMapDialogCurrent) { ssd_dialog_disable_key (); // if (RoadMapDialogCurrent->in_focus) // ssd_widget_loose_focus(RoadMapDialogCurrent->in_focus); } else { roadmap_pointer_unregister_pressed (ssd_dialog_pressed); roadmap_pointer_unregister_released (ssd_dialog_released); roadmap_pointer_unregister_short_click (ssd_dialog_short_click); roadmap_pointer_unregister_long_click (ssd_dialog_long_click); roadmap_keyboard_unregister_from_event__key_pressed(OnKeyPressed); roadmap_pointer_unregister_drag_start (&ssd_dialog_drag_start); roadmap_pointer_unregister_drag_end (&ssd_dialog_drag_end); roadmap_pointer_unregister_drag_motion (&ssd_dialog_drag_motion); } hide_softkeys(dialog); ssd_dialog_handle_native_kb( RoadMapDialogCurrent ); if (RoadMapScreenFrozen) { dialog = RoadMapDialogCurrent; while (dialog) { if ( !(dialog->container->flags & (SSD_DIALOG_FLOAT|SSD_DIALOG_TRANSPARENT))) { ssd_dialog_draw (); return; } dialog = dialog->activated_prev; } } roadmap_input_type_set_mode( inputtype_numeric ); RoadMapScreenFrozen = 0; roadmap_start_screen_refresh (1); }