about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2014-04-07 21:50:28 +0100
committerJames Booth <boothj5@gmail.com>2014-04-07 21:50:28 +0100
commit9aa282f6dea09b706957d6a16bde5b74fd9a55fc (patch)
tree52af027e44077ff701625f149d25fbd5191caef6 /src
parente2443511b6aab32b6ab3264fe0a044b81a86cc81 (diff)
downloadprofani-tty-9aa282f6dea09b706957d6a16bde5b74fd9a55fc.tar.gz
Removed inputwin functions from ui.h
Diffstat (limited to 'src')
-rw-r--r--src/command/command.c18
-rw-r--r--src/main.c1
-rw-r--r--src/profanity.c9
-rw-r--r--src/ui/core.c33
-rw-r--r--src/ui/inputwin.c53
-rw-r--r--src/ui/inputwin.h36
-rw-r--r--src/ui/statusbar.c1
-rw-r--r--src/ui/titlebar.c1
-rw-r--r--src/ui/ui.h16
9 files changed, 107 insertions, 61 deletions
diff --git a/src/command/command.c b/src/command/command.c
index d4ad2d1a..5e833ace 100644
--- a/src/command/command.c
+++ b/src/command/command.c
@@ -1178,7 +1178,7 @@ cmd_autocomplete(char *input, int *size)
         found = autocomplete_complete(commands_ac, inp_cpy);
         if (found != NULL) {
             char *auto_msg = strdup(found);
-            inp_replace_input(input, auto_msg, size);
+            ui_replace_input(input, auto_msg, size);
             free(auto_msg);
             free(found);
         }
@@ -1411,7 +1411,7 @@ _cmd_complete_parameters(char *input, int *size)
         result = autocomplete_param_with_func(input, size, boolean_choices[i],
             prefs_autocomplete_boolean_choice);
         if (result != NULL) {
-            inp_replace_input(input, result, size);
+            ui_replace_input(input, result, size);
             g_free(result);
             return;
         }
@@ -1428,7 +1428,7 @@ _cmd_complete_parameters(char *input, int *size)
                 result = autocomplete_param_with_ac(input, size, nick_choices[i],
                     nick_ac);
                 if (result != NULL) {
-                    inp_replace_input(input, result, size);
+                    ui_replace_input(input, result, size);
                     g_free(result);
                     return;
                 }
@@ -1442,7 +1442,7 @@ _cmd_complete_parameters(char *input, int *size)
             result = autocomplete_param_with_func(input, size, contact_choices[i],
                 roster_find_contact);
             if (result != NULL) {
-                inp_replace_input(input, result, size);
+                ui_replace_input(input, result, size);
                 g_free(result);
                 return;
             }
@@ -1453,7 +1453,7 @@ _cmd_complete_parameters(char *input, int *size)
             result = autocomplete_param_with_func(input, size, resource_choices[i],
                 roster_find_resource);
             if (result != NULL) {
-                inp_replace_input(input, result, size);
+                ui_replace_input(input, result, size);
                 g_free(result);
                 return;
             }
@@ -1462,7 +1462,7 @@ _cmd_complete_parameters(char *input, int *size)
 
     result = autocomplete_param_with_func(input, size, "/invite", roster_find_contact);
     if (result != NULL) {
-        inp_replace_input(input, result, size);
+        ui_replace_input(input, result, size);
         g_free(result);
         return;
     }
@@ -1472,7 +1472,7 @@ _cmd_complete_parameters(char *input, int *size)
         result = autocomplete_param_with_func(input, size, invite_choices[i],
             muc_find_invite);
         if (result != NULL) {
-            inp_replace_input(input, result, size);
+            ui_replace_input(input, result, size);
             g_free(result);
             return;
         }
@@ -1484,7 +1484,7 @@ _cmd_complete_parameters(char *input, int *size)
     for (i = 0; i < ARRAY_SIZE(cmds); i++) {
         result = autocomplete_param_with_ac(input, size, cmds[i], completers[i]);
         if (result != NULL) {
-            inp_replace_input(input, result, size);
+            ui_replace_input(input, result, size);
             g_free(result);
             return;
         }
@@ -1500,7 +1500,7 @@ _cmd_complete_parameters(char *input, int *size)
     for (i = 0; i < ARRAY_SIZE(acs); i++) {
         result = acs[i](input, size);
         if (result != NULL) {
-            inp_replace_input(input, result, size);
+            ui_replace_input(input, result, size);
             g_free(result);
             return;
         }
diff --git a/src/main.c b/src/main.c
index 8a455da7..25eef65e 100644
--- a/src/main.c
+++ b/src/main.c
@@ -54,7 +54,6 @@ _init_modules(void)
 
     ui_init_module();
     console_init_module();
-    inputwin_init_module();
     notifier_init_module();
 
     accounts_init_module();
diff --git a/src/profanity.c b/src/profanity.c
index fb33cffa..ce7dd35b 100644
--- a/src/profanity.c
+++ b/src/profanity.c
@@ -62,7 +62,7 @@ prof_run(const int disable_tls, char *log_level, char *account_name)
 {
     _init(disable_tls, log_level);
     log_info("Starting main event loop");
-    inp_non_block();
+    ui_input_nonblocking();
     GTimer *timer = g_timer_new();
     gboolean cmd_result = TRUE;
     jabber_conn_status_t conn_status = jabber_get_connection_status();
@@ -104,10 +104,7 @@ prof_run(const int disable_tls, char *log_level, char *account_name)
             ui_update_screen();
             jabber_process_events();
 
-            ch = inp_get_char(inp, &size);
-            if (ch != ERR) {
-                ui_reset_idle_time();
-            }
+            ch = ui_get_char(inp, &size);
         }
 
         inp[size++] = '\0';
@@ -202,7 +199,7 @@ process_input(char *inp)
         result = cmd_execute_default(inp);
     }
 
-    inp_win_reset();
+    ui_input_clear();
     roster_reset_search_attempts();
     ui_current_page_off();
 
diff --git a/src/ui/core.c b/src/ui/core.c
index c17b5394..eaa0af48 100644
--- a/src/ui/core.c
+++ b/src/ui/core.c
@@ -52,6 +52,7 @@
 #include "ui/ui.h"
 #include "ui/titlebar.h"
 #include "ui/statusbar.h"
+#include "ui/inputwin.h"
 #include "ui/window.h"
 #include "ui/windows.h"
 #include "xmpp/xmpp.h"
@@ -155,6 +156,34 @@ _ui_close(void)
     endwin();
 }
 
+static wint_t
+_ui_get_char(char *input, int *size)
+{
+    wint_t ch = inp_get_char(input, size);
+    if (ch != ERR) {
+        ui_reset_idle_time();
+    }
+    return ch;
+}
+
+static void
+_ui_input_clear(void)
+{
+    inp_win_reset();
+}
+
+static void
+_ui_replace_input(char *input, const char * const new_input, int *size)
+{
+    inp_replace_input(input, new_input, size);
+}
+
+static void
+_ui_input_nonblocking(void)
+{
+    inp_non_block();
+}
+
 static void
 _ui_resize(const int ch, const char * const input, const int size)
 {
@@ -1863,4 +1892,8 @@ ui_init_module(void)
     ui_update_presence =_ui_update_presence;
     ui_about = _ui_about;
     ui_statusbar_new = _ui_statusbar_new;
+    ui_get_char = _ui_get_char;
+    ui_input_clear = _ui_input_clear;
+    ui_input_nonblocking = _ui_input_nonblocking;
+    ui_replace_input = _ui_replace_input;
 }
diff --git a/src/ui/inputwin.c b/src/ui/inputwin.c
index e9f377b1..d528fd49 100644
--- a/src/ui/inputwin.c
+++ b/src/ui/inputwin.c
@@ -43,6 +43,7 @@
 #include "roster_list.h"
 #include "ui/ui.h"
 #include "ui/statusbar.h"
+#include "ui/inputwin.h"
 #include "ui/windows.h"
 #include "xmpp/xmpp.h"
 
@@ -59,8 +60,8 @@ static int _printable(const wint_t ch);
 static void _clear_input(void);
 static void _go_to_end(int display_size);
 
-static void
-_create_input_window(void)
+void
+create_input_window(void)
 {
 #ifdef NCURSES_REENTRANT
     set_escdelay(25);
@@ -75,8 +76,8 @@ _create_input_window(void)
     _inp_win_update_virtual();
 }
 
-static void
-_inp_win_resize(const char * const input, const int size)
+void
+inp_win_resize(const char * const input, const int size)
 {
     int inp_x;
     getmaxyx(stdscr, rows, cols);
@@ -93,20 +94,20 @@ _inp_win_resize(const char * const input, const int size)
     _inp_win_update_virtual();
 }
 
-static void
-_inp_non_block(void)
+void
+inp_non_block(void)
 {
     wtimeout(inp_win, 20);
 }
 
-static void
-_inp_block(void)
+void
+inp_block(void)
 {
     wtimeout(inp_win, -1);
 }
 
-static wint_t
-_inp_get_char(char *input, int *size)
+wint_t
+inp_get_char(char *input, int *size)
 {
     int inp_x = 0;
     int i;
@@ -208,8 +209,8 @@ _inp_get_char(char *input, int *size)
     return ch;
 }
 
-static void
-_inp_get_password(char *passwd)
+void
+inp_get_password(char *passwd)
 {
     _clear_input();
     _inp_win_update_virtual();
@@ -221,14 +222,14 @@ _inp_get_password(char *passwd)
     status_bar_clear();
 }
 
-static void
-_inp_put_back(void)
+void
+inp_put_back(void)
 {
     _inp_win_update_virtual();
 }
 
-static void
-_inp_replace_input(char *input, const char * const new_input, int *size)
+void
+inp_replace_input(char *input, const char * const new_input, int *size)
 {
     int display_size;
     strncpy(input, new_input, INP_WIN_MAX);
@@ -240,8 +241,8 @@ _inp_replace_input(char *input, const char * const new_input, int *size)
     _go_to_end(display_size);
 }
 
-static void
-_inp_win_reset(void)
+void
+inp_win_reset(void)
 {
     _clear_input();
     pad_start = 0;
@@ -708,18 +709,4 @@ _printable(const wint_t ch)
     bytes[utf_len] = '\0';
     gunichar unichar = g_utf8_get_char(bytes);
     return g_unichar_isprint(unichar) && (ch != KEY_MOUSE);
-}
-
-void
-inputwin_init_module(void)
-{
-    create_input_window = _create_input_window;
-    inp_win_resize = _inp_win_resize;
-    inp_non_block = _inp_non_block;
-    inp_block = _inp_block;
-    inp_get_char = _inp_get_char;
-    inp_get_password = _inp_get_password;
-    inp_put_back = _inp_put_back;
-    inp_replace_input = _inp_replace_input;
-    inp_win_reset = _inp_win_reset;
-}
+}
\ No newline at end of file
diff --git a/src/ui/inputwin.h b/src/ui/inputwin.h
new file mode 100644
index 00000000..f208cbc3
--- /dev/null
+++ b/src/ui/inputwin.h
@@ -0,0 +1,36 @@
+/*
+ * inputwin.c
+ *
+ * Copyright (C) 2012 - 2014 James Booth <boothj5@gmail.com>
+ *
+ * This file is part of Profanity.
+ *
+ * Profanity is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Profanity is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Profanity.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#ifndef UI_INPUTWIN_H
+#define UI_INPUTWIN_H
+
+void create_input_window(void);
+wint_t inp_get_char(char *input, int *size);
+void inp_win_reset(void);
+void inp_win_resize(const char * input, const int size);
+void inp_put_back(void);
+void inp_non_block(void);
+void inp_block(void);
+void inp_get_password(char *passwd);
+void inp_replace_input(char *input, const char * const new_input, int *size);
+
+#endif
\ No newline at end of file
diff --git a/src/ui/statusbar.c b/src/ui/statusbar.c
index 673997bb..9ab0b69d 100644
--- a/src/ui/statusbar.c
+++ b/src/ui/statusbar.c
@@ -35,6 +35,7 @@
 #include "config/theme.h"
 #include "ui/ui.h"
 #include "ui/statusbar.h"
+#include "ui/inputwin.h"
 
 #define TIME_CHECK 60000000
 
diff --git a/src/ui/titlebar.c b/src/ui/titlebar.c
index bc8fc947..395b2c6f 100644
--- a/src/ui/titlebar.c
+++ b/src/ui/titlebar.c
@@ -28,6 +28,7 @@
 #include "config/preferences.h"
 #include "ui/ui.h"
 #include "ui/titlebar.h"
+#include "ui/inputwin.h"
 #include "ui/windows.h"
 #include "ui/window.h"
 #include "roster_list.h"
diff --git a/src/ui/ui.h b/src/ui/ui.h
index 1bc71546..b76ab610 100644
--- a/src/ui/ui.h
+++ b/src/ui/ui.h
@@ -155,8 +155,10 @@ void (*ui_update_presence)(const resource_presence_t resource_presence,
 void (*ui_about)(void);
 void (*ui_statusbar_new)(const int win);
 
-// create windows
-void (*create_input_window)(void);
+wint_t (*ui_get_char)(char *input, int *size);
+void (*ui_input_clear)(void);
+void (*ui_input_nonblocking)(void);
+void (*ui_replace_input)(char *input, const char * const new_input, int *size);
 
 // console window actions
 void (*cons_show)(const char * const msg, ...);
@@ -230,16 +232,6 @@ void (*cons_autoconnect_setting)(void);
 void (*cons_show_contact_online)(PContact contact, Resource *resource, GDateTime *last_activity);
 void (*cons_show_contact_offline)(PContact contact, char *resource, char *status);
 
-// input window actions
-wint_t (*inp_get_char)(char *input, int *size);
-void (*inp_win_reset)(void);
-void (*inp_win_resize)(const char * input, const int size);
-void (*inp_put_back)(void);
-void (*inp_non_block)(void);
-void (*inp_block)(void);
-void (*inp_get_password)(char *passwd);
-void (*inp_replace_input)(char *input, const char * const new_input, int *size);
-
 // desktop notifier actions
 void (*notifier_init)(void);
 void (*notifier_uninit)(void);