Removed inputwin functions from ui.h

This commit is contained in:
James Booth
2014-04-07 21:50:28 +01:00
parent e2443511b6
commit 9aa282f6de
10 changed files with 110 additions and 64 deletions

View File

@@ -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;
}

View File

@@ -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;
}
}

36
src/ui/inputwin.h Normal file
View File

@@ -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

View File

@@ -35,6 +35,7 @@
#include "config/theme.h"
#include "ui/ui.h"
#include "ui/statusbar.h"
#include "ui/inputwin.h"
#define TIME_CHECK 60000000

View File

@@ -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"

View File

@@ -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);