Mercurial > hg > nnchat
view ui.h @ 541:44f67ec5e945
Improve logging facilities. Private chats in query windows are now logged
separately. A log file directory can be set in configuration. Room log files
are always of format room_%d.ext. Log file extension can be set, default is
".log".
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Sun, 11 Nov 2012 18:32:42 +0200 |
parents | ef5a2aa8382b |
children | 13901e9be15b |
line wrap: on
line source
/* * NNChat - Custom chat client for NewbieNudes.com chatrooms * Written by Matti 'ccr' Hämäläinen * (C) Copyright 2008-2012 Tecnic Software productions (TNSP) */ #ifndef LIBNNUI_H #define LIBNNUI_H #ifdef __WIN32 #define SET_DELAY (0) // Undefine because both windows.h and curses.h #define it #undef MOUSE_MOVED #else #define SET_DELAY (5) #endif #ifdef HAVE_NCURSES_H #include <ncurses.h> #else #include <curses.h> #endif #include "th_types.h" #include "th_string.h" #include "network.h" #define SET_MAX_WINDOWS (32) #define NN_BACKBUF_LEN (512) // Backbuffer size (in lines) typedef struct { int *buf; size_t len, bufsize; } nn_line_t; typedef struct { qringbuf_t *data; // "Backbuffer" data for this window int pos; // Current position in the window, 0 = real time BOOL dirty; int num; char *id; // Chatter ID, NULL = main window nn_line_t *line; // Logging char *logFilename; FILE *logFile; } nn_window_t; typedef struct { time_t prevKeepAlive; BOOL insertMode, exitProg, isError, update, mask, done; nn_conn_t *conn; void (*debugMsg)(const char *fmt, ...); } nn_editstate_t; extern nn_window_t *currWin; extern BOOL cursesInit; extern int scrHeight, scrWidth; BOOL nnwin_init(int delay); void nnwin_shutdown(); void nnwin_reset(void); void nnwin_update(BOOL force, BOOL mask, nn_editbuf_t *ebuf, char *optUserName, int optUserColor); nn_window_t * nnwin_main_window(); nn_window_t * nnwin_get(const int index); nn_window_t * nnwin_find(const char *id); void nnwin_set_current(nn_window_t *); BOOL nnwin_open(const char *name, BOOL curwin); void nnwin_close(nn_window_t *win); int nnwin_print(nn_window_t *win, const char *fmt); void nnwin_input_process(nn_editbuf_t *editBuf, nn_editstate_t *editState, BOOL (*callback)(int, nn_editbuf_t *, nn_editstate_t *)); char * nnwin_prompt_requester(BOOL allowEmpty, nn_editstate_t *, BOOL (*callback)(int, nn_editbuf_t *, nn_editstate_t *), void (*update)(nn_editbuf_t *, nn_editstate_t *)); BOOL nn_log_open(nn_window_t *win); void nn_log_close(nn_window_t *win); #endif