diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/plugins/text_editor.c | 85 |
1 files changed, 6 insertions, 79 deletions
diff --git a/apps/plugins/text_editor.c b/apps/plugins/text_editor.c index f983dd30a3..52e229d108 100644 --- a/apps/plugins/text_editor.c +++ b/apps/plugins/text_editor.c | |||
@@ -17,55 +17,7 @@ | |||
17 | * | 17 | * |
18 | ****************************************************************************/ | 18 | ****************************************************************************/ |
19 | #include "plugin.h" | 19 | #include "plugin.h" |
20 | /* button definitions, every keypad must only have select,menu and cancel */ | 20 | #include "action.h" |
21 | #if CONFIG_KEYPAD == RECORDER_PAD | ||
22 | #define TEXT_EDITOR_SELECT BUTTON_PLAY | ||
23 | #define TEXT_EDITOR_CANCEL BUTTON_OFF | ||
24 | #define TEXT_EDITOR_ITEM_MENU BUTTON_F1 | ||
25 | |||
26 | #elif CONFIG_KEYPAD == ONDIO_PAD | ||
27 | #define TEXT_EDITOR_SELECT_PRE BUTTON_MENU | ||
28 | #define TEXT_EDITOR_SELECT (BUTTON_MENU|BUTTON_REL) | ||
29 | #define TEXT_EDITOR_CANCEL BUTTON_OFF | ||
30 | #define TEXT_EDITOR_ITEM_MENU BUTTON_MENU|BUTTON_REPEAT | ||
31 | |||
32 | #elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD) | ||
33 | #define TEXT_EDITOR_SELECT BUTTON_SELECT | ||
34 | #define TEXT_EDITOR_CANCEL BUTTON_OFF | ||
35 | #define TEXT_EDITOR_DELETE BUTTON_REC | ||
36 | #define TEXT_EDITOR_ITEM_MENU BUTTON_MODE | ||
37 | |||
38 | #define TEXT_EDITOR_RC_CANCEL BUTTON_RC_STOP | ||
39 | |||
40 | #elif (CONFIG_KEYPAD == IPOD_3G_PAD) || (CONFIG_KEYPAD == IPOD_4G_PAD) | ||
41 | #define TEXT_EDITOR_SELECT_PRE BUTTON_SELECT | ||
42 | #define TEXT_EDITOR_SELECT ( BUTTON_SELECT | BUTTON_REL) | ||
43 | #define TEXT_EDITOR_CANCEL_PRE BUTTON_SELECT | ||
44 | #define TEXT_EDITOR_CANCEL (BUTTON_SELECT | BUTTON_MENU) | ||
45 | #define TEXT_EDITOR_DELETE (BUTTON_LEFT) | ||
46 | #define TEXT_EDITOR_ITEM_MENU (BUTTON_MENU) | ||
47 | |||
48 | #elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD | ||
49 | |||
50 | #elif CONFIG_KEYPAD == IAUDIO_X5_PAD | ||
51 | #define TEXT_EDITOR_SELECT BUTTON_SELECT | ||
52 | #define TEXT_EDITOR_CANCEL BUTTON_POWER | ||
53 | #define TEXT_EDITOR_ITEM_MENU BUTTON_PLAY | ||
54 | |||
55 | #elif CONFIG_KEYPAD == GIGABEAT_PAD | ||
56 | #define TEXT_EDITOR_SELECT BUTTON_SELECT | ||
57 | #define TEXT_EDITOR_CANCEL BUTTON_A | ||
58 | #define TEXT_EDITOR_ITEM_MENU BUTTON_MENU | ||
59 | |||
60 | #elif CONFIG_KEYPAD == IRIVER_H10_PAD | ||
61 | #define TEXT_EDITOR_SELECT BUTTON_REW | ||
62 | #define TEXT_EDITOR_CANCEL BUTTON_POWER | ||
63 | #define TEXT_EDITOR_ITEM_MENU BUTTON_PLAY | ||
64 | |||
65 | #else | ||
66 | #error TEXT_EDITOR: Unsupported keypad | ||
67 | #endif | ||
68 | |||
69 | 21 | ||
70 | #if PLUGIN_BUFFER_SIZE > 0x45000 | 22 | #if PLUGIN_BUFFER_SIZE > 0x45000 |
71 | #define MAX_CHARS 0x40000 /* 128 kiB */ | 23 | #define MAX_CHARS 0x40000 /* 128 kiB */ |
@@ -338,7 +290,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) | |||
338 | 290 | ||
339 | struct gui_synclist lists; | 291 | struct gui_synclist lists; |
340 | bool exit = false; | 292 | bool exit = false; |
341 | int button, last_button = BUTTON_NONE; | 293 | int button; |
342 | bool changed = false; | 294 | bool changed = false; |
343 | int cur_sel=0; | 295 | int cur_sel=0; |
344 | static char copy_buffer[MAX_LINE_LEN]; | 296 | static char copy_buffer[MAX_LINE_LEN]; |
@@ -396,7 +348,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) | |||
396 | #endif | 348 | #endif |
397 | rb->gui_synclist_draw(&lists); | 349 | rb->gui_synclist_draw(&lists); |
398 | cur_sel = rb->gui_synclist_get_sel_pos(&lists); | 350 | cur_sel = rb->gui_synclist_get_sel_pos(&lists); |
399 | button = rb->button_get(true); | 351 | button = rb->get_action(CONTEXT_LIST,TIMEOUT_BLOCK); |
400 | if (rb->gui_synclist_do_button(&lists,button)) | 352 | if (rb->gui_synclist_do_button(&lists,button)) |
401 | continue; | 353 | continue; |
402 | #ifdef HAVE_ADJUSTABLE_CPU_FREQ | 354 | #ifdef HAVE_ADJUSTABLE_CPU_FREQ |
@@ -404,12 +356,8 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) | |||
404 | #endif | 356 | #endif |
405 | switch (button) | 357 | switch (button) |
406 | { | 358 | { |
407 | case TEXT_EDITOR_SELECT: | 359 | case ACTION_STD_OK: |
408 | { | 360 | { |
409 | #ifdef TEXT_EDITOR_SELECT_PRE | ||
410 | if (last_button != TEXT_EDITOR_SELECT_PRE) | ||
411 | break; | ||
412 | #endif | ||
413 | if (line_count) | 361 | if (line_count) |
414 | rb->strcpy(temp_line,&buffer[do_action(ACTION_GET,0,cur_sel)]); | 362 | rb->strcpy(temp_line,&buffer[do_action(ACTION_GET,0,cur_sel)]); |
415 | if (!rb->kbd_input(temp_line,MAX_LINE_LEN)) | 363 | if (!rb->kbd_input(temp_line,MAX_LINE_LEN)) |
@@ -435,19 +383,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) | |||
435 | changed = true; | 383 | changed = true; |
436 | break; | 384 | break; |
437 | #endif | 385 | #endif |
438 | #ifdef TEXT_EDITOR_ITEM_MENU | 386 | case ACTION_STD_MENU: |
439 | case TEXT_EDITOR_ITEM_MENU: | ||
440 | #ifdef TEXT_EDITOR_RC_ITEM_MENU | ||
441 | case TEXT_EDITOR_RC_ITEM_MENU: | ||
442 | #endif | ||
443 | #ifdef TEXT_EDITOR_ITEM_MENU_PRE | ||
444 | if (lastbutton != TEXT_EDITOR_ITEM_MENU_PRE | ||
445 | #ifdef TEXT_EDITOR_RC_ITEM_MENU_PRE | ||
446 | && lastbutton != TEXT_EDITOR_RC_ITEM_MENU_PRE | ||
447 | #endif | ||
448 | ) | ||
449 | break; | ||
450 | #endif | ||
451 | { /* do the item menu */ | 387 | { /* do the item menu */ |
452 | switch (do_item_menu(cur_sel, copy_buffer)) | 388 | switch (do_item_menu(cur_sel, copy_buffer)) |
453 | { | 389 | { |
@@ -463,15 +399,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) | |||
463 | } | 399 | } |
464 | } | 400 | } |
465 | break; | 401 | break; |
466 | #endif /* TEXT_EDITOR_ITEM_MENU */ | 402 | case ACTION_STD_CANCEL: |
467 | case TEXT_EDITOR_CANCEL: | ||
468 | #ifdef TEXT_EDITOR_CANCEL_PRE | ||
469 | if (last_button != TEXT_EDITOR_CANCEL_PRE) | ||
470 | break; | ||
471 | #endif | ||
472 | #ifdef TEXT_EDITOR_RC_CANCEL | ||
473 | case TEXT_EDITOR_RC_CANCEL: | ||
474 | #endif | ||
475 | if (changed) | 403 | if (changed) |
476 | { | 404 | { |
477 | int m; | 405 | int m; |
@@ -518,7 +446,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) | |||
518 | else exit=1; | 446 | else exit=1; |
519 | break; | 447 | break; |
520 | } | 448 | } |
521 | last_button = button; | ||
522 | rb->gui_synclist_set_nb_items(&lists,line_count); | 449 | rb->gui_synclist_set_nb_items(&lists,line_count); |
523 | } | 450 | } |
524 | rb->global_settings->statusbar = prev_show_statusbar; | 451 | rb->global_settings->statusbar = prev_show_statusbar; |