diff --git a/ChangeLog b/ChangeLog index 27242119b..4fd6ec8a9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,12 +1,15 @@ WeeChat ChangeLog ================= Sébastien Helleu -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) diff --git a/doc/de/autogen/user/weechat_options.txt b/doc/de/autogen/user/weechat_options.txt index c010f3dd8..75ed19303 100644 --- a/doc/de/autogen/user/weechat_options.txt +++ b/doc/de/autogen/user/weechat_options.txt @@ -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 diff --git a/doc/en/autogen/user/weechat_options.txt b/doc/en/autogen/user/weechat_options.txt index b377b4e39..48c880c7c 100644 --- a/doc/en/autogen/user/weechat_options.txt +++ b/doc/en/autogen/user/weechat_options.txt @@ -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 diff --git a/doc/en/weechat_dev.en.txt b/doc/en/weechat_dev.en.txt index 63487e4c6..8f86c879c 100644 --- a/doc/en/weechat_dev.en.txt +++ b/doc/en/weechat_dev.en.txt @@ -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) diff --git a/doc/fr/autogen/user/weechat_options.txt b/doc/fr/autogen/user/weechat_options.txt index 8eeec3321..8bb39ee7d 100644 --- a/doc/fr/autogen/user/weechat_options.txt +++ b/doc/fr/autogen/user/weechat_options.txt @@ -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 diff --git a/doc/it/autogen/user/weechat_options.txt b/doc/it/autogen/user/weechat_options.txt index 30af5881f..edaa16d45 100644 --- a/doc/it/autogen/user/weechat_options.txt +++ b/doc/it/autogen/user/weechat_options.txt @@ -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 diff --git a/po/cs.po b/po/cs.po index 441289dd4..ec87e569b 100644 --- a/po/cs.po +++ b/po/cs.po @@ -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 \n" "Language-Team: weechat-dev \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" diff --git a/po/de.po b/po/de.po index 65e631e4a..b11c7f2ac 100644 --- a/po/de.po +++ b/po/de.po @@ -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 \n" "Language-Team: German \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" diff --git a/po/es.po b/po/es.po index b15b273bf..0b58860eb 100644 --- a/po/es.po +++ b/po/es.po @@ -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 \n" "Language-Team: weechat-dev \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" diff --git a/po/fr.po b/po/fr.po index 465d5d454..b648eb840 100644 --- a/po/fr.po +++ b/po/fr.po @@ -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 \n" "Language-Team: weechat-dev \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" diff --git a/po/hu.po b/po/hu.po index d82759bdc..1268ba8d0 100644 --- a/po/hu.po +++ b/po/hu.po @@ -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 \n" "Language-Team: weechat-dev \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" diff --git a/po/it.po b/po/it.po index e17ca3697..97f68b692 100644 --- a/po/it.po +++ b/po/it.po @@ -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 \n" "Language-Team: weechat-dev \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" diff --git a/po/ja.po b/po/ja.po index 59aac6d58..6ac3181ef 100644 --- a/po/ja.po +++ b/po/ja.po @@ -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 \n" "Language-Team: Japanese \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 "プライベートバッファ内の他のニックネームのテキスト色" diff --git a/po/pl.po b/po/pl.po index 485bfccff..4a9a31eb7 100644 --- a/po/pl.po +++ b/po/pl.po @@ -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 \n" "Language-Team: weechat-dev \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" diff --git a/po/pt_BR.po b/po/pt_BR.po index a3a0776cb..d681ea361 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -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 \n" "Language-Team: weechat-dev \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" diff --git a/po/ru.po b/po/ru.po index d8a4c7751..1c82a380d 100644 --- a/po/ru.po +++ b/po/ru.po @@ -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 \n" "Language-Team: weechat-dev \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 "цвет ника собеседника в окне привата" diff --git a/po/weechat.pot b/po/weechat.pot index 1fca5c6dd..97c857b96 100644 --- a/po/weechat.pot +++ b/po/weechat.pot @@ -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 \n" "Language-Team: LANGUAGE \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 "" diff --git a/src/core/wee-config.c b/src/core/wee-config.c index ed64060bd..b03d7f1ac 100644 --- a/src/core/wee-config.c +++ b/src/core/wee-config.c @@ -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", diff --git a/src/core/wee-config.h b/src/core/wee-config.h index a38b19255..d9229146a 100644 --- a/src/core/wee-config.h +++ b/src/core/wee-config.h @@ -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; diff --git a/src/gui/curses/gui-curses-chat.c b/src/gui/curses/gui-curses-chat.c index 57f4e5313..5e6ef267f 100644 --- a/src/gui/curses/gui-curses-chat.c +++ b/src/gui/curses/gui-curses-chat.c @@ -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); diff --git a/src/gui/curses/gui-curses-color.c b/src/gui/curses/gui-curses-color.c index fff91db40..853bf508e 100644 --- a/src/gui/curses/gui-curses-color.c +++ b/src/gui/curses/gui-curses-color.c @@ -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 diff --git a/src/gui/gtk/gui-gtk-chat.c b/src/gui/gtk/gui-gtk-chat.c index e368b69cf..47c48c281 100644 --- a/src/gui/gtk/gui-gtk-chat.c +++ b/src/gui/gtk/gui-gtk-chat.c @@ -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; } diff --git a/src/gui/gui-chat.c b/src/gui/gui-chat.c index 64272a957..949990f04 100644 --- a/src/gui/gui-chat.c +++ b/src/gui/gui-chat.c @@ -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); diff --git a/src/gui/gui-chat.h b/src/gui/gui-chat.h index 5e4a264c0..235623714 100644 --- a/src/gui/gui-chat.h +++ b/src/gui/gui-chat.h @@ -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); diff --git a/src/gui/gui-color.h b/src/gui/gui-color.h index 963f6e4d2..59c8ebc74 100644 --- a/src/gui/gui-color.h +++ b/src/gui/gui-color.h @@ -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, diff --git a/src/gui/gui-line.c b/src/gui/gui-line.c index 074ba46aa..0379dcd56 100644 --- a/src/gui/gui-line.c +++ b/src/gui/gui-line.c @@ -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 diff --git a/src/gui/gui-line.h b/src/gui/gui-line.h index 27c5b2937..4c0d377be 100644 --- a/src/gui/gui-line.h +++ b/src/gui/gui-line.h @@ -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); diff --git a/src/gui/gui-window.c b/src/gui/gui-window.c index 4132cf5fd..186c87039 100644 --- a/src/gui/gui-window.c +++ b/src/gui/gui-window.c @@ -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] == ' ')