core: add options to use different color for offline nicks in prefix (patch from Nei) (task #11109)

New options:
- weechat.look.color_nick_offline: boolean to enable feature (off by default)
- weechat.color.chat_nick_offline: color for offline nicks (displayed in prefix)
This commit is contained in:
Sebastien Helleu 2012-06-09 08:53:50 +02:00
parent 2a00de476e
commit 200652836b
28 changed files with 315 additions and 85 deletions

View File

@ -1,12 +1,15 @@
WeeChat ChangeLog
=================
Sébastien Helleu <flashcode@flashtux.org>
v0.3.9-dev, 2012-06-05
v0.3.9-dev, 2012-06-09
Version 0.3.9 (under dev!)
--------------------------
* core: add options weechat.look.color_nick_offline and
weechat.color.chat_nick_offline to use different color for offline nicks in
prefix (task #11109)
* core: reallow names beginning with "#" for bars, proxies and filters
* core: escape special chars (`#[\`) in configuration files for name of options
(bug #36584)

View File

@ -63,6 +63,11 @@
** Typ: Zeichenkette
** Werte: beliebige Zeichenkette (Standardwert: `"cyan,magenta,green,brown,lightblue,default,lightcyan,lightmagenta,lightgreen,blue"`)
* [[option_weechat.color.chat_nick_offline]] *weechat.color.chat_nick_offline*
** Beschreibung: `text color for offline nick (not in nicklist any more)`
** Typ: Farbe
** Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "_" für unterstrichen (Standardwert: `darkgray`)
* [[option_weechat.color.chat_nick_other]] *weechat.color.chat_nick_other*
** Beschreibung: `Farbe des anderen Nicknamens in einem privaten Buffer`
** Typ: Farbe
@ -413,6 +418,11 @@
** Typ: boolesch
** Werte: on, off (Standardwert: `off`)
* [[option_weechat.look.color_nick_offline]] *weechat.look.color_nick_offline*
** Beschreibung: `use a different color for offline nick (not in nicklist any more)`
** Typ: boolesch
** Werte: on, off (Standardwert: `off`)
* [[option_weechat.look.color_pairs_auto_reset]] *weechat.look.color_pairs_auto_reset*
** Beschreibung: `automatischer Reset der Farbpaarungen sobald die verfügbare Anzahl an Paaren kleiner oder gleich der hier angegebenen Anzahl ist (-1 = deaktiviert den automatischen Reset, dann ist ein manueller Reset mittels "/color reset" notwendig falls alle Farbpaarungen belegt sind)`
** Typ: integer

View File

@ -63,6 +63,11 @@
** type: string
** values: any string (default value: `"cyan,magenta,green,brown,lightblue,default,lightcyan,lightmagenta,lightgreen,blue"`)
* [[option_weechat.color.chat_nick_offline]] *weechat.color.chat_nick_offline*
** description: `text color for offline nick (not in nicklist any more)`
** type: color
** values: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "_" for underline (default value: `darkgray`)
* [[option_weechat.color.chat_nick_other]] *weechat.color.chat_nick_other*
** description: `text color for other nick in private buffer`
** type: color
@ -413,6 +418,11 @@
** type: boolean
** values: on, off (default value: `off`)
* [[option_weechat.look.color_nick_offline]] *weechat.look.color_nick_offline*
** description: `use a different color for offline nick (not in nicklist any more)`
** type: boolean
** values: on, off (default value: `off`)
* [[option_weechat.look.color_pairs_auto_reset]] *weechat.look.color_pairs_auto_reset*
** description: `automatically reset table of color pairs when number of available pairs is lower or equal to this number (-1 = disable automatic reset, and then a manual "/color reset" is needed when table is full)`
** type: integer

View File

@ -790,7 +790,7 @@ All combinations are summarized in this table:
Color codes using options (see 't_gui_color_enum', in file 'src/gui/gui-color.h'):
[width="40%",cols="^1m,5",options="header"]
[width="60%",cols="^1m,10",options="header"]
|========================================
| Code | Option
| 00 | weechat.color.separator
@ -827,15 +827,16 @@ Color codes using options (see 't_gui_color_enum', in file 'src/gui/gui-color.h'
| 31 | weechat.color.chat_text_found
| 32 | weechat.color.chat_value
| 33 | weechat.color.chat_prefix_buffer
| 34 | weechat.color.chat_tags
| 35 | weechat.color.chat_inactive_window
| 36 | weechat.color.chat_inactive_buffer
| 37 | weechat.color.chat_prefix_buffer_inactive_buffer
| 34 | weechat.color.chat_tags _(new in version 0.3.6)_
| 35 | weechat.color.chat_inactive_window _(new in version 0.3.6)_
| 36 | weechat.color.chat_inactive_buffer _(new in version 0.3.6)_
| 37 | weechat.color.chat_prefix_buffer_inactive_buffer _(new in version 0.3.6)_
| 38 | weechat.color.chat_nick_offline _(new in version 0.3.9)_
|========================================
WeeChat colors are:
[width="40%",cols="^1m,5",options="header"]
[width="40%",cols="^1m,6",options="header"]
|========================================
| Code | Color
| 00 | default (terminal foreground/background)

View File

@ -63,6 +63,11 @@
** type: chaîne
** valeurs: toute chaîne (valeur par défaut: `"cyan,magenta,green,brown,lightblue,default,lightcyan,lightmagenta,lightgreen,blue"`)
* [[option_weechat.color.chat_nick_offline]] *weechat.color.chat_nick_offline*
** description: `couleur du texte pour les pseudos déconnectés (qui ne sont plus dans la liste de pseudos)`
** type: couleur
** valeurs: un nom de couleur WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numéro de couleur du terminal ou un alias; des attributs sont autorisés avant la couleur (seulement pour la couleur du texte, pas le fond) : "*" pour du gras, "!" pour la vidéo inverse, "_" pour du souligné (valeur par défaut: `darkgray`)
* [[option_weechat.color.chat_nick_other]] *weechat.color.chat_nick_other*
** description: `couleur du texte pour l'autre pseudo dans le tampon privée`
** type: couleur
@ -413,6 +418,11 @@
** type: booléen
** valeurs: on, off (valeur par défaut: `off`)
* [[option_weechat.look.color_nick_offline]] *weechat.look.color_nick_offline*
** description: `utiliser une couleur différente pour les pseudos déconnectés (qui ne sont plus dans la liste de pseudos)`
** type: booléen
** valeurs: on, off (valeur par défaut: `off`)
* [[option_weechat.look.color_pairs_auto_reset]] *weechat.look.color_pairs_auto_reset*
** description: `réinitialisation automatique de la table des paires de couleurs quand le nombre de paires disponibles est inférieur ou égal à ce nombre (-1 = désactiver la réinitialisation automatique, et donc un "/color reset" manuel est nécessaire quand la table est pleine)`
** type: entier

View File

@ -63,6 +63,11 @@
** tipo: stringa
** valori: qualsiasi stringa (valore predefinito: `"cyan,magenta,green,brown,lightblue,default,lightcyan,lightmagenta,lightgreen,blue"`)
* [[option_weechat.color.chat_nick_offline]] *weechat.color.chat_nick_offline*
** descrizione: `text color for offline nick (not in nicklist any more)`
** tipo: colore
** valori: un nome colore di WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numero colore del terminale o un alias; attributi consentiti prima del colore (solo per il colore del testo, non lo sfondo): "*" per il grassetto, "!" per l'inverso, "_" per la sottolineatura (valore predefinito: `darkgray`)
* [[option_weechat.color.chat_nick_other]] *weechat.color.chat_nick_other*
** descrizione: `colore del testo per gli altri nick nel buffer privato`
** tipo: colore
@ -413,6 +418,11 @@
** tipo: bool
** valori: on, off (valore predefinito: `off`)
* [[option_weechat.look.color_nick_offline]] *weechat.look.color_nick_offline*
** descrizione: `use a different color for offline nick (not in nicklist any more)`
** tipo: bool
** valori: on, off (valore predefinito: `off`)
* [[option_weechat.look.color_pairs_auto_reset]] *weechat.look.color_pairs_auto_reset*
** descrizione: `ripristina automaticamente la tabella delle coppie colore quando il numero di coppie disponibili è minore o uguale a questo numero (-1 = disabilita il ripristino automatico, dunque è necessario "/color reset" quando la tabella è al completo)`
** tipo: intero

View File

@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.3.9-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2012-06-04 18:20+0200\n"
"POT-Creation-Date: 2012-06-08 22:05+0200\n"
"PO-Revision-Date: 2012-06-03 09:49+0200\n"
"Last-Translator: Jiri Golembiovsky <golemj@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -2301,6 +2301,12 @@ msgid ""
"window, or if line is from a merged buffer not selected)"
msgstr ""
#, fuzzy
msgid "use a different color for offline nick (not in nicklist any more)"
msgstr ""
"barva textu pro jméno bufferu (před prefixem, při spojení vice bufferů se "
"stejným číslem)"
msgid ""
"automatically reset table of color pairs when number of available pairs is "
"lower or equal to this number (-1 = disable automatic reset, and then a "
@ -2740,6 +2746,10 @@ msgstr ""
msgid "text color for local nick in chat window"
msgstr "barva textu pro lokální přezdívku v okně rozhovoru"
#, fuzzy
msgid "text color for offline nick (not in nicklist any more)"
msgstr "barva textu pro nepřipojené přezdíveky"
msgid "text color for other nick in private buffer"
msgstr "barva textu pro jiné přezdívky v soukromém bufferu"

View File

@ -23,7 +23,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.3.9-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2012-06-04 18:20+0200\n"
"POT-Creation-Date: 2012-06-08 22:05+0200\n"
"PO-Revision-Date: 2012-06-03 09:49+0200\n"
"Last-Translator: Nils Görs <weechatter@arcor.de>\n"
"Language-Team: German <weechatter@arcor.de>\n"
@ -2521,6 +2521,12 @@ msgstr ""
"ist nicht das aktuelle Fenster oder wenn die Zeile des zusammengefügten "
"Buffers nicht die aktiv Zeile ist)"
#, fuzzy
msgid "use a different color for offline nick (not in nicklist any more)"
msgstr ""
"Textfarbe für Zeilen in einem inaktiven Fenster (betrifft das Fenster, "
"welches nicht aktiv ist)"
msgid ""
"automatically reset table of color pairs when number of available pairs is "
"lower or equal to this number (-1 = disable automatic reset, and then a "
@ -3030,6 +3036,10 @@ msgstr ""
msgid "text color for local nick in chat window"
msgstr "Textfarbe für den eigenen Nicknamen, im lokalen Chat-Fenster."
#, fuzzy
msgid "text color for offline nick (not in nicklist any more)"
msgstr "Textfarbe von Nicknamen die Offline sind"
msgid "text color for other nick in private buffer"
msgstr "Farbe des anderen Nicknamens in einem privaten Buffer"

View File

@ -22,7 +22,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.3.9-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2012-06-04 18:20+0200\n"
"POT-Creation-Date: 2012-06-08 22:05+0200\n"
"PO-Revision-Date: 2012-06-03 09:49+0200\n"
"Last-Translator: Elián Hanisch <lambdae2@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -2430,6 +2430,12 @@ msgstr ""
"usar un diferente color para mensajes inactivos (cuando la ventana no es la "
"ventana actual, o si la línea de un buffer fusionado no está seleccionado)"
#, fuzzy
msgid "use a different color for offline nick (not in nicklist any more)"
msgstr ""
"usar un diferente color para líneas en ventanas inactivas (cuando la ventana "
"no es la ventana actual)"
msgid ""
"automatically reset table of color pairs when number of available pairs is "
"lower or equal to this number (-1 = disable automatic reset, and then a "
@ -2908,6 +2914,10 @@ msgstr ""
msgid "text color for local nick in chat window"
msgstr "color para el apodo propio en la ventana de conversación"
#, fuzzy
msgid "text color for offline nick (not in nicklist any more)"
msgstr "color para apodos desconectados"
msgid "text color for other nick in private buffer"
msgstr "color para el otro apodo en una conversación privada"

View File

@ -21,8 +21,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.3.9-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2012-06-04 18:20+0200\n"
"PO-Revision-Date: 2012-06-03 09:49+0200\n"
"POT-Creation-Date: 2012-06-08 22:05+0200\n"
"PO-Revision-Date: 2012-06-08 14:46+0200\n"
"Last-Translator: Sebastien Helleu <flashcode@flashtux.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"Language: French\n"
@ -2438,6 +2438,11 @@ msgstr ""
"n'est pas la fenêtre courante, ou si la ligne est d'un tampon mélangé et le "
"tampon n'est pas sélectionné)"
msgid "use a different color for offline nick (not in nicklist any more)"
msgstr ""
"utiliser une couleur différente pour les pseudos déconnectés (qui ne sont "
"plus dans la liste de pseudos)"
msgid ""
"automatically reset table of color pairs when number of available pairs is "
"lower or equal to this number (-1 = disable automatic reset, and then a "
@ -2922,6 +2927,11 @@ msgstr ""
msgid "text color for local nick in chat window"
msgstr "couleur du texte pour le pseudo local dans la fenêtre de discussion"
msgid "text color for offline nick (not in nicklist any more)"
msgstr ""
"couleur du texte pour les pseudos déconnectés (qui ne sont plus dans la "
"liste de pseudos)"
msgid "text color for other nick in private buffer"
msgstr "couleur du texte pour l'autre pseudo dans le tampon privée"

View File

@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.3.9-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2012-06-04 18:20+0200\n"
"POT-Creation-Date: 2012-06-08 22:05+0200\n"
"PO-Revision-Date: 2012-06-03 09:49+0200\n"
"Last-Translator: Andras Voroskoi <voroskoi@frugalware.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -1982,6 +1982,9 @@ msgid ""
"window, or if line is from a merged buffer not selected)"
msgstr ""
msgid "use a different color for offline nick (not in nicklist any more)"
msgstr ""
msgid ""
"automatically reset table of color pairs when number of available pairs is "
"lower or equal to this number (-1 = disable automatic reset, and then a "
@ -2382,6 +2385,10 @@ msgstr "idő színe a beszédablakban"
msgid "text color for local nick in chat window"
msgstr "a név előtt megjelenítendő szöveg a beszédablakban"
#, fuzzy
msgid "text color for offline nick (not in nicklist any more)"
msgstr "távollevő felhasználók nevének színe"
#, fuzzy
msgid "text color for other nick in private buffer"
msgstr "másik fél nevének színe privát beszélgetésben"

View File

@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.3.9-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2012-06-04 18:20+0200\n"
"POT-Creation-Date: 2012-06-08 22:05+0200\n"
"PO-Revision-Date: 2012-06-03 09:49+0200\n"
"Last-Translator: Marco Paolone <marcopaolone@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -2421,6 +2421,12 @@ msgstr ""
"usa un colore diverso per un messaggio inattivo (quando la finestra non è "
"quella corrente, o se la riga viene da un buffer unito non selezionato)"
#, fuzzy
msgid "use a different color for offline nick (not in nicklist any more)"
msgstr ""
"usa un colore diverso per le righe nella finestra inattiva (quando la "
"finestra non è quella corrente)"
msgid ""
"automatically reset table of color pairs when number of available pairs is "
"lower or equal to this number (-1 = disable automatic reset, and then a "
@ -2898,6 +2904,10 @@ msgstr ""
msgid "text color for local nick in chat window"
msgstr "colore del testo per il nick locale nella finestra di chat"
#, fuzzy
msgid "text color for offline nick (not in nicklist any more)"
msgstr "colore del testo per i nick non in linea"
msgid "text color for other nick in private buffer"
msgstr "colore del testo per gli altri nick nel buffer privato"

View File

@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.3.9-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2012-06-04 18:20+0200\n"
"POT-Creation-Date: 2012-06-08 22:05+0200\n"
"PO-Revision-Date: 2012-06-03 09:49+0200\n"
"Last-Translator: AYANOKOUZI, Ryuunosuke <i38w7i3@yahoo.co.jp>\n"
"Language-Team: Japanese <https://github.com/l/WeeChat>\n"
@ -2384,6 +2384,12 @@ msgstr ""
"アクティブでないメッセージに異なる色を使用 (ウィンドウにフォーカスが無いか、"
"行が未選択のマージバッファからの場合)"
#, fuzzy
msgid "use a different color for offline nick (not in nicklist any more)"
msgstr ""
"アクティブでないウィンドウでは行に異なる色を使用 (ウィンドウにフォーカスが無"
"い場合)"
msgid ""
"automatically reset table of color pairs when number of available pairs is "
"lower or equal to this number (-1 = disable automatic reset, and then a "
@ -2831,6 +2837,10 @@ msgstr ""
msgid "text color for local nick in chat window"
msgstr "チャットウィンドウ内のローカルニックネームのテキスト色"
#, fuzzy
msgid "text color for offline nick (not in nicklist any more)"
msgstr "オフラインのニックネームのテキスト色"
msgid "text color for other nick in private buffer"
msgstr "プライベートバッファ内の他のニックネームのテキスト色"

View File

@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.3.9-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2012-06-04 18:20+0200\n"
"POT-Creation-Date: 2012-06-08 22:05+0200\n"
"PO-Revision-Date: 2012-06-03 09:49+0200\n"
"Last-Translator: Krzysztof Korościk <soltys@szluug.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -2432,6 +2432,12 @@ msgstr ""
"obecnie wybranych lub jeśli linia pochodzi z niewybranego z połączonych "
"buforów)"
#, fuzzy
msgid "use a different color for offline nick (not in nicklist any more)"
msgstr ""
"użycie rożnych kolorów dla linii w nieaktywnym oknie (kiedy okno nie jest "
"obecnym oknem)"
msgid ""
"automatically reset table of color pairs when number of available pairs is "
"lower or equal to this number (-1 = disable automatic reset, and then a "
@ -2902,6 +2908,10 @@ msgstr ""
msgid "text color for local nick in chat window"
msgstr "kolor lokalnego nicka w oknie rozmowy"
#, fuzzy
msgid "text color for offline nick (not in nicklist any more)"
msgstr "kolor dla nieobecnych nicków"
msgid "text color for other nick in private buffer"
msgstr "kolor innego nicka w prywatnym buforze"

View File

@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.3.9-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2012-06-04 18:20+0200\n"
"POT-Creation-Date: 2012-06-08 22:05+0200\n"
"PO-Revision-Date: 2012-06-03 09:49+0200\n"
"Last-Translator: Sergio Durigan Junior <sergiosdj@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -2370,6 +2370,9 @@ msgid ""
"window, or if line is from a merged buffer not selected)"
msgstr ""
msgid "use a different color for offline nick (not in nicklist any more)"
msgstr ""
msgid ""
"automatically reset table of color pairs when number of available pairs is "
"lower or equal to this number (-1 = disable automatic reset, and then a "
@ -2824,6 +2827,10 @@ msgstr ""
msgid "text color for local nick in chat window"
msgstr "cor de texto para apelido local na janela de conversa"
#, fuzzy
msgid "text color for offline nick (not in nicklist any more)"
msgstr "cor de texto para apelidos desconectados"
msgid "text color for other nick in private buffer"
msgstr "cor de texto para outros apelidos em buffers privados"

View File

@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.3.9-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2012-06-04 18:20+0200\n"
"POT-Creation-Date: 2012-06-08 22:05+0200\n"
"PO-Revision-Date: 2012-06-03 09:49+0200\n"
"Last-Translator: Aleksey V Zapparov AKA ixti <ixti@member.fsf.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -2001,6 +2001,9 @@ msgid ""
"window, or if line is from a merged buffer not selected)"
msgstr ""
msgid "use a different color for offline nick (not in nicklist any more)"
msgstr ""
msgid ""
"automatically reset table of color pairs when number of available pairs is "
"lower or equal to this number (-1 = disable automatic reset, and then a "
@ -2410,6 +2413,10 @@ msgstr "цвет времени в окне чата"
msgid "text color for local nick in chat window"
msgstr "текст, который отображать до ника в окне чата"
#, fuzzy
msgid "text color for offline nick (not in nicklist any more)"
msgstr "цвет отошедших ников"
#, fuzzy
msgid "text color for other nick in private buffer"
msgstr "цвет ника собеседника в окне привата"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2012-06-04 18:20+0200\n"
"POT-Creation-Date: 2012-06-08 22:05+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -1744,6 +1744,9 @@ msgid ""
"window, or if line is from a merged buffer not selected)"
msgstr ""
msgid "use a different color for offline nick (not in nicklist any more)"
msgstr ""
msgid ""
"automatically reset table of color pairs when number of available pairs is "
"lower or equal to this number (-1 = disable automatic reset, and then a "
@ -2096,6 +2099,9 @@ msgstr ""
msgid "text color for local nick in chat window"
msgstr ""
msgid "text color for offline nick (not in nicklist any more)"
msgstr ""
msgid "text color for other nick in private buffer"
msgstr ""

View File

@ -93,6 +93,7 @@ struct t_config_option *config_look_color_inactive_time;
struct t_config_option *config_look_color_inactive_prefix_buffer;
struct t_config_option *config_look_color_inactive_prefix;
struct t_config_option *config_look_color_inactive_message;
struct t_config_option *config_look_color_nick_offline;
struct t_config_option *config_look_color_pairs_auto_reset;
struct t_config_option *config_look_color_real_white;
struct t_config_option *config_look_command_chars;
@ -174,6 +175,7 @@ struct t_config_option *config_color_chat_channel;
struct t_config_option *config_color_chat_nick;
struct t_config_option *config_color_chat_nick_colors;
struct t_config_option *config_color_chat_nick_self;
struct t_config_option *config_color_chat_nick_offline;
struct t_config_option *config_color_chat_nick_other;
struct t_config_option *config_color_chat_host;
struct t_config_option *config_color_chat_delimiters;
@ -1827,6 +1829,11 @@ config_weechat_init_options ()
N_("use a different color for inactive message (when window is not "
"current window, or if line is from a merged buffer not selected)"),
NULL, 0, 0, "on", NULL, 0, NULL, NULL, &config_change_buffers, NULL, NULL, NULL);
config_look_color_nick_offline = config_file_new_option (
weechat_config_file, ptr_section,
"color_nick_offline", "boolean",
N_("use a different color for offline nick (not in nicklist any more)"),
NULL, 0, 0, "off", NULL, 0, NULL, NULL, &config_change_buffers, NULL, NULL, NULL);
config_look_color_pairs_auto_reset = config_file_new_option (
weechat_config_file, ptr_section,
"color_pairs_auto_reset", "integer",
@ -2394,6 +2401,12 @@ config_weechat_init_options ()
N_("text color for local nick in chat window"),
NULL, GUI_COLOR_CHAT_NICK_SELF, 0, "white", NULL, 0,
NULL, NULL, &config_change_color, NULL, NULL, NULL);
config_color_chat_nick_offline = config_file_new_option (
weechat_config_file, ptr_section,
"chat_nick_offline", "color",
N_("text color for offline nick (not in nicklist any more)"),
NULL, GUI_COLOR_CHAT_NICK_OFFLINE, 0, "darkgray", NULL, 0,
NULL, NULL, &config_change_color, NULL, NULL, NULL);
config_color_chat_nick_other = config_file_new_option (
weechat_config_file, ptr_section,
"chat_nick_other", "color",

View File

@ -119,6 +119,7 @@ extern struct t_config_option *config_look_color_inactive_time;
extern struct t_config_option *config_look_color_inactive_prefix_buffer;
extern struct t_config_option *config_look_color_inactive_prefix;
extern struct t_config_option *config_look_color_inactive_message;
extern struct t_config_option *config_look_color_nick_offline;
extern struct t_config_option *config_look_color_pairs_auto_reset;
extern struct t_config_option *config_look_color_real_white;
extern struct t_config_option *config_look_day_change;
@ -195,6 +196,7 @@ extern struct t_config_option *config_color_chat_channel;
extern struct t_config_option *config_color_chat_nick;
extern struct t_config_option *config_color_chat_nick_colors;
extern struct t_config_option *config_color_chat_nick_self;
extern struct t_config_option *config_color_chat_nick_offline;
extern struct t_config_option *config_color_chat_nick_other;
extern struct t_config_option *config_color_chat_host;
extern struct t_config_option *config_color_chat_delimiters;

View File

@ -107,23 +107,27 @@ gui_chat_marker_for_line (struct t_gui_buffer *buffer, struct t_gui_line *line)
void
gui_chat_reset_style (struct t_gui_window *window, struct t_gui_line *line,
int reset_attributes,
int nick_offline, int reset_attributes,
int color_inactive_window, int color_inactive_buffer,
int color_default)
{
int color;
color = color_default;
if ((window != gui_current_window) &&
CONFIG_BOOLEAN(config_look_color_inactive_window))
if ((window != gui_current_window)
&& CONFIG_BOOLEAN(config_look_color_inactive_window))
{
color = color_inactive_window;
}
else if (line && !(line->data->buffer->active)
else if (line && !line->data->buffer->active
&& CONFIG_BOOLEAN(config_look_color_inactive_buffer))
{
color = color_inactive_buffer;
}
else if (nick_offline)
{
color = GUI_COLOR_CHAT_NICK_OFFLINE;
}
if (reset_attributes)
gui_window_reset_style (GUI_WINDOW_OBJECTS(window)->win_chat, color);
@ -203,7 +207,8 @@ gui_chat_display_horizontal_line (struct t_gui_window *window, int simulate)
char *
gui_chat_string_next_char (struct t_gui_window *window, struct t_gui_line *line,
const unsigned char *string, int apply_style,
int apply_style_inactive)
int apply_style_inactive,
int nick_offline)
{
if (apply_style && apply_style_inactive)
{
@ -212,12 +217,16 @@ gui_chat_string_next_char (struct t_gui_window *window, struct t_gui_line *line,
{
apply_style = 0;
}
else if (line && !(line->data->buffer->active))
else if (line && !line->data->buffer->active)
{
if (CONFIG_BOOLEAN(config_look_color_inactive_buffer))
apply_style = 0;
}
}
if (apply_style && nick_offline)
{
apply_style = 0;
}
while (string[0])
{
@ -269,7 +278,7 @@ gui_chat_string_next_char (struct t_gui_window *window, struct t_gui_line *line,
{
if (apply_style_inactive)
{
gui_chat_reset_style (window, line, 0,
gui_chat_reset_style (window, line, 0, 0,
GUI_COLOR_CHAT_INACTIVE_WINDOW,
GUI_COLOR_CHAT_INACTIVE_BUFFER,
GUI_COLOR_CHAT);
@ -303,7 +312,7 @@ gui_chat_string_next_char (struct t_gui_window *window, struct t_gui_line *line,
{
if (apply_style_inactive)
{
gui_chat_reset_style (window, line, 1,
gui_chat_reset_style (window, line, 0, 1,
GUI_COLOR_CHAT_INACTIVE_WINDOW,
GUI_COLOR_CHAT_INACTIVE_BUFFER,
GUI_COLOR_CHAT);
@ -335,7 +344,8 @@ int
gui_chat_display_word_raw (struct t_gui_window *window, struct t_gui_line *line,
const char *string,
int max_chars_on_screen, int display,
int apply_style_inactive)
int apply_style_inactive,
int nick_offline)
{
char *next_char, *output, utf_char[16];
int x, chars_displayed, display_char, size_on_screen;
@ -354,7 +364,8 @@ gui_chat_display_word_raw (struct t_gui_window *window, struct t_gui_line *line,
{
string = gui_chat_string_next_char (window, line,
(unsigned char *)string, 1,
apply_style_inactive);
apply_style_inactive,
nick_offline);
if (!string)
return chars_displayed;
@ -404,7 +415,8 @@ gui_chat_display_word (struct t_gui_window *window,
const char *word, const char *word_end,
int prefix, int num_lines, int count,
int *lines_displayed, int simulate,
int apply_style_inactive)
int apply_style_inactive,
int nick_offline)
{
char *data, *ptr_data, *end_line, saved_char, str_space[] = " ";
int chars_displayed, pos_saved_char, chars_to_display, num_displayed;
@ -470,7 +482,8 @@ gui_chat_display_word (struct t_gui_window *window,
chars_displayed += gui_chat_display_word_raw (window, line,
CONFIG_STRING(config_look_prefix_suffix),
0, 1,
apply_style_inactive);
apply_style_inactive,
nick_offline);
}
window->win_chat_cursor_x += gui_chat_strlen_screen (CONFIG_STRING(config_look_prefix_suffix));
if (!simulate)
@ -478,7 +491,8 @@ gui_chat_display_word (struct t_gui_window *window,
chars_displayed += gui_chat_display_word_raw (window, line,
str_space,
0, 1,
apply_style_inactive);
apply_style_inactive,
nick_offline);
}
window->win_chat_cursor_x += gui_chat_strlen_screen (str_space);
if (!simulate)
@ -507,14 +521,16 @@ gui_chat_display_word (struct t_gui_window *window,
chars_displayed += gui_chat_display_word_raw (window, line,
ptr_data,
0, 1,
apply_style_inactive);
apply_style_inactive,
nick_offline);
}
else
{
chars_displayed += gui_chat_display_word_raw (window, line,
ptr_data,
0, 0,
apply_style_inactive);
apply_style_inactive,
nick_offline);
}
ptr_data[pos_saved_char] = saved_char;
}
@ -530,14 +546,16 @@ gui_chat_display_word (struct t_gui_window *window,
chars_displayed += gui_chat_display_word_raw (window, line,
ptr_data,
0, 1,
apply_style_inactive);
apply_style_inactive,
nick_offline);
}
else
{
chars_displayed += gui_chat_display_word_raw (window, line,
ptr_data,
0, 0,
apply_style_inactive);
apply_style_inactive,
nick_offline);
}
}
ptr_data += strlen (ptr_data);
@ -580,14 +598,14 @@ gui_chat_display_time_to_prefix (struct t_gui_window *window,
char *ptr_prefix_color;
const char *short_name, *str_color;
int i, length, length_allowed, num_spaces, prefix_length, extra_spaces;
int chars_displayed;
int chars_displayed, nick_offline;
struct t_gui_lines *mixed_lines;
if (!simulate)
{
if (window->win_chat_cursor_y < window->coords_size)
window->coords[window->win_chat_cursor_y].line = line;
gui_chat_reset_style (window, line, 1,
gui_chat_reset_style (window, line, 0, 1,
GUI_COLOR_CHAT_INACTIVE_WINDOW,
GUI_COLOR_CHAT_INACTIVE_BUFFER,
GUI_COLOR_CHAT);
@ -602,13 +620,14 @@ gui_chat_display_time_to_prefix (struct t_gui_window *window,
gui_chat_display_word (window, line, line->data->str_time,
NULL, 1, num_lines, count, lines_displayed,
simulate,
CONFIG_BOOLEAN(config_look_color_inactive_time));
CONFIG_BOOLEAN(config_look_color_inactive_time),
0);
if (window->win_chat_cursor_y < window->coords_size)
window->coords[window->win_chat_cursor_y].time_x2 = window->win_chat_cursor_x - 1;
if (!simulate)
{
gui_chat_reset_style (window, line, 1,
gui_chat_reset_style (window, line, 0, 1,
GUI_COLOR_CHAT_INACTIVE_WINDOW,
GUI_COLOR_CHAT_INACTIVE_BUFFER,
GUI_COLOR_CHAT);
@ -616,7 +635,8 @@ gui_chat_display_time_to_prefix (struct t_gui_window *window,
gui_chat_display_word (window, line, str_space,
NULL, 1, num_lines, count, lines_displayed,
simulate,
CONFIG_BOOLEAN(config_look_color_inactive_time));
CONFIG_BOOLEAN(config_look_color_inactive_time),
0);
}
/* display buffer name (if many buffers are merged) */
@ -641,7 +661,7 @@ gui_chat_display_time_to_prefix (struct t_gui_window *window,
{
if (!simulate)
{
gui_chat_reset_style (window, line, 1,
gui_chat_reset_style (window, line, 0, 1,
GUI_COLOR_CHAT_INACTIVE_WINDOW,
GUI_COLOR_CHAT_INACTIVE_BUFFER,
GUI_COLOR_CHAT);
@ -651,17 +671,18 @@ gui_chat_display_time_to_prefix (struct t_gui_window *window,
gui_chat_display_word (window, line, str_space,
NULL, 1, num_lines, count,
lines_displayed, simulate,
CONFIG_BOOLEAN(config_look_color_inactive_prefix_buffer));
CONFIG_BOOLEAN(config_look_color_inactive_prefix_buffer),
0);
}
}
if (!simulate)
{
gui_chat_reset_style (window, line, 1,
gui_chat_reset_style (window, line, 0, 1,
GUI_COLOR_CHAT_INACTIVE_WINDOW,
(CONFIG_BOOLEAN(config_look_color_inactive_buffer)
&& CONFIG_BOOLEAN(config_look_color_inactive_prefix_buffer)
&& (!line->data->buffer->active)) ?
&& !line->data->buffer->active) ?
GUI_COLOR_CHAT_PREFIX_BUFFER_INACTIVE_BUFFER :
GUI_COLOR_CHAT_PREFIX_BUFFER,
GUI_COLOR_CHAT_PREFIX_BUFFER);
@ -681,14 +702,16 @@ gui_chat_display_time_to_prefix (struct t_gui_window *window,
length_allowed),
1, num_lines, count, lines_displayed,
simulate,
CONFIG_BOOLEAN(config_look_color_inactive_prefix_buffer));
CONFIG_BOOLEAN(config_look_color_inactive_prefix_buffer),
0);
}
else
{
gui_chat_display_word (window, line,
short_name, NULL, 1, num_lines, count,
lines_displayed, simulate,
CONFIG_BOOLEAN(config_look_color_inactive_prefix_buffer));
CONFIG_BOOLEAN(config_look_color_inactive_prefix_buffer),
0);
}
if (window->win_chat_cursor_y < window->coords_size)
@ -706,13 +729,14 @@ gui_chat_display_time_to_prefix (struct t_gui_window *window,
CONFIG_STRING(config_look_prefix_buffer_align_more),
NULL, 1, num_lines, count, lines_displayed,
simulate,
CONFIG_BOOLEAN(config_look_color_inactive_prefix_buffer));
CONFIG_BOOLEAN(config_look_color_inactive_prefix_buffer),
0);
}
else
{
if (!simulate)
{
gui_chat_reset_style (window, line, 1,
gui_chat_reset_style (window, line, 0, 1,
GUI_COLOR_CHAT_INACTIVE_WINDOW,
GUI_COLOR_CHAT_INACTIVE_BUFFER,
GUI_COLOR_CHAT);
@ -726,7 +750,8 @@ gui_chat_display_time_to_prefix (struct t_gui_window *window,
gui_chat_display_word (window, line, str_space,
NULL, 1, num_lines, count, lines_displayed,
simulate,
CONFIG_BOOLEAN(config_look_color_inactive_prefix_buffer));
CONFIG_BOOLEAN(config_look_color_inactive_prefix_buffer),
0);
}
}
if (mixed_lines->buffer_max_length > 0)
@ -734,7 +759,8 @@ gui_chat_display_time_to_prefix (struct t_gui_window *window,
gui_chat_display_word (window, line, str_space,
NULL, 1, num_lines, count, lines_displayed,
simulate,
CONFIG_BOOLEAN(config_look_color_inactive_prefix_buffer));
CONFIG_BOOLEAN(config_look_color_inactive_prefix_buffer),
0);
}
}
}
@ -778,7 +804,7 @@ gui_chat_display_time_to_prefix (struct t_gui_window *window,
{
if (!simulate)
{
gui_chat_reset_style (window, line, 1,
gui_chat_reset_style (window, line, 0, 1,
GUI_COLOR_CHAT_INACTIVE_WINDOW,
GUI_COLOR_CHAT_INACTIVE_BUFFER,
GUI_COLOR_CHAT);
@ -802,10 +828,14 @@ gui_chat_display_time_to_prefix (struct t_gui_window *window,
gui_chat_display_word (window, line, str_space,
NULL, 1, num_lines, count,
lines_displayed, simulate,
CONFIG_BOOLEAN(config_look_color_inactive_prefix));
CONFIG_BOOLEAN(config_look_color_inactive_prefix),
0);
}
}
nick_offline = CONFIG_BOOLEAN(config_look_color_nick_offline)
&& gui_line_has_offline_nick (line);
prefix_highlighted = NULL;
if (line->data->highlight)
{
@ -824,11 +854,11 @@ gui_chat_display_time_to_prefix (struct t_gui_window *window,
}
if (!simulate)
{
gui_chat_reset_style (window, line, 1,
gui_chat_reset_style (window, line, nick_offline, 1,
GUI_COLOR_CHAT_INACTIVE_WINDOW,
(CONFIG_BOOLEAN(config_look_color_inactive_buffer)
&& CONFIG_BOOLEAN(config_look_color_inactive_prefix)
&& (!line->data->buffer->active)) ?
&& !line->data->buffer->active) ?
GUI_COLOR_CHAT_INACTIVE_BUFFER :
GUI_COLOR_CHAT_HIGHLIGHT,
GUI_COLOR_CHAT_HIGHLIGHT);
@ -838,11 +868,11 @@ gui_chat_display_time_to_prefix (struct t_gui_window *window,
{
if (!simulate)
{
gui_chat_reset_style (window, line, 1,
gui_chat_reset_style (window, line, nick_offline, 1,
GUI_COLOR_CHAT_INACTIVE_WINDOW,
(CONFIG_BOOLEAN(config_look_color_inactive_buffer)
&& CONFIG_BOOLEAN(config_look_color_inactive_prefix)
&& (!line->data->buffer->active)) ?
&& !line->data->buffer->active) ?
GUI_COLOR_CHAT_INACTIVE_BUFFER :
GUI_COLOR_CHAT,
GUI_COLOR_CHAT);
@ -866,7 +896,8 @@ gui_chat_display_time_to_prefix (struct t_gui_window *window,
length_allowed),
1, num_lines, count, lines_displayed,
simulate,
CONFIG_BOOLEAN(config_look_color_inactive_prefix));
CONFIG_BOOLEAN(config_look_color_inactive_prefix),
nick_offline);
if (!simulate && (chars_displayed < length_allowed))
extra_spaces = length_allowed - chars_displayed;
}
@ -876,7 +907,8 @@ gui_chat_display_time_to_prefix (struct t_gui_window *window,
(prefix_highlighted) ? prefix_highlighted : ptr_prefix,
NULL, 1, num_lines, count, lines_displayed,
simulate,
CONFIG_BOOLEAN(config_look_color_inactive_prefix));
CONFIG_BOOLEAN(config_look_color_inactive_prefix),
nick_offline);
}
if (window->win_chat_cursor_y < window->coords_size)
@ -887,7 +919,7 @@ gui_chat_display_time_to_prefix (struct t_gui_window *window,
if (!simulate)
{
gui_chat_reset_style (window, line, 1,
gui_chat_reset_style (window, line, 0, 1,
GUI_COLOR_CHAT_INACTIVE_WINDOW,
GUI_COLOR_CHAT_INACTIVE_BUFFER,
GUI_COLOR_CHAT);
@ -900,7 +932,8 @@ gui_chat_display_time_to_prefix (struct t_gui_window *window,
gui_chat_display_word (window, line, str_space,
NULL, 1, num_lines, count, lines_displayed,
simulate,
CONFIG_BOOLEAN(config_look_color_inactive_prefix));
CONFIG_BOOLEAN(config_look_color_inactive_prefix),
0);
}
}
if ((CONFIG_INTEGER(config_look_prefix_align) != CONFIG_LOOK_PREFIX_ALIGN_NONE)
@ -915,7 +948,8 @@ gui_chat_display_time_to_prefix (struct t_gui_window *window,
CONFIG_STRING(config_look_prefix_align_more),
NULL, 1, num_lines, count, lines_displayed,
simulate,
CONFIG_BOOLEAN(config_look_color_inactive_prefix));
CONFIG_BOOLEAN(config_look_color_inactive_prefix),
0);
}
else
{
@ -924,7 +958,8 @@ gui_chat_display_time_to_prefix (struct t_gui_window *window,
gui_chat_display_word (window, line, str_space,
NULL, 1, num_lines, count, lines_displayed,
simulate,
CONFIG_BOOLEAN(config_look_color_inactive_prefix));
CONFIG_BOOLEAN(config_look_color_inactive_prefix),
0);
}
}
for (i = 0; i < extra_spaces; i++)
@ -932,7 +967,8 @@ gui_chat_display_time_to_prefix (struct t_gui_window *window,
gui_chat_display_word (window, line, str_space,
NULL, 1, num_lines, count, lines_displayed,
simulate,
CONFIG_BOOLEAN(config_look_color_inactive_prefix));
CONFIG_BOOLEAN(config_look_color_inactive_prefix),
0);
}
if ((CONFIG_INTEGER(config_look_prefix_align) != CONFIG_LOOK_PREFIX_ALIGN_NONE)
&& (CONFIG_STRING(config_look_prefix_suffix)
@ -946,10 +982,10 @@ gui_chat_display_time_to_prefix (struct t_gui_window *window,
gui_chat_display_word (window, line,
CONFIG_STRING(config_look_prefix_suffix),
NULL, 1, num_lines, count,
lines_displayed, simulate, 0);
lines_displayed, simulate, 0, 0);
gui_chat_display_word (window, line, str_space,
NULL, 1, num_lines, count,
lines_displayed, simulate, 0);
lines_displayed, simulate, 0, 0);
}
}
if (ptr_prefix)
@ -1037,14 +1073,14 @@ gui_chat_display_line (struct t_gui_window *window, struct t_gui_line *line,
{
if (CONFIG_BOOLEAN(config_look_color_inactive_message))
{
gui_chat_reset_style (window, line, 1,
gui_chat_reset_style (window, line, 0, 1,
GUI_COLOR_CHAT_INACTIVE_WINDOW,
GUI_COLOR_CHAT_INACTIVE_BUFFER,
GUI_COLOR_CHAT);
}
else
{
gui_chat_reset_style (window, line, 1,
gui_chat_reset_style (window, line, 0, 1,
GUI_COLOR_CHAT,
GUI_COLOR_CHAT,
GUI_COLOR_CHAT);
@ -1093,7 +1129,8 @@ gui_chat_display_line (struct t_gui_window *window, struct t_gui_line *line,
ptr_style = gui_chat_string_next_char (window, line,
(unsigned char *)ptr_style,
1,
CONFIG_BOOLEAN(config_look_color_inactive_message));
CONFIG_BOOLEAN(config_look_color_inactive_message),
0);
if (!ptr_style)
break;
ptr_style = utf8_next_char (ptr_style);
@ -1108,7 +1145,8 @@ gui_chat_display_line (struct t_gui_window *window, struct t_gui_line *line,
ptr_end_offset + 1,
0, num_lines, count, &lines_displayed,
simulate,
CONFIG_BOOLEAN(config_look_color_inactive_message));
CONFIG_BOOLEAN(config_look_color_inactive_message),
0);
if ((!simulate) && (window->win_chat_cursor_y >= window->win_chat_height))
ptr_data = NULL;
@ -1129,7 +1167,8 @@ gui_chat_display_line (struct t_gui_window *window, struct t_gui_line *line,
ptr_data = gui_chat_string_next_char (window, line,
(unsigned char *)next_char,
1,
CONFIG_BOOLEAN(config_look_color_inactive_message));
CONFIG_BOOLEAN(config_look_color_inactive_message),
0);
}
}
}
@ -1201,7 +1240,7 @@ gui_chat_display_line_y (struct t_gui_window *window, struct t_gui_line *line,
int y)
{
/* reset color & style for a new line */
gui_chat_reset_style (window, line, 1,
gui_chat_reset_style (window, line, 0, 1,
GUI_COLOR_CHAT_INACTIVE_WINDOW,
GUI_COLOR_CHAT_INACTIVE_BUFFER,
GUI_COLOR_CHAT);
@ -1216,7 +1255,8 @@ gui_chat_display_line_y (struct t_gui_window *window, struct t_gui_line *line,
if (gui_chat_display_word_raw (window, line, line->data->message,
window->win_chat_width, 1,
CONFIG_BOOLEAN(config_look_color_inactive_message)) < window->win_chat_width)
CONFIG_BOOLEAN(config_look_color_inactive_message),
0) < window->win_chat_width)
{
gui_window_clrtoeol (GUI_WINDOW_OBJECTS(window)->win_chat);
}
@ -1494,7 +1534,7 @@ gui_chat_draw (struct t_gui_buffer *buffer, int clear_chat)
{
gui_window_coords_alloc (ptr_win);
gui_chat_reset_style (ptr_win, NULL, 1,
gui_chat_reset_style (ptr_win, NULL, 0, 1,
GUI_COLOR_CHAT_INACTIVE_WINDOW,
GUI_COLOR_CHAT_INACTIVE_BUFFER,
GUI_COLOR_CHAT);

View File

@ -1416,6 +1416,7 @@ gui_color_init_weechat ()
gui_color_build (GUI_COLOR_CHAT_INACTIVE_WINDOW, CONFIG_COLOR(config_color_chat_inactive_window), CONFIG_COLOR(config_color_chat_bg));
gui_color_build (GUI_COLOR_CHAT_INACTIVE_BUFFER, CONFIG_COLOR(config_color_chat_inactive_buffer), CONFIG_COLOR(config_color_chat_bg));
gui_color_build (GUI_COLOR_CHAT_PREFIX_BUFFER_INACTIVE_BUFFER, CONFIG_COLOR(config_color_chat_prefix_buffer_inactive_buffer), CONFIG_COLOR(config_color_chat_bg));
gui_color_build (GUI_COLOR_CHAT_NICK_OFFLINE, CONFIG_COLOR(config_color_chat_nick_offline), CONFIG_COLOR(config_color_chat_bg));
/*
* define old nick colors for compatibility on /upgrade with previous

View File

@ -176,13 +176,15 @@ gui_chat_set_weechat_color (struct t_gui_window *window, int weechat_color)
char *
gui_chat_string_next_char (struct t_gui_window *window, struct t_gui_line *line,
const unsigned char *string, int apply_style,
int apply_style_inactive)
int apply_style_inactive,
int nick_offline)
{
/* TODO: write this function for Gtk */
(void) window;
(void) line;
(void) apply_style;
(void) apply_style_inactive;
(void) nick_offline;
return (char *)string;
}

View File

@ -165,7 +165,7 @@ gui_chat_strlen_screen (const char *string)
while (string && string[0])
{
string = gui_chat_string_next_char (NULL, NULL,
(unsigned char *)string, 0, 0);
(unsigned char *)string, 0, 0, 0);
if (string)
{
size_on_screen = (gui_chat_utf_char_valid (string)) ? utf8_char_size_screen (string) : 1;
@ -189,7 +189,7 @@ gui_chat_string_add_offset (const char *string, int offset)
{
string = gui_chat_string_next_char (NULL, NULL,
(unsigned char *)string,
0, 0);
0, 0, 0);
if (string)
{
string = utf8_next_char (string);
@ -214,7 +214,7 @@ gui_chat_string_add_offset_screen (const char *string, int offset_screen)
{
string = gui_chat_string_next_char (NULL, NULL,
(unsigned char *)string,
0, 0);
0, 0, 0);
if (string)
{
size_on_screen = (gui_chat_utf_char_valid (string)) ? utf8_char_size_screen (string) : 1;
@ -246,7 +246,7 @@ gui_chat_string_real_pos (const char *string, int pos)
{
ptr_string = gui_chat_string_next_char (NULL, NULL,
(unsigned char *)ptr_string,
0, 0);
0, 0, 0);
if (ptr_string)
{
size_on_screen = (((unsigned char)ptr_string[0]) < 32) ? 1 : utf8_char_size_screen (ptr_string);
@ -287,7 +287,7 @@ gui_chat_get_word_info (struct t_gui_window *window,
while (data && data[0])
{
next_char = gui_chat_string_next_char (window, NULL,
(unsigned char *)data, 0, 0);
(unsigned char *)data, 0, 0, 0);
if (next_char)
{
next_char2 = utf8_next_char (next_char);

View File

@ -91,7 +91,8 @@ extern char *gui_chat_string_next_char (struct t_gui_window *window,
struct t_gui_line *line,
const unsigned char *string,
int apply_style,
int apply_style_inactive);
int apply_style_inactive,
int nick_offline);
extern void gui_chat_draw (struct t_gui_buffer *buffer, int clear_chat);
extern void gui_chat_draw_line (struct t_gui_buffer *buffer,
struct t_gui_line *line);

View File

@ -21,8 +21,12 @@
#define __WEECHAT_GUI_COLOR_H 1
/*
* Color from options
* (when changing something here, please update the Developer's guide)
* Color from configuration options.
* When changing some colors below:
* - always add to the end
* - never remove a color (mark it as obsolete if needed)
* - do not re-use an obsolete color
* - update the Developer's guide
*/
enum t_gui_color_enum
@ -70,6 +74,7 @@ enum t_gui_color_enum
GUI_COLOR_CHAT_INACTIVE_WINDOW,
GUI_COLOR_CHAT_INACTIVE_BUFFER,
GUI_COLOR_CHAT_PREFIX_BUFFER_INACTIVE_BUFFER,
GUI_COLOR_CHAT_NICK_OFFLINE,
/* number of colors */
GUI_COLOR_NUM_COLORS,

View File

@ -45,6 +45,7 @@
#include "gui-color.h"
#include "gui-filter.h"
#include "gui-hotlist.h"
#include "gui-nicklist.h"
#include "gui-window.h"
@ -635,6 +636,29 @@ gui_line_has_highlight (struct t_gui_line *line)
return rc;
}
/*
* gui_line_has_offline_nick: return 1 if nick of line is offline
* (not in nicklist any more)
*/
int
gui_line_has_offline_nick (struct t_gui_line *line)
{
const char *nick;
if (line && gui_line_search_tag_starting_with (line, "prefix_nick"))
{
nick = gui_line_get_nick_tag (line);
if (nick
&& !gui_nicklist_search_nick (line->data->buffer, NULL, nick))
{
return 1;
}
}
return 0;
}
/*
* gui_line_compute_buffer_max_length: compute "buffer_max_length" for a
* "t_gui_lines" structure

View File

@ -90,6 +90,7 @@ extern const char *gui_line_search_tag_starting_with (struct t_gui_line *line,
const char *tag);
extern const char *gui_line_get_nick_tag (struct t_gui_line *line);
extern int gui_line_has_highlight (struct t_gui_line *line);
extern int gui_line_has_offline_nick (struct t_gui_line *line);
extern void gui_line_compute_buffer_max_length (struct t_gui_buffer *buffer,
struct t_gui_lines *lines);
extern void gui_line_compute_prefix_max_length (struct t_gui_lines *lines);

View File

@ -228,7 +228,7 @@ gui_window_get_context_at_xy (struct t_gui_window *window,
{
word_start = (char *)gui_chat_string_next_char (NULL, NULL,
(unsigned char *)word_start,
0, 0);
0, 0, 0);
if (word_start)
{
if (word_start[0] == ' ')
@ -242,7 +242,7 @@ gui_window_get_context_at_xy (struct t_gui_window *window,
{
word_end = (char *)gui_chat_string_next_char (NULL, NULL,
(unsigned char *)word_end,
0, 0);
0, 0, 0);
if (word_end)
{
if (word_end[0] == ' ')