summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Martitz <kugel@rockbox.org>2009-08-12 14:38:25 +0000
committerThomas Martitz <kugel@rockbox.org>2009-08-12 14:38:25 +0000
commit18e40e0f4c45bf204571e548347e23b1bb5b4afd (patch)
tree81aa6fdc600db2576b6581bc596d09ffb7390cec
parent345920fe7e9d261abf564a71cf9675fbe72679de (diff)
downloadrockbox-18e40e0f4c45bf204571e548347e23b1bb5b4afd.tar.gz
rockbox-18e40e0f4c45bf204571e548347e23b1bb5b4afd.zip
Make kbd_input() show a cancel splash to indicate user abort better and for better consistency all over the place. Change checking for its return value (style-wise) at some places too.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22269 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/player/keyboard.c9
-rw-r--r--apps/playlist_viewer.c2
-rw-r--r--apps/plugins/calendar.c4
-rw-r--r--apps/plugins/keybox.c12
-rw-r--r--apps/plugins/rockboy/menu.c2
-rw-r--r--apps/plugins/text_editor.c3
-rw-r--r--apps/recorder/keyboard.c8
-rw-r--r--apps/settings.c1
-rw-r--r--apps/tagtree.c2
-rw-r--r--docs/PLUGIN_API2
-rw-r--r--docs/PLUGIN_API.new2
11 files changed, 26 insertions, 21 deletions
diff --git a/apps/player/keyboard.c b/apps/player/keyboard.c
index 114b3fdf24..4f8a8b09e5 100644
--- a/apps/player/keyboard.c
+++ b/apps/player/keyboard.c
@@ -112,6 +112,7 @@ int kbd_input(char* text, int buflen)
unsigned char *utf8;
int button, lastbutton = 0;
+ int ret;
editpos = utf8length(text);
@@ -185,7 +186,7 @@ int kbd_input(char* text, int buflen)
switch (button)
{
case BUTTON_STOP: /* abort */
- return -1;
+ ret = -1; done = true;
break;
case BUTTON_MENU: /* page flip */
@@ -245,7 +246,7 @@ int kbd_input(char* text, int buflen)
case BUTTON_PLAY | BUTTON_REPEAT:
/* accepts what was entered and continues */
- done = true;
+ ret = 0; done = true;
break;
case BUTTON_PLAY | BUTTON_REL:
@@ -304,6 +305,8 @@ int kbd_input(char* text, int buflen)
lastbutton = button;
}
- return 0;
+ if (ret < 0)
+ splash(HZ/2, ID2P(LANG_CANCEL));
+ return ret;
}
diff --git a/apps/playlist_viewer.c b/apps/playlist_viewer.c
index 1e1aab8c54..7d3ff4ef9e 100644
--- a/apps/playlist_viewer.c
+++ b/apps/playlist_viewer.c
@@ -802,7 +802,7 @@ bool search_playlist(void)
if (!playlist_viewer_init(&viewer, 0, false))
return ret;
- if (kbd_input(search_str, sizeof(search_str)) == -1)
+ if (kbd_input(search_str, sizeof(search_str)) < 0)
return ret;
lcd_clear_display();
playlist_count = playlist_amount_ex(viewer.playlist);
diff --git a/apps/plugins/calendar.c b/apps/plugins/calendar.c
index e00afe19b6..cfb92909bf 100644
--- a/apps/plugins/calendar.c
+++ b/apps/plugins/calendar.c
@@ -568,7 +568,7 @@ static void add_memo(struct shown *shown, int type)
{
bool saved = false;
if (rb->kbd_input(memos[memos_in_memory].message,
- sizeof memos[memos_in_memory].message) != -1)
+ sizeof memos[memos_in_memory].message) == 0)
{
if (rb->strlen(memos[memos_in_memory].message))
{
@@ -634,7 +634,7 @@ static bool edit_memo(int change, struct shown *shown)
case 1: /* edit */
if(rb->kbd_input(memos[pointer_array[change]].message,
- sizeof memos[pointer_array[change]].message) != -1)
+ sizeof memos[pointer_array[change]].message) == 0)
save_memo(pointer_array[change],true,shown);
return false;
diff --git a/apps/plugins/keybox.c b/apps/plugins/keybox.c
index 6c59470fa4..733c6e95cd 100644
--- a/apps/plugins/keybox.c
+++ b/apps/plugins/keybox.c
@@ -190,12 +190,12 @@ static void add_entry(int selected_item)
rb->splash(HZ, "Enter title");
pw_list.entries[i].title[0] = '\0';
- if (rb->kbd_input(pw_list.entries[i].title, FIELD_LEN))
+ if (rb->kbd_input(pw_list.entries[i].title, FIELD_LEN) < 0)
return;
rb->splash(HZ, "Enter name");
pw_list.entries[i].name[0] = '\0';
- if (rb->kbd_input(pw_list.entries[i].name, FIELD_LEN))
+ if (rb->kbd_input(pw_list.entries[i].name, FIELD_LEN) < 0)
{
pw_list.entries[i].title[0] = '\0';
return;
@@ -203,7 +203,7 @@ static void add_entry(int selected_item)
rb->splash(HZ, "Enter password");
pw_list.entries[i].password[0] = '\0';
- if (rb->kbd_input(pw_list.entries[i].password, FIELD_LEN))
+ if (rb->kbd_input(pw_list.entries[i].password, FIELD_LEN) < 0)
{
pw_list.entries[i].title[0] = '\0';
pw_list.entries[i].name[0] = '\0';
@@ -508,11 +508,11 @@ static int enter_pw(char *pw_buf, size_t buflen, bool new_pw)
if (new_pw)
{
rb->splash(HZ, "Enter new master password");
- if (rb->kbd_input(buf[0], sizeof(buf[0])))
+ if (rb->kbd_input(buf[0], sizeof(buf[0])) < 0)
return -1;
rb->splash(HZ, "Confirm master password");
- if (rb->kbd_input(buf[1], sizeof(buf[1])))
+ if (rb->kbd_input(buf[1], sizeof(buf[1])) < 0)
return -1;
if (rb->strcmp(buf[0], buf[1]))
@@ -529,7 +529,7 @@ static int enter_pw(char *pw_buf, size_t buflen, bool new_pw)
}
rb->splash(HZ, "Enter master password");
- if (rb->kbd_input(pw_buf, buflen))
+ if (rb->kbd_input(pw_buf, buflen) < 0)
return -1;
hash_pw(&pwhash);
return 0;
diff --git a/apps/plugins/rockboy/menu.c b/apps/plugins/rockboy/menu.c
index 0978da0b09..290cac98de 100644
--- a/apps/plugins/rockboy/menu.c
+++ b/apps/plugins/rockboy/menu.c
@@ -227,7 +227,7 @@ static bool do_slot(size_t slot_id, bool is_load) {
/* if we're saving to a slot, then get a brief description */
if (!is_load)
- if (rb->kbd_input(desc_buf, 20) || !strlen(desc_buf))
+ if (rb->kbd_input(desc_buf, 20) || !strlen(desc_buf) < 0)
{
strlcpy(desc_buf, "Untitled", 20);
}
diff --git a/apps/plugins/text_editor.c b/apps/plugins/text_editor.c
index 06dc098501..473bb68ead 100644
--- a/apps/plugins/text_editor.c
+++ b/apps/plugins/text_editor.c
@@ -182,10 +182,9 @@ bool save_changes(int overwrite)
if (newfile || !overwrite)
{
- if(rb->kbd_input(filename,MAX_PATH))
+ if(rb->kbd_input(filename,MAX_PATH) < 0)
{
newfile = true;
- rb->splash(HZ, "Cancelled");
return false;
}
}
diff --git a/apps/recorder/keyboard.c b/apps/recorder/keyboard.c
index 32933cdcfd..7eb798143e 100644
--- a/apps/recorder/keyboard.c
+++ b/apps/recorder/keyboard.c
@@ -297,6 +297,7 @@ int kbd_input(char* text, int buflen)
unsigned short ch;
unsigned char *utf8;
bool cur_blink = true; /* Cursor on/off flag */
+ int ret;
#ifdef KBD_MORSE_INPUT
bool morse_reading = false;
unsigned char morse_code = 0;
@@ -779,7 +780,7 @@ int kbd_input(char* text, int buflen)
global_settings.buttonbar=buttonbar_config;
#endif
viewportmanager_set_statusbar(oldbars);
- return -1;
+ ret = -1; done = true;
break;
case ACTION_KBD_PAGE_FLIP:
@@ -1000,6 +1001,7 @@ int kbd_input(char* text, int buflen)
case ACTION_KBD_DONE:
/* accepts what was entered and continues */
+ ret = 0;
done = true;
break;
@@ -1249,5 +1251,7 @@ int kbd_input(char* text, int buflen)
screens[l].setfont(FONT_UI);
viewportmanager_set_statusbar(oldbars);
- return 0;
+ if (ret < 0)
+ splash(HZ/2, ID2P(LANG_CANCEL));
+ return ret;
}
diff --git a/apps/settings.c b/apps/settings.c
index 6a761ecdd9..bd2958e4e2 100644
--- a/apps/settings.c
+++ b/apps/settings.c
@@ -652,7 +652,6 @@ bool settings_save_config(int options)
break;
}
else {
- splash(HZ, ID2P(LANG_CANCEL));
return false;
}
}
diff --git a/apps/tagtree.c b/apps/tagtree.c
index 5d61589eab..de75223e0b 100644
--- a/apps/tagtree.c
+++ b/apps/tagtree.c
@@ -1483,7 +1483,7 @@ int tagtree_enter(struct tree_context* c)
else
{
rc = kbd_input(searchstring, SEARCHSTR_SIZE);
- if (rc == -1 || !searchstring[0])
+ if (rc < 0 || !searchstring[0])
{
tagtree_exit(c);
return 0;
diff --git a/docs/PLUGIN_API b/docs/PLUGIN_API
index feba0868fb..0498c0f2f3 100644
--- a/docs/PLUGIN_API
+++ b/docs/PLUGIN_API
@@ -739,7 +739,7 @@ Misc
int kbd_input(char *buffer, int buflen);
Prompt for a string to be stored in buffer which is of length buflen.
- Return FALSE upon success.
+ Return 0 upon success, negative on failure.
struct tm *get_time(void);
diff --git a/docs/PLUGIN_API.new b/docs/PLUGIN_API.new
index d54d7a1ce0..876af375a2 100644
--- a/docs/PLUGIN_API.new
+++ b/docs/PLUGIN_API.new
@@ -851,7 +851,7 @@ int kbd_input(char* buffer, int buflen)
\group misc
\param buffer
\param buflen
- \return FALSE upon success
+ \return 0 upon success, negative upon failure
\description Prompt for a string to be stored in =buffer= which is of length =buflen=
void lcd_bitmap(const fb_data *src, int x, int y, int width, int height)