mirror of
https://github.com/irssi/irssi.git
synced 2025-02-02 15:08:01 -05:00
"print text finished" -> "gui print text finished". Added %[options] format
for printing text. The syntax for options is [+-]<option>[+-]<option>... Currently supports options 't' = timestamp, 'T' = server tag, 's' = line_start, 'S' = line_start_irssi. -s or -S means don't print the line_start. For example %[-st+T] would never print line_start or timestamp to line, but would always print server tag to line. git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1569 dbcabf3a-b0e7-0310-adc4-f8d773084564
This commit is contained in:
parent
f1a0aabdf4
commit
6362ab86f6
@ -224,7 +224,7 @@ FE common
|
||||
"gui window goto", int number
|
||||
|
||||
(Can be used to determine when all "gui print text"s are sent (not required))
|
||||
"print text finished", WINDOW_REC
|
||||
"gui print text finished", WINDOW_REC
|
||||
|
||||
* Provides signals:
|
||||
|
||||
|
@ -59,11 +59,51 @@ int format_find_tag(const char *module, const char *tag)
|
||||
return -1;
|
||||
}
|
||||
|
||||
int format_expand_styles(GString *out, char format)
|
||||
static void format_expand_code(const char **format, int *flags)
|
||||
{
|
||||
char *p;
|
||||
int set;
|
||||
|
||||
switch (format) {
|
||||
if (flags == NULL) {
|
||||
/* flags are being ignored - skip the code */
|
||||
while (**format != ']')
|
||||
(*format)++;
|
||||
return;
|
||||
}
|
||||
|
||||
set = TRUE;
|
||||
(*format)++;
|
||||
while (**format != ']') {
|
||||
if (**format == '+')
|
||||
set = TRUE;
|
||||
else if (**format == '-')
|
||||
set = FALSE;
|
||||
else switch (**format) {
|
||||
case 's':
|
||||
case 'S':
|
||||
*flags |= !set ? PRINT_FLAG_UNSET_LINE_START :
|
||||
**format == 's' ? PRINT_FLAG_SET_LINE_START :
|
||||
PRINT_FLAG_SET_LINE_START_IRSSI;
|
||||
break;
|
||||
case 't':
|
||||
*flags |= set ? PRINT_FLAG_SET_TIMESTAMP :
|
||||
PRINT_FLAG_UNSET_TIMESTAMP;
|
||||
break;
|
||||
case 'T':
|
||||
*flags |= set ? PRINT_FLAG_SET_SERVERTAG :
|
||||
PRINT_FLAG_UNSET_SERVERTAG;
|
||||
break;
|
||||
}
|
||||
|
||||
(*format)++;
|
||||
}
|
||||
}
|
||||
|
||||
int format_expand_styles(GString *out, const char **format, int *flags)
|
||||
{
|
||||
char *p, fmt;
|
||||
|
||||
fmt = **format;
|
||||
switch (fmt) {
|
||||
case 'U':
|
||||
/* Underline on/off */
|
||||
g_string_append_c(out, 4);
|
||||
@ -103,9 +143,13 @@ int format_expand_styles(GString *out, char format)
|
||||
g_string_append_c(out, 4);
|
||||
g_string_append_c(out, FORMAT_STYLE_DEFAULTS);
|
||||
break;
|
||||
case '[':
|
||||
/* code */
|
||||
format_expand_code(format, flags);
|
||||
break;
|
||||
default:
|
||||
/* check if it's a background color */
|
||||
p = strchr(format_backs, format);
|
||||
p = strchr(format_backs, fmt);
|
||||
if (p != NULL) {
|
||||
g_string_append_c(out, 4);
|
||||
g_string_append_c(out, FORMAT_COLOR_NOCHANGE);
|
||||
@ -114,8 +158,8 @@ int format_expand_styles(GString *out, char format)
|
||||
}
|
||||
|
||||
/* check if it's a foreground color */
|
||||
if (format == 'p') format = 'm';
|
||||
p = strchr(format_fores, format);
|
||||
if (fmt == 'p') fmt = 'm';
|
||||
p = strchr(format_fores, fmt);
|
||||
if (p != NULL) {
|
||||
g_string_append_c(out, 4);
|
||||
g_string_append_c(out, (char) ((int) (p-format_fores)+'0'));
|
||||
@ -124,8 +168,8 @@ int format_expand_styles(GString *out, char format)
|
||||
}
|
||||
|
||||
/* check if it's a bold foreground color */
|
||||
if (format == 'P') format = 'M';
|
||||
p = strchr(format_boldfores, format);
|
||||
if (fmt == 'P') fmt = 'M';
|
||||
p = strchr(format_boldfores, fmt);
|
||||
if (p != NULL) {
|
||||
g_string_append_c(out, 4);
|
||||
g_string_append_c(out, (char) (8+(int) (p-format_boldfores)+'0'));
|
||||
@ -208,14 +252,13 @@ void format_create_dest(TEXT_DEST_REC *dest,
|
||||
void *server, const char *target,
|
||||
int level, WINDOW_REC *window)
|
||||
{
|
||||
memset(dest, 0, sizeof(TEXT_DEST_REC));
|
||||
|
||||
dest->server = server;
|
||||
dest->target = target;
|
||||
dest->level = level;
|
||||
dest->window = window != NULL ? window :
|
||||
window_find_closest(server, target, level);
|
||||
|
||||
dest->hilight_priority = 0;
|
||||
dest->hilight_color = NULL;
|
||||
}
|
||||
|
||||
/* Return length of text part in string (ie. without % codes) */
|
||||
@ -231,7 +274,8 @@ int format_get_length(const char *str)
|
||||
while (*str != '\0') {
|
||||
if (*str == '%' && str[1] != '\0') {
|
||||
str++;
|
||||
if (*str != '%' && format_expand_styles(tmp, *str)) {
|
||||
if (*str != '%' &&
|
||||
format_expand_styles(tmp, &str, NULL)) {
|
||||
str++;
|
||||
continue;
|
||||
}
|
||||
@ -265,7 +309,8 @@ int format_real_length(const char *str, int len)
|
||||
while (*str != '\0' && len > 0) {
|
||||
if (*str == '%' && str[1] != '\0') {
|
||||
str++;
|
||||
if (*str != '%' && format_expand_styles(tmp, *str)) {
|
||||
if (*str != '%' &&
|
||||
format_expand_styles(tmp, &str, NULL)) {
|
||||
str++;
|
||||
continue;
|
||||
}
|
||||
@ -285,7 +330,7 @@ int format_real_length(const char *str, int len)
|
||||
return (int) (str-start);
|
||||
}
|
||||
|
||||
char *format_string_expand(const char *text)
|
||||
char *format_string_expand(const char *text, int *flags)
|
||||
{
|
||||
GString *out;
|
||||
char code, *ret;
|
||||
@ -294,11 +339,12 @@ char *format_string_expand(const char *text)
|
||||
|
||||
out = g_string_new(NULL);
|
||||
|
||||
if (flags != NULL) *flags = 0;
|
||||
code = 0;
|
||||
while (*text != '\0') {
|
||||
if (code == '%') {
|
||||
/* color code */
|
||||
if (!format_expand_styles(out, *text)) {
|
||||
if (!format_expand_styles(out, &text, flags)) {
|
||||
g_string_append_c(out, '%');
|
||||
g_string_append_c(out, '%');
|
||||
g_string_append_c(out, *text);
|
||||
@ -332,7 +378,7 @@ static char *format_get_text_args(TEXT_DEST_REC *dest,
|
||||
while (*text != '\0') {
|
||||
if (code == '%') {
|
||||
/* color code */
|
||||
if (!format_expand_styles(out, *text)) {
|
||||
if (!format_expand_styles(out, &text, &dest->flags)) {
|
||||
g_string_append_c(out, '%');
|
||||
g_string_append_c(out, '%');
|
||||
g_string_append_c(out, *text);
|
||||
@ -487,19 +533,29 @@ char *format_get_level_tag(THEME_REC *theme, TEXT_DEST_REC *dest)
|
||||
{
|
||||
int format;
|
||||
|
||||
if (dest->level & LINE_START_IRSSI_LEVEL)
|
||||
format = TXT_LINE_START_IRSSI;
|
||||
else if ((dest->level & NOT_LINE_START_LEVEL) == 0)
|
||||
format = TXT_LINE_START;
|
||||
else
|
||||
/* check for flags if we want to override defaults */
|
||||
if (dest->flags & PRINT_FLAG_UNSET_LINE_START)
|
||||
return NULL;
|
||||
|
||||
if (dest->flags & PRINT_FLAG_SET_LINE_START)
|
||||
format = TXT_LINE_START;
|
||||
else if (dest->flags & PRINT_FLAG_SET_LINE_START_IRSSI)
|
||||
format = TXT_LINE_START_IRSSI;
|
||||
else {
|
||||
/* use defaults */
|
||||
if (dest->level & LINE_START_IRSSI_LEVEL)
|
||||
format = TXT_LINE_START_IRSSI;
|
||||
else if ((dest->level & NOT_LINE_START_LEVEL) == 0)
|
||||
format = TXT_LINE_START;
|
||||
else
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return format_get_text_theme(theme, MODULE_NAME, dest, format);
|
||||
}
|
||||
|
||||
#define show_timestamp(level) \
|
||||
((level & (MSGLEVEL_NEVER|MSGLEVEL_LASTLOG)) == 0 && \
|
||||
(timestamps || (msgs_timestamps && ((level) & MSGLEVEL_MSGS))))
|
||||
(timestamps || (msgs_timestamps && ((level) & MSGLEVEL_MSGS)))
|
||||
|
||||
static char *get_timestamp(THEME_REC *theme, TEXT_DEST_REC *dest, time_t t)
|
||||
{
|
||||
@ -509,6 +565,15 @@ static char *get_timestamp(THEME_REC *theme, TEXT_DEST_REC *dest, time_t t)
|
||||
if (!show_timestamp(dest->level))
|
||||
return NULL;
|
||||
|
||||
/* check for flags if we want to override defaults */
|
||||
if (dest->flags & PRINT_FLAG_UNSET_TIMESTAMP)
|
||||
return NULL;
|
||||
|
||||
if ((dest->flags & PRINT_FLAG_SET_TIMESTAMP) == 0 &&
|
||||
(dest->level & (MSGLEVEL_NEVER|MSGLEVEL_LASTLOG)) != 0)
|
||||
return NULL;
|
||||
|
||||
|
||||
if (timestamp_timeout > 0) {
|
||||
diff = t - dest->window->last_timestamp;
|
||||
dest->window->last_timestamp = t;
|
||||
@ -530,25 +595,35 @@ static char *get_server_tag(THEME_REC *theme, TEXT_DEST_REC *dest)
|
||||
|
||||
server = dest->server;
|
||||
|
||||
if (server == NULL || hide_server_tags ||
|
||||
(dest->window->active != NULL &&
|
||||
dest->window->active->server == server))
|
||||
if (server == NULL || hide_server_tags)
|
||||
return NULL;
|
||||
|
||||
/* check for flags if we want to override defaults */
|
||||
if (dest->flags & PRINT_FLAG_UNSET_SERVERTAG)
|
||||
return NULL;
|
||||
|
||||
if (servers != NULL) {
|
||||
count++;
|
||||
if (servers->next != NULL)
|
||||
if ((dest->flags & PRINT_FLAG_SET_SERVERTAG) == 0) {
|
||||
if (dest->window->active != NULL &&
|
||||
dest->window->active->server == server)
|
||||
return NULL;
|
||||
|
||||
if (servers != NULL) {
|
||||
count++;
|
||||
}
|
||||
if (count < 2 && lookup_servers != NULL) {
|
||||
count++;
|
||||
if (lookup_servers->next != NULL)
|
||||
if (servers->next != NULL)
|
||||
count++;
|
||||
}
|
||||
if (count < 2 && lookup_servers != NULL) {
|
||||
count++;
|
||||
if (lookup_servers->next != NULL)
|
||||
count++;
|
||||
}
|
||||
|
||||
if (count < 2)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return count < 2 ? NULL :
|
||||
format_get_text_theme(theme, MODULE_NAME, dest,
|
||||
TXT_SERVERTAG, server->tag);
|
||||
return format_get_text_theme(theme, MODULE_NAME, dest,
|
||||
TXT_SERVERTAG, server->tag);
|
||||
}
|
||||
|
||||
char *format_get_line_start(THEME_REC *theme, TEXT_DEST_REC *dest, time_t t)
|
||||
@ -576,7 +651,7 @@ void format_newline(WINDOW_REC *window)
|
||||
|
||||
signal_emit_id(signal_gui_print_text, 6, window,
|
||||
GINT_TO_POINTER(-1), GINT_TO_POINTER(-1),
|
||||
GINT_TO_POINTER(PRINTFLAG_NEWLINE),
|
||||
GINT_TO_POINTER(GUI_PRINT_FLAG_NEWLINE),
|
||||
"", GINT_TO_POINTER(-1));
|
||||
}
|
||||
|
||||
@ -613,19 +688,19 @@ static char *get_ansi_color(THEME_REC *theme, char *str,
|
||||
/* reset colors back to default */
|
||||
fg = theme->default_color;
|
||||
bg = -1;
|
||||
flags &= ~PRINTFLAG_INDENT;
|
||||
flags &= ~GUI_PRINT_FLAG_INDENT;
|
||||
break;
|
||||
case 1:
|
||||
/* hilight */
|
||||
flags |= PRINTFLAG_BOLD;
|
||||
flags |= GUI_PRINT_FLAG_BOLD;
|
||||
break;
|
||||
case 5:
|
||||
/* blink */
|
||||
flags |= PRINTFLAG_BLINK;
|
||||
flags |= GUI_PRINT_FLAG_BLINK;
|
||||
break;
|
||||
case 7:
|
||||
/* reverse */
|
||||
flags |= PRINTFLAG_REVERSE;
|
||||
flags |= GUI_PRINT_FLAG_REVERSE;
|
||||
break;
|
||||
default:
|
||||
if (num >= 30 && num <= 37)
|
||||
@ -817,7 +892,7 @@ void format_send_to_gui(TEXT_DEST_REC *dest, const char *text)
|
||||
GINT_TO_POINTER(bgcolor),
|
||||
GINT_TO_POINTER(flags), str,
|
||||
dest->level);
|
||||
flags &= ~PRINTFLAG_INDENT;
|
||||
flags &= ~GUI_PRINT_FLAG_INDENT;
|
||||
}
|
||||
|
||||
if (type == '\n')
|
||||
@ -831,7 +906,7 @@ void format_send_to_gui(TEXT_DEST_REC *dest, const char *text)
|
||||
case 2:
|
||||
/* bold */
|
||||
if (!hide_text_style)
|
||||
flags ^= PRINTFLAG_BOLD;
|
||||
flags ^= GUI_PRINT_FLAG_BOLD;
|
||||
break;
|
||||
case 3:
|
||||
/* MIRC color */
|
||||
@ -839,40 +914,40 @@ void format_send_to_gui(TEXT_DEST_REC *dest, const char *text)
|
||||
hide_text_style ? NULL : &fgcolor,
|
||||
hide_text_style ? NULL : &bgcolor);
|
||||
if (!hide_text_style)
|
||||
flags |= PRINTFLAG_MIRC_COLOR;
|
||||
flags |= GUI_PRINT_FLAG_MIRC_COLOR;
|
||||
break;
|
||||
case 4:
|
||||
/* user specific colors */
|
||||
flags &= ~PRINTFLAG_MIRC_COLOR;
|
||||
flags &= ~GUI_PRINT_FLAG_MIRC_COLOR;
|
||||
switch (*ptr) {
|
||||
case FORMAT_STYLE_BLINK:
|
||||
flags ^= PRINTFLAG_BLINK;
|
||||
flags ^= GUI_PRINT_FLAG_BLINK;
|
||||
break;
|
||||
case FORMAT_STYLE_UNDERLINE:
|
||||
flags ^= PRINTFLAG_UNDERLINE;
|
||||
flags ^= GUI_PRINT_FLAG_UNDERLINE;
|
||||
break;
|
||||
case FORMAT_STYLE_BOLD:
|
||||
flags ^= PRINTFLAG_BOLD;
|
||||
flags ^= GUI_PRINT_FLAG_BOLD;
|
||||
break;
|
||||
case FORMAT_STYLE_REVERSE:
|
||||
flags ^= PRINTFLAG_REVERSE;
|
||||
flags ^= GUI_PRINT_FLAG_REVERSE;
|
||||
break;
|
||||
case FORMAT_STYLE_INDENT:
|
||||
flags |= PRINTFLAG_INDENT;
|
||||
flags |= GUI_PRINT_FLAG_INDENT;
|
||||
break;
|
||||
case FORMAT_STYLE_DEFAULTS:
|
||||
fgcolor = bgcolor = -1;
|
||||
flags &= PRINTFLAG_INDENT;
|
||||
flags &= GUI_PRINT_FLAG_INDENT;
|
||||
break;
|
||||
default:
|
||||
if (*ptr != FORMAT_COLOR_NOCHANGE) {
|
||||
fgcolor = (unsigned char) *ptr-'0';
|
||||
if (fgcolor <= 7)
|
||||
flags &= ~PRINTFLAG_BOLD;
|
||||
flags &= ~GUI_PRINT_FLAG_BOLD;
|
||||
else {
|
||||
/* bold */
|
||||
if (fgcolor != 8) fgcolor -= 8;
|
||||
flags |= PRINTFLAG_BOLD;
|
||||
flags |= GUI_PRINT_FLAG_BOLD;
|
||||
}
|
||||
}
|
||||
ptr++;
|
||||
@ -884,22 +959,22 @@ void format_send_to_gui(TEXT_DEST_REC *dest, const char *text)
|
||||
case 6:
|
||||
/* blink */
|
||||
if (!hide_text_style)
|
||||
flags ^= PRINTFLAG_BLINK;
|
||||
flags ^= GUI_PRINT_FLAG_BLINK;
|
||||
break;
|
||||
case 15:
|
||||
/* remove all styling */
|
||||
fgcolor = bgcolor = -1;
|
||||
flags &= PRINTFLAG_INDENT;
|
||||
flags &= GUI_PRINT_FLAG_INDENT;
|
||||
break;
|
||||
case 22:
|
||||
/* reverse */
|
||||
if (!hide_text_style)
|
||||
flags ^= PRINTFLAG_REVERSE;
|
||||
flags ^= GUI_PRINT_FLAG_REVERSE;
|
||||
break;
|
||||
case 31:
|
||||
/* underline */
|
||||
if (!hide_text_style)
|
||||
flags ^= PRINTFLAG_UNDERLINE;
|
||||
flags ^= GUI_PRINT_FLAG_UNDERLINE;
|
||||
break;
|
||||
case 27:
|
||||
/* ansi color code */
|
||||
|
@ -4,13 +4,13 @@
|
||||
#include "themes.h"
|
||||
#include "fe-windows.h"
|
||||
|
||||
#define PRINTFLAG_BOLD 0x01
|
||||
#define PRINTFLAG_REVERSE 0x02
|
||||
#define PRINTFLAG_UNDERLINE 0x04
|
||||
#define PRINTFLAG_BLINK 0x08
|
||||
#define PRINTFLAG_MIRC_COLOR 0x10
|
||||
#define PRINTFLAG_INDENT 0x20
|
||||
#define PRINTFLAG_NEWLINE 0x40
|
||||
#define GUI_PRINT_FLAG_BOLD 0x01
|
||||
#define GUI_PRINT_FLAG_REVERSE 0x02
|
||||
#define GUI_PRINT_FLAG_UNDERLINE 0x04
|
||||
#define GUI_PRINT_FLAG_BLINK 0x08
|
||||
#define GUI_PRINT_FLAG_MIRC_COLOR 0x10
|
||||
#define GUI_PRINT_FLAG_INDENT 0x20
|
||||
#define GUI_PRINT_FLAG_NEWLINE 0x40
|
||||
|
||||
#define MAX_FORMAT_PARAMS 10
|
||||
#define DEFAULT_FORMAT_ARGLIST_SIZE 200
|
||||
@ -30,6 +30,16 @@ struct _FORMAT_REC {
|
||||
int paramtypes[MAX_FORMAT_PARAMS];
|
||||
};
|
||||
|
||||
#define PRINT_FLAG_SET_LINE_START 0x0001
|
||||
#define PRINT_FLAG_SET_LINE_START_IRSSI 0x0002
|
||||
#define PRINT_FLAG_UNSET_LINE_START 0x0003
|
||||
|
||||
#define PRINT_FLAG_SET_TIMESTAMP 0x0004
|
||||
#define PRINT_FLAG_UNSET_TIMESTAMP 0x0008
|
||||
|
||||
#define PRINT_FLAG_SET_SERVERTAG 0x0010
|
||||
#define PRINT_FLAG_UNSET_SERVERTAG 0x0020
|
||||
|
||||
typedef struct {
|
||||
WINDOW_REC *window;
|
||||
SERVER_REC *server;
|
||||
@ -38,6 +48,7 @@ typedef struct {
|
||||
|
||||
int hilight_priority;
|
||||
char *hilight_color;
|
||||
int flags;
|
||||
} TEXT_DEST_REC;
|
||||
|
||||
int format_find_tag(const char *module, const char *tag);
|
||||
@ -49,7 +60,7 @@ int format_get_length(const char *str);
|
||||
handles %codes. */
|
||||
int format_real_length(const char *str, int len);
|
||||
|
||||
char *format_string_expand(const char *text);
|
||||
char *format_string_expand(const char *text, int *flags);
|
||||
|
||||
char *format_get_text(const char *module, WINDOW_REC *window,
|
||||
void *server, const char *target,
|
||||
@ -107,7 +118,7 @@ void format_send_to_gui(TEXT_DEST_REC *dest, const char *text);
|
||||
#define FORMAT_STYLE_REVERSE (0x04 + FORMAT_STYLE_SPECIAL)
|
||||
#define FORMAT_STYLE_INDENT (0x05 + FORMAT_STYLE_SPECIAL)
|
||||
#define FORMAT_STYLE_DEFAULTS (0x06 + FORMAT_STYLE_SPECIAL)
|
||||
int format_expand_styles(GString *out, char format);
|
||||
int format_expand_styles(GString *out, const char **format, int *flags);
|
||||
|
||||
void formats_init(void);
|
||||
void formats_deinit(void);
|
||||
|
@ -263,7 +263,7 @@ static char *hilight_get_color(HILIGHT_REC *rec)
|
||||
color = rec->color != NULL ? rec->color :
|
||||
settings_get_str("hilight_color");
|
||||
|
||||
return format_string_expand(color);
|
||||
return format_string_expand(color, NULL);
|
||||
}
|
||||
|
||||
static void hilight_update_text_dest(TEXT_DEST_REC *dest, HILIGHT_REC *rec)
|
||||
|
@ -34,11 +34,10 @@
|
||||
|
||||
static int beep_msg_level, beep_when_away, beep_when_window_active;
|
||||
|
||||
static int signal_gui_print_text;
|
||||
static int signal_print_text;
|
||||
static int signal_print_text_finished;
|
||||
static int signal_print_format;
|
||||
static int signal_gui_print_text, signal_gui_print_text_finished;
|
||||
static int signal_print_starting;
|
||||
static int signal_print_text;
|
||||
static int signal_print_format;
|
||||
|
||||
static int sending_print_starting;
|
||||
|
||||
@ -235,7 +234,7 @@ static char *printtext_get_args(TEXT_DEST_REC *dest, const char *str,
|
||||
break;
|
||||
}
|
||||
default:
|
||||
if (!format_expand_styles(out, *str)) {
|
||||
if (!format_expand_styles(out, &str, &dest->flags)) {
|
||||
g_string_append_c(out, '%');
|
||||
g_string_append_c(out, *str);
|
||||
}
|
||||
@ -248,7 +247,7 @@ static char *printtext_get_args(TEXT_DEST_REC *dest, const char *str,
|
||||
return ret;
|
||||
}
|
||||
|
||||
static char *printtext_expand_formats(const char *str)
|
||||
static char *printtext_expand_formats(const char *str, int *flags)
|
||||
{
|
||||
GString *out;
|
||||
char *ret;
|
||||
@ -263,7 +262,7 @@ static char *printtext_expand_formats(const char *str)
|
||||
if (*++str == '\0')
|
||||
break;
|
||||
|
||||
if (!format_expand_styles(out, *str)) {
|
||||
if (!format_expand_styles(out, &str, flags)) {
|
||||
g_string_append_c(out, '%');
|
||||
g_string_append_c(out, *str);
|
||||
}
|
||||
@ -320,7 +319,7 @@ void printtext_string(void *server, const char *target, int level, const char *t
|
||||
sending_print_starting = FALSE;
|
||||
}
|
||||
|
||||
str = printtext_expand_formats(text);
|
||||
str = printtext_expand_formats(text, &dest.flags);
|
||||
print_line(&dest, str);
|
||||
g_free(str);
|
||||
}
|
||||
@ -349,7 +348,7 @@ void printtext_gui(const char *text)
|
||||
|
||||
memset(&dest, 0, sizeof(dest));
|
||||
|
||||
str = printtext_expand_formats(text);
|
||||
str = printtext_expand_formats(text, &dest.flags);
|
||||
format_send_to_gui(&dest, str);
|
||||
g_free(str);
|
||||
}
|
||||
@ -385,7 +384,7 @@ static void sig_print_text(TEXT_DEST_REC *dest, const char *text)
|
||||
format_send_to_gui(dest, str);
|
||||
g_free(str);
|
||||
|
||||
signal_emit_id(signal_print_text_finished, 1, dest->window);
|
||||
signal_emit_id(signal_gui_print_text_finished, 1, dest->window);
|
||||
}
|
||||
|
||||
static void sig_print_text_free(TEXT_DEST_REC *dest, const char *text)
|
||||
@ -432,10 +431,10 @@ void printtext_init(void)
|
||||
{
|
||||
sending_print_starting = FALSE;
|
||||
signal_gui_print_text = signal_get_uniq_id("gui print text");
|
||||
signal_print_text = signal_get_uniq_id("print text");
|
||||
signal_print_text_finished = signal_get_uniq_id("print text finished");
|
||||
signal_print_format = signal_get_uniq_id("print format");
|
||||
signal_gui_print_text_finished = signal_get_uniq_id("gui print text finished");
|
||||
signal_print_starting = signal_get_uniq_id("print starting");
|
||||
signal_print_text = signal_get_uniq_id("print text");
|
||||
signal_print_format = signal_get_uniq_id("print format");
|
||||
|
||||
read_settings();
|
||||
signal_add("print text", (SIGNAL_FUNC) sig_print_text);
|
||||
|
@ -72,7 +72,7 @@ static void remove_old_lines(TEXT_BUFFER_VIEW_REC *view)
|
||||
|
||||
static void get_colors(int flags, int *fg, int *bg)
|
||||
{
|
||||
if (flags & PRINTFLAG_MIRC_COLOR) {
|
||||
if (flags & GUI_PRINT_FLAG_MIRC_COLOR) {
|
||||
/* mirc colors - real range is 0..15, but after 16
|
||||
colors wrap to 0, 1, ... */
|
||||
*bg = *bg < 0 ? 0 : mirc_colors[*bg % 16];
|
||||
@ -88,19 +88,19 @@ static void get_colors(int flags, int *fg, int *bg)
|
||||
current_theme->default_real_color;
|
||||
}
|
||||
|
||||
if (flags & PRINTFLAG_REVERSE) {
|
||||
if (flags & GUI_PRINT_FLAG_REVERSE) {
|
||||
int tmp;
|
||||
|
||||
tmp = *fg; *fg = *bg; *bg = tmp;
|
||||
}
|
||||
|
||||
if (*fg == 8) *fg |= ATTR_COLOR8;
|
||||
if (flags & PRINTFLAG_BOLD) {
|
||||
if (flags & GUI_PRINT_FLAG_BOLD) {
|
||||
if (*fg == 0) *fg = current_theme->default_real_color;
|
||||
*fg |= 8;
|
||||
}
|
||||
if (flags & PRINTFLAG_UNDERLINE) *fg |= ATTR_UNDERLINE;
|
||||
if (flags & PRINTFLAG_BLINK) *bg |= 0x08;
|
||||
if (flags & GUI_PRINT_FLAG_UNDERLINE) *fg |= ATTR_UNDERLINE;
|
||||
if (flags & GUI_PRINT_FLAG_BLINK) *bg |= 0x08;
|
||||
}
|
||||
|
||||
static void line_add_colors(TEXT_BUFFER_REC *buffer, LINE_REC **line,
|
||||
@ -120,7 +120,7 @@ static void line_add_colors(TEXT_BUFFER_REC *buffer, LINE_REC **line,
|
||||
data[pos++] = color == 0 ? LINE_CMD_COLOR0 : color;
|
||||
}
|
||||
|
||||
if ((flags & PRINTFLAG_UNDERLINE) != (last_flags & PRINTFLAG_UNDERLINE)) {
|
||||
if ((flags & GUI_PRINT_FLAG_UNDERLINE) != (last_flags & GUI_PRINT_FLAG_UNDERLINE)) {
|
||||
data[pos++] = 0;
|
||||
data[pos++] = LINE_CMD_UNDERLINE;
|
||||
}
|
||||
@ -132,7 +132,7 @@ static void line_add_colors(TEXT_BUFFER_REC *buffer, LINE_REC **line,
|
||||
data[pos++] = 0;
|
||||
data[pos++] = LINE_CMD_BLINK;
|
||||
}
|
||||
if (flags & PRINTFLAG_INDENT) {
|
||||
if (flags & GUI_PRINT_FLAG_INDENT) {
|
||||
data[pos++] = 0;
|
||||
data[pos++] = LINE_CMD_INDENT;
|
||||
}
|
||||
@ -182,14 +182,14 @@ static void sig_gui_print_text(WINDOW_REC *window, void *fgcolor,
|
||||
insert_after = WINDOW_GUI(window)->use_insert_after ?
|
||||
WINDOW_GUI(window)->insert_after : view->buffer->cur_line;
|
||||
|
||||
if (flags & PRINTFLAG_NEWLINE)
|
||||
if (flags & GUI_PRINT_FLAG_NEWLINE)
|
||||
view_add_eol(view, &insert_after);
|
||||
line_add_colors(view->buffer, &insert_after, fg, bg, flags);
|
||||
textbuffer_insert(view->buffer, insert_after,
|
||||
str, strlen(str), &lineinfo);
|
||||
}
|
||||
|
||||
static void sig_printtext_finished(WINDOW_REC *window)
|
||||
static void sig_gui_printtext_finished(WINDOW_REC *window)
|
||||
{
|
||||
TEXT_BUFFER_VIEW_REC *view;
|
||||
LINE_REC *insert_after;
|
||||
@ -258,7 +258,7 @@ void gui_printtext_init(void)
|
||||
settings_add_bool("history", "scrollback_save_formats", FALSE);
|
||||
|
||||
signal_add("gui print text", (SIGNAL_FUNC) sig_gui_print_text);
|
||||
signal_add("print text finished", (SIGNAL_FUNC) sig_printtext_finished);
|
||||
signal_add("gui print text finished", (SIGNAL_FUNC) sig_gui_printtext_finished);
|
||||
signal_add("print format", (SIGNAL_FUNC) sig_print_format);
|
||||
signal_add("setup changed", (SIGNAL_FUNC) read_settings);
|
||||
|
||||
@ -270,7 +270,7 @@ void gui_printtext_deinit(void)
|
||||
g_string_free(format, TRUE);
|
||||
|
||||
signal_remove("gui print text", (SIGNAL_FUNC) sig_gui_print_text);
|
||||
signal_remove("print text finished", (SIGNAL_FUNC) sig_printtext_finished);
|
||||
signal_remove("print text finished", (SIGNAL_FUNC) sig_gui_printtext_finished);
|
||||
signal_remove("print format", (SIGNAL_FUNC) sig_print_format);
|
||||
signal_remove("setup changed", (SIGNAL_FUNC) read_settings);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user