summaryrefslogtreecommitdiff
path: root/apps/plugins/text_editor.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/text_editor.c')
-rw-r--r--apps/plugins/text_editor.c85
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;