@embeddedt
The map is in lv_keyboard.c file and I used:
lv_keyboard_set_mode(kb, LV_KEYBOARD_MODE_TEXT_ARABIC);
inside the kb_create function, even after I changed the default font to
#define LV_FONT_DEFAULT &lv_font_dejavu_16_persian_hebrew
lv_keyboard.c file map:
Second approach I tried is defining the map in kb_create function, first I defined the Arabic keyboard map:
static const char* default_kb_map_ar[] = {
"1#", "ض", "ص", "ث", "ق", "ف", "غ", "ع", "ه", "خ", "ح", "ج", "\n",
"ش", "س", "ي", "ب", "ل", "ا", "ت", "ن", "م", "ك", "ط", LV_SYMBOL_BACKSPACE, "\n",
"ذ", "ء", "ؤ", "ر", "ى", "ة", "و", "ز", "ظ", "د", "ز", "ظ", "د", "\n",
LV_SYMBOL_CLOSE, "abc", LV_SYMBOL_LEFT, " ", LV_SYMBOL_RIGHT, LV_SYMBOL_NEW_LINE, LV_SYMBOL_OK, ""
};
after that I used the below lines when creating the keyboard:
lv_keyboard_set_map(kb, LV_KEYBOARD_MODE_TEXT_ARABIC,default_kb_map_ar);
lv_keyboard_set_ctrl_map(kb, LV_KEYBOARD_MODE_TEXT_ARABIC,default_kb_map_ar);
This is the whole function:
static void kb_create(void)
{
static const char* default_kb_map_ar[] = {
"1#", "ض", "ص", "ث", "ق", "ف", "غ", "ع", "ه", "خ", "ح", "ج", "\n",
"ش", "س", "ي", "ب", "ل", "ا", "ت", "ن", "م", "ك", "ط", LV_SYMBOL_BACKSPACE, "\n",
"ذ", "ء", "ؤ", "ر", "ى", "ة", "و", "ز", "ظ", "د", "ز", "ظ", "د", "\n",
LV_SYMBOL_CLOSE, "abc", LV_SYMBOL_LEFT, " ", LV_SYMBOL_RIGHT, LV_SYMBOL_NEW_LINE, LV_SYMBOL_OK, ""
};
lv_coord_t kb_height = LV_MATH_MIN(LV_VER_RES / 2, LV_DPI * 4 / 3);
kb = lv_keyboard_create(lv_scr_act(), NULL);
lv_obj_set_height(kb, kb_height);
lv_obj_align(kb, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, 0);
lv_keyboard_set_cursor_manage(kb, true);
//lv_keyboard_set_mode(kb, LV_KEYBOARD_MODE_TEXT_ARABIC);
lv_keyboard_set_map(kb, LV_KEYBOARD_MODE_TEXT_ARABIC,default_kb_map_ar);
lv_keyboard_set_ctrl_map(kb, LV_KEYBOARD_MODE_TEXT_ARABIC,default_kb_map_ar);
lv_obj_set_event_cb(kb, kb_event_cb);
lv_keyboard_set_textarea(kb, ta);
}