diff options
author | Frank Dischner <phaedrus961@rockbox.org> | 2006-03-29 16:21:42 +0000 |
---|---|---|
committer | Frank Dischner <phaedrus961@rockbox.org> | 2006-03-29 16:21:42 +0000 |
commit | 75c3d0b9f10ea30b827052b7a6f894734e705c4f (patch) | |
tree | ec6bfd1a7f7812bf1d7523b597bada006646cb82 /apps/settings.c | |
parent | 0fec4711d5ba5fff1b321568fb45651e11d79b08 (diff) | |
download | rockbox-75c3d0b9f10ea30b827052b7a6f894734e705c4f.tar.gz rockbox-75c3d0b9f10ea30b827052b7a6f894734e705c4f.zip |
Add support for loadable vkeyboard layouts
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9347 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/settings.c')
-rw-r--r-- | apps/settings.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/apps/settings.c b/apps/settings.c index 6ea7c34a31..4068f78015 100644 --- a/apps/settings.c +++ b/apps/settings.c | |||
@@ -916,6 +916,11 @@ int settings_save( void ) | |||
916 | MAX_FILENAME); | 916 | MAX_FILENAME); |
917 | i+= MAX_FILENAME; | 917 | i+= MAX_FILENAME; |
918 | #endif | 918 | #endif |
919 | #ifdef HAVE_LCD_BITMAP | ||
920 | strncpy((char *)&config_block[i], (char *)global_settings.kbd_file, | ||
921 | MAX_FILENAME); | ||
922 | i+= MAX_FILENAME; | ||
923 | #endif | ||
919 | 924 | ||
920 | if(save_config_buffer()) | 925 | if(save_config_buffer()) |
921 | { | 926 | { |
@@ -1108,6 +1113,15 @@ void settings_apply(void) | |||
1108 | else | 1113 | else |
1109 | font_reset(); | 1114 | font_reset(); |
1110 | 1115 | ||
1116 | if ( global_settings.kbd_file[0] && | ||
1117 | global_settings.kbd_file[0] != 0xff ) { | ||
1118 | snprintf(buf, sizeof buf, ROCKBOX_DIR "/%s.kbd", | ||
1119 | global_settings.kbd_file); | ||
1120 | load_kbd(buf); | ||
1121 | } | ||
1122 | else | ||
1123 | load_kbd(NULL); | ||
1124 | |||
1111 | lcd_scroll_step(global_settings.scroll_step); | 1125 | lcd_scroll_step(global_settings.scroll_step); |
1112 | gui_list_screen_scroll_step(global_settings.screen_scroll_step); | 1126 | gui_list_screen_scroll_step(global_settings.screen_scroll_step); |
1113 | gui_list_screen_scroll_out_of_view(global_settings.offset_out_of_view); | 1127 | gui_list_screen_scroll_out_of_view(global_settings.offset_out_of_view); |
@@ -1253,6 +1267,11 @@ void settings_load(int which) | |||
1253 | MAX_FILENAME); | 1267 | MAX_FILENAME); |
1254 | i+= MAX_FILENAME; | 1268 | i+= MAX_FILENAME; |
1255 | #endif | 1269 | #endif |
1270 | #ifdef HAVE_LCD_BITMAP | ||
1271 | strncpy((char *)global_settings.kbd_file, (char *)&config_block[i], | ||
1272 | MAX_FILENAME); | ||
1273 | i+= MAX_FILENAME; | ||
1274 | #endif | ||
1256 | } | 1275 | } |
1257 | } | 1276 | } |
1258 | 1277 | ||
@@ -1425,6 +1444,12 @@ bool settings_load_config(const char* file) | |||
1425 | set_file(value, (char *)global_settings.backdrop_file, MAX_FILENAME); | 1444 | set_file(value, (char *)global_settings.backdrop_file, MAX_FILENAME); |
1426 | } | 1445 | } |
1427 | #endif | 1446 | #endif |
1447 | #ifdef HAVE_LCD_BITMAP | ||
1448 | else if (!strcasecmp(name, "keyboard")) { | ||
1449 | if (!load_kbd(value)) | ||
1450 | set_file(value, (char *)global_settings.kbd_file, MAX_FILENAME); | ||
1451 | } | ||
1452 | #endif | ||
1428 | 1453 | ||
1429 | 1454 | ||
1430 | /* check for scalar values, using the two tables */ | 1455 | /* check for scalar values, using the two tables */ |
@@ -1583,6 +1608,12 @@ bool settings_save_config(void) | |||
1583 | global_settings.backdrop_file); | 1608 | global_settings.backdrop_file); |
1584 | #endif | 1609 | #endif |
1585 | 1610 | ||
1611 | #ifdef HAVE_LCD_BITMAP | ||
1612 | if (global_settings.kbd_file[0] != 0) | ||
1613 | fdprintf(fd, "keyboard: %s/%s.kbd\r\n", ROCKBOX_DIR, | ||
1614 | global_settings.kbd_file); | ||
1615 | #endif | ||
1616 | |||
1586 | /* here's the action: write values to file, specified via table */ | 1617 | /* here's the action: write values to file, specified via table */ |
1587 | save_cfg_table(rtc_bits, sizeof(rtc_bits)/sizeof(rtc_bits[0]), fd); | 1618 | save_cfg_table(rtc_bits, sizeof(rtc_bits)/sizeof(rtc_bits[0]), fd); |
1588 | save_cfg_table(hd_bits, sizeof(hd_bits)/sizeof(hd_bits[0]), fd); | 1619 | save_cfg_table(hd_bits, sizeof(hd_bits)/sizeof(hd_bits[0]), fd); |
@@ -1666,6 +1697,9 @@ void settings_reset(void) { | |||
1666 | global_settings.fg_color = LCD_DEFAULT_FG; | 1697 | global_settings.fg_color = LCD_DEFAULT_FG; |
1667 | global_settings.bg_color = LCD_DEFAULT_BG; | 1698 | global_settings.bg_color = LCD_DEFAULT_BG; |
1668 | #endif | 1699 | #endif |
1700 | #ifdef HAVE_LCD_BITMAP | ||
1701 | global_settings.kbd_file[0] = '\0'; | ||
1702 | #endif | ||
1669 | 1703 | ||
1670 | } | 1704 | } |
1671 | 1705 | ||