summaryrefslogtreecommitdiff
path: root/src/ui/chat_open_dialog.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/chat_open_dialog.c')
-rw-r--r--src/ui/chat_open_dialog.c53
1 files changed, 2 insertions, 51 deletions
diff --git a/src/ui/chat_open_dialog.c b/src/ui/chat_open_dialog.c
index 701b8e5..5b641d6 100644
--- a/src/ui/chat_open_dialog.c
+++ b/src/ui/chat_open_dialog.c
@@ -24,12 +24,11 @@
#include "chat_open_dialog.h"
-#include <ctype.h>
-
#include <gnunet/platform.h>
#include <gnunet/gnunet_chat_lib.h>
#include <gnunet/gnunet_util_lib.h>
+#include "text_input.h"
#include "../application.h"
#include "../util.h"
@@ -42,69 +41,21 @@ chat_open_dialog_event(UI_CHAT_OPEN_DIALOG_Handle *open_dialog,
{
case 27:
case KEY_EXIT:
- {
open_dialog->window = NULL;
break;
- }
- case KEY_LEFT:
- {
- open_dialog->topic_pos--;
- break;
- }
- case KEY_RIGHT:
- {
- open_dialog->topic_pos++;
- break;
- }
case '\n':
case KEY_ENTER:
- {
if (open_dialog->topic_len > 0)
GNUNET_CHAT_group_create(app->chat.handle, open_dialog->topic);
open_dialog->topic_len = 0;
open_dialog->window = NULL;
break;
- }
- case KEY_BACKSPACE:
- {
- if ((open_dialog->topic_pos < open_dialog->topic_len) &&
- (open_dialog->topic_pos > 0))
- for (int i = open_dialog->topic_pos; i < open_dialog->topic_len; i++)
- open_dialog->topic[i - 1] = open_dialog->topic[i];
-
- if ((open_dialog->topic_pos > 0) && (open_dialog->topic_len > 0))
- {
- open_dialog->topic_pos--;
- open_dialog->topic_len--;
- }
-
- break;
- }
default:
- {
- if (!isprint(key))
break;
-
- for (int i = open_dialog->topic_len - 1; i >= open_dialog->topic_pos; i--)
- open_dialog->topic[i + 1] = open_dialog->topic[i];
-
- open_dialog->topic[open_dialog->topic_pos++] = (char) key;
- open_dialog->topic_len++;
- break;
- }
}
- if (open_dialog->topic_len > 255)
- open_dialog->topic_len = 255;
-
- open_dialog->topic[open_dialog->topic_len] = '\0';
-
- if (open_dialog->topic_pos < 0)
- open_dialog->topic_pos = 0;
-
- if (open_dialog->topic_pos > open_dialog->topic_len)
- open_dialog->topic_pos = open_dialog->topic_len;
+ text_input_event(open_dialog->topic, key);
}
void