core: check bar conditions in root bars and on each update of a bar item

This commit is contained in:
Sébastien Helleu 2014-12-28 11:42:57 +01:00
parent aa0289cbbd
commit 27431e234d
32 changed files with 500 additions and 335 deletions

View File

@ -17,6 +17,7 @@ https://weechat.org/files/releasenotes/ReleaseNotes-devel.html[release notes]
=== New features
* core: check bar conditions in root bars and on each update of a bar item
* core: fully evaluate commands bound to keys in cursor and mouse contexts
* core: add option weechat.completion.command_inline (task #12491)
* core: add bar item "mouse_status", new options weechat.look.item_mouse_status

View File

@ -13,50 +13,50 @@ message: Abwesenheitsnachricht (ohne Angabe einer Nachricht wird der Abwesenheit
----
/bar list|listfull|listitems
add <name> <type>[,<condition>] <position> <size> <separator> <item1>[,<item2>...]
add <name> <type>[,<conditions>] <position> <size> <separator> <item1>[,<item2>...]
default [input|title|status|nicklist]
del <name>|-all
set <name> <option> <value>
hide|show|toggle <name>
scroll <name> <window> <scroll_value>
list: zeigt alle Infobars an
listfull: zeigt eine detaillierte Liste aller Infobars an (ausführlich)
listitems: zeigt alle Items an, die in den Infobars genutzt werden
add: füge eine neue Infobar hinzu
name: Name der Infobar (muss einmalig sein)
type: root: außerhalb eines Fensters,
window: innerhalb eines Fensters, mit optionalen Merkmalen (siehe unten)
condition: Merkmal(e) für eine Infobar (nur nutzbar mit Bars vom Typ "window"):
active: in einem aktiven Fenster
inactive: in einem inaktiven Fenster
nicklist: in Fenstern mit einer Benutzerliste
weitere Merkmale: siehe /help weechat.bar.xxx.conditions und /help eval
ohne Angabe von Merkmalen wird die Infobar immer angezeigt
position: bottom (unten), top (oben), left (links) oder right (rechts)
size: Größe der Infobar (in Zeichen)
separator: 1 um eine Trennlinien zu zeichnen, bei 0 oder ohne eine Angabe, wird keine Trennlinien gezeichnet
item1,...: Items die in der Infobar genutzt werden sollen (Items können durch Kommata oder Leerzeichen getrennt werden ("+" (verbindet Items))
default: erstellt standardisierte Infobars
del: entfernt eine Infobar (alle Infobars können mit dem Argument "-all" entfernt werden).
set: setzt einen Wert für Infobar
option: Option die verändert werden soll (für eine Liste aller möglichen Optionen, bitte folgenden Befehl nutzen: /set weechat.bar.<barname>.*)
value: neuer Wert für Option
hide: Infobar wird ausgeblendet
show: zeigt eine ausgeblendete Infobar an
toggle: zeigt/versteckt eine Infobar
scroll: scrollt Infobar hoch/runter
window: Nummer des Fensters (nutze '*' für aktuelles Fenster oder für die Root-Bars)
scroll_value: Werte für Scroll-Funktion: 'x' oder 'y' (optional), gefolgt von '+', '-', 'b' (Beginn) oder 'e' (Ende), Wert (für +/-), und optional % (zum scrollen der Breite/Höhe in %, ansonsten wird dieser Wert als Anzahl der Zeichen interpretiert um die gescrollt werden soll)
list: list all bars
listfull: list all bars (verbose)
listitems: list all bar items
add: add a new bar
name: name of bar (must be unique)
type: root: outside windows,
window: inside windows, with optional conditions (see below)
conditions: the conditions to display the bar:
active: on active window
inactive: on inactive windows
nicklist: on windows with nicklist
other condition: see /help weechat.bar.xxx.conditions and /help eval
without conditions, the bar is always displayed
position: bottom, top, left or right
size: size of bar (in chars)
separator: 1 for using separator (line), 0 or nothing means no separator
item1,...: items for this bar (items can be separated by comma (space between items) or "+" (glued items))
default: create a default bar (all default bars if no bar name is given)
del: delete a bar (or all bars with -all)
set: set a value for a bar property
option: option to change (for options list, look at /set weechat.bar.<barname>.*)
value: new value for option
hide: hide a bar
show: show an hidden bar
toggle: hide/show a bar
scroll: scroll bar
window: window number (use '*' for current window or for root bars)
scroll_value: value for scroll: 'x' or 'y' (optional), followed by '+', '-', 'b' (beginning) or 'e' (end), value (for +/-), and optional % (to scroll by % of width/height, otherwise value is number of chars)
Beispiele:
erstellt eine Infobar mit den Items: time, buffer number + name, und Vervollständigung:
Examples:
create a bar with time, buffer number + name, and completion:
/bar add mybar root bottom 1 0 [time],buffer_number+:+buffer_name,completion
versteckt die Infobar (meinebar):
/bar hide meinebar
scrollt die Benutzerliste im aktuellen Buffer um 10 Zeilen nach unten:
hide a bar:
/bar hide mybar
scroll nicklist 10 lines down on current buffer:
/bar scroll nicklist * y+10
scrollt zum Ende der Nicklist im aktuellen Buffer:
scroll to end of nicklist on current buffer:
/bar scroll nicklist * ye
----

View File

@ -861,9 +861,9 @@ Einige Beispiele, wie die Bar 'nicklist' dargestellt werden kann:
[[bar_conditions]]
==== Bedingungen
Die Option 'conditions' ist eine Zeichenkette die direkten Einfluss darauf
nimmt, ob die Bar in einem Fenster dargestellt wird oder nicht (diese Option
kann nur für Bars vom Typ 'window' genutzt werden).
// TRANSLATION MISSING
The option 'conditions' is a string evaluated to know if the bar is displayed
or not.
Folgende Zeichenketten sind möglich:

View File

@ -13,7 +13,7 @@ message: message for away (if no message is given, away status is removed)
----
/bar list|listfull|listitems
add <name> <type>[,<condition>] <position> <size> <separator> <item1>[,<item2>...]
add <name> <type>[,<conditions>] <position> <size> <separator> <item1>[,<item2>...]
default [input|title|status|nicklist]
del <name>|-all
set <name> <option> <value>
@ -27,12 +27,12 @@ message: message for away (if no message is given, away status is removed)
name: name of bar (must be unique)
type: root: outside windows,
window: inside windows, with optional conditions (see below)
condition: condition(s) for displaying bar (only for type "window"):
conditions: the conditions to display the bar:
active: on active window
inactive: on inactive windows
nicklist: on windows with nicklist
other condition: see /help weechat.bar.xxx.conditions and /help eval
without condition, the bar is always displayed
without conditions, the bar is always displayed
position: bottom, top, left or right
size: size of bar (in chars)
separator: 1 for using separator (line), 0 or nothing means no separator

View File

@ -855,7 +855,7 @@ Some examples of filling for bar 'nicklist':
==== Conditions
The option 'conditions' is a string evaluated to know if the bar is displayed
or not in the window (it is used only for bars with type 'window').
or not.
The string can be:

View File

@ -27,7 +27,7 @@ message : message pour l'absence (si pas de message donné, le statut d'absence
nom : nom de la barre (doit être unique)
type : root : en dehors des fenêtres
window : dans les fenêtres, avec condition(s) optionnelle(s) (voir ci-dessous)
condition : condition(s) pour afficher cette barre (seulement pour le type "window") :
conditions : les conditions pour afficher la barre :
active : sur la fenêtre active
inactive : sur les fenêtres inactives
nicklist : sur les fenêtres avec liste de pseudos

View File

@ -877,8 +877,7 @@ Quelques exemples de remplissage pour la barre 'nicklist' :
==== Conditions
L'option 'conditions' est une chaîne évaluée pour savoir si la barre doit être
affichée ou non dans la fenêtre (elle est utilisée seulement pour les barres
avec type 'window').
affichée ou non.
La chaîne peut être :

View File

@ -13,12 +13,12 @@ messaggio: messaggio di assenza (se non specificato, lo stato di assenza viene r
----
/bar list|listfull|listitems
add <nome> <type>[,<condizione>] <posizione> <dimensione> <separatore> <item1>[,<item2>...]
add <name> <type>[,<conditions>] <position> <size> <separator> <item1>[,<item2>...]
default [input|title|status|nicklist]
del <nome>|-all
set <nome> <opzione> <valore>
hide|show|toggle <nome>
scroll <nome> <finestra> <scroll_value>
del <name>|-all
set <name> <option> <value>
hide|show|toggle <name>
scroll <name> <window> <scroll_value>
list: list all bars
listfull: list all bars (verbose)
@ -27,12 +27,12 @@ messaggio: messaggio di assenza (se non specificato, lo stato di assenza viene r
name: name of bar (must be unique)
type: root: outside windows,
window: inside windows, with optional conditions (see below)
condition: condition(s) for displaying bar (only for type "window"):
conditions: the conditions to display the bar:
active: on active window
inactive: on inactive windows
nicklist: on windows with nicklist
other condition: see /help weechat.bar.xxx.conditions and /help eval
without condition, the bar is always displayed
without conditions, the bar is always displayed
position: bottom, top, left or right
size: size of bar (in chars)
separator: 1 for using separator (line), 0 or nothing means no separator

View File

@ -895,8 +895,9 @@ Some examples of filling for bar 'nicklist':
[[bar_conditions]]
==== Conditions
// TRANSLATION MISSING
The option 'conditions' is a string evaluated to know if the bar is displayed
or not in the window (it is used only for bars with type 'window').
or not.
The string can be:

View File

@ -13,50 +13,50 @@ message: 離席メッセージ (メッセージが無い場合は、離席状態
----
/bar list|listfull|listitems
add <name> <type>[,<condition>] <position> <size> <separator> <item1>[,<item2>...]
add <name> <type>[,<conditions>] <position> <size> <separator> <item1>[,<item2>...]
default [input|title|status|nicklist]
del <name>|-all
set <name> <option> <value>
hide|show|toggle <name>
scroll <name> <window> <scroll_value>
list: 全てのバーをリストアップ
listfull: 全てのバーをリストアップ (詳細)
listitems: 全てのバーアイテムをリストアップ
add: 新しいバーを追加
name: バーの名称 (ユニークな)
type: root: 外側のウィンドウ、
window: 内側のウィンドウ、任意の状態を取れる (以下を参照)
condition: バーの表示状態 (タイプが "window" のバー以外は無効):
active: アクティブウィンドウに表示
inactive: 非アクティブウィンドウに表示
nicklist: ニックネームリストを持つウィンドウに表示
その他の状態: /help weechat.bar.xxx.conditions と /help eval を参照してください
表示状態の指定が無ければ、バーは常に表示されます。
position: bottom、top、left、right
size: バーのサイズ (文字数で指定)
separator: 1 はセパレータ (線) を使用、0 または指定無しはセパレータ無し
item1,...: バーのアイテム (アイテムはコンマ (アイテム間にスペース) または "+" (アイテム間にスペース無し) で区切ります)
default: デフォルトバーを作成 (バーの名前が無ければ全てのデフォルトバーが作成されます)
del: バーを削除 (-all を付ければ全てのバーを削除)
set: バー属性に値を設定
option: 変更するオプション (オプション一覧は /set weechat.bar.<barname>.* を参照)
value: オプションの新しい値
hide: バーを隠す
show: 隠されたバーを表示
toggle: バーの非表示/表示を切り替え
scroll: バーをスクロール
window: ウィンドウ番号 (現在のウィンドウかルートバーを指定するには '*' を使う)
scroll_value: スクロールする量: 'x' または 'y' (任意)の後に、'+' か '-' か 'b' (最初) か 'e' (最後)の後に、値 (+/- を付けて)、任意で % (スクロールする幅/高さの割合、% が無ければ値は文字数と解釈されます)
list: list all bars
listfull: list all bars (verbose)
listitems: list all bar items
add: add a new bar
name: name of bar (must be unique)
type: root: outside windows,
window: inside windows, with optional conditions (see below)
conditions: the conditions to display the bar:
active: on active window
inactive: on inactive windows
nicklist: on windows with nicklist
other condition: see /help weechat.bar.xxx.conditions and /help eval
without conditions, the bar is always displayed
position: bottom, top, left or right
size: size of bar (in chars)
separator: 1 for using separator (line), 0 or nothing means no separator
item1,...: items for this bar (items can be separated by comma (space between items) or "+" (glued items))
default: create a default bar (all default bars if no bar name is given)
del: delete a bar (or all bars with -all)
set: set a value for a bar property
option: option to change (for options list, look at /set weechat.bar.<barname>.*)
value: new value for option
hide: hide a bar
show: show an hidden bar
toggle: hide/show a bar
scroll: scroll bar
window: window number (use '*' for current window or for root bars)
scroll_value: value for scroll: 'x' or 'y' (optional), followed by '+', '-', 'b' (beginning) or 'e' (end), value (for +/-), and optional % (to scroll by % of width/height, otherwise value is number of chars)
:
時間、バー番号 + 名前、補完候補からなるバーを作成:
Examples:
create a bar with time, buffer number + name, and completion:
/bar add mybar root bottom 1 0 [time],buffer_number+:+buffer_name,completion
バーを隠す:
hide a bar:
/bar hide mybar
現在のバッファに対応したニックネームリストを 10 行分、下方向にスクロール:
scroll nicklist 10 lines down on current buffer:
/bar scroll nicklist * y+10
現在のバッファに対応したニックネームリストを最後までスクロール:
scroll to end of nicklist on current buffer:
/bar scroll nicklist * ye
----

View File

@ -853,8 +853,9 @@ WeeChat を起動したターミナルの例:
[[bar_conditions]]
==== 状態
'conditions' オプションはバーをウィンドウ内に表示するか否かを評価する文字列です
(このオプションは 'window' 型のバーだけに有効です)。
// TRANSLATION MISSING
The option 'conditions' is a string evaluated to know if the bar is displayed
or not.
文字列は以下のいずれか:

View File

@ -13,50 +13,50 @@ wiadomość: powód nieobecności (jeśli nie podano wiadomości status nieobecn
----
/bar list|listfull|listitems
add <nazwa> <typ>[,<warunek>] <pozycja> <rozmiar> <separator> <element1>[,<element2>...]
add <name> <type>[,<conditions>] <position> <size> <separator> <item1>[,<item2>...]
default [input|title|status|nicklist]
del <nazwa>|-all
set <nazwa> <opcja> <wartość>
hide|show|toggle <nazwa>
scroll <nazwa> <okno> <wartość_przewinięcia>
del <name>|-all
set <name> <option> <value>
hide|show|toggle <name>
scroll <name> <window> <scroll_value>
list: lista wszystkich pasków
listfull: lista wszystkich pasków (z polami)
listitems: lista wszystkich elementów pasków
add: dodaj nowy pasek
nazwa: nazwa paska (musi być unikalna)
typ: root: poza oknami,
window: wewnątrz okien, z opcjonalnymi warunkami (patrz niżej)
warunek: warunek(i) dla wyświetlenia paska (tylko dla typu "window"):
active: w aktywnym oknie
inactive: w nieaktywnym oknie
nicklist: w oknach z listą nicków
inne warunki: zobacz /help weechat.bar.xxx.conditions oraz /help eval
bez warunku pasek jest zawsze wyświetlany
pozycja: dół (bottom), góra (top), lewo (left) lub prawo (right)
rozmiar: rozmiar paska (w znakach)
separator: 1 dla użycia separatora (linia), 0 - brak separatora
element1,...: elementy dla tego paska (elementy mogą być oddzielone przecinkiem (przerwa między elementami) lub "+" (sklejone elementy))
default: tworzy domyślne paski (wszystkie domyślne paski, jeśli nie podamy nazwy)
del: usuwa pasek (lub wszystkie z użyciem -all)
set: ustawia wartość dla właściwości paska
opcja: opcja do zmiany (listę opcji można zobaczyć dzięki /set weechat.bar.<nazwa paska>.*)
wartość: nowa wartość opcji
hide: ukrywa pasek
show: pokazuje ukryty pasek
toggle: ukrywa/pokazuje pasek
scroll: przewija pasek
okno: numer okna ('*' oznacza obecne okno lub pasek typu root)
wartość_przewinięcia: wartość dla przewinięcia: 'x' lub 'y' (opcjonalne), następnie '+', '-', 'b' (początek) lub 'e' (koniec), wartość (dla +/-), oraz opcjonalnie % (w celu przesunięcia % szerokości/wysokości, w przeciwnym wypadku wartość jest ilością znaków)
list: list all bars
listfull: list all bars (verbose)
listitems: list all bar items
add: add a new bar
name: name of bar (must be unique)
type: root: outside windows,
window: inside windows, with optional conditions (see below)
conditions: the conditions to display the bar:
active: on active window
inactive: on inactive windows
nicklist: on windows with nicklist
other condition: see /help weechat.bar.xxx.conditions and /help eval
without conditions, the bar is always displayed
position: bottom, top, left or right
size: size of bar (in chars)
separator: 1 for using separator (line), 0 or nothing means no separator
item1,...: items for this bar (items can be separated by comma (space between items) or "+" (glued items))
default: create a default bar (all default bars if no bar name is given)
del: delete a bar (or all bars with -all)
set: set a value for a bar property
option: option to change (for options list, look at /set weechat.bar.<barname>.*)
value: new value for option
hide: hide a bar
show: show an hidden bar
toggle: hide/show a bar
scroll: scroll bar
window: window number (use '*' for current window or for root bars)
scroll_value: value for scroll: 'x' or 'y' (optional), followed by '+', '-', 'b' (beginning) or 'e' (end), value (for +/-), and optional % (to scroll by % of width/height, otherwise value is number of chars)
Przykłady:
tworzy pasek z czasem, numerem + nazwą bufora i dopełnianiem:
Examples:
create a bar with time, buffer number + name, and completion:
/bar add mybar root bottom 1 0 [time],buffer_number+:+buffer_name,completion
ukrywa pasek:
hide a bar:
/bar hide mybar
przewija listę nicków a obecnym buforze o 10 linii w dół :
scroll nicklist 10 lines down on current buffer:
/bar scroll nicklist * y+10
przewija do końca listę nicków w obecnym buforze:
scroll to end of nicklist on current buffer:
/bar scroll nicklist * ye
----

View File

@ -860,8 +860,9 @@ Przykłady wypełnień paska 'nicklist':
[[bar_conditions]]
==== Warunki
Opcja 'conditions' jest ciągiem przetwarzanym w celu ustalenia czy pasek ma
zostać wyświetlony w oknie (jest używany tylko dla pasków z typem 'window').
// TRANSLATION MISSING
The option 'conditions' is a string evaluated to know if the bar is displayed
or not.
Ciąg może być:

View File

@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-12-21 11:09+0100\n"
"POT-Creation-Date: 2014-12-28 10:50+0100\n"
"PO-Revision-Date: 2014-11-09 16:23+0100\n"
"Last-Translator: Jiri Golembiovsky <golemj@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -1016,10 +1016,10 @@ msgstr "řídit pole"
#, fuzzy
msgid ""
"list|listfull|listitems || add <name> <type>[,<condition>] <position> <size> "
"<separator> <item1>[,<item2>...] || default [input|title|status|nicklist] || "
"del <name>|-all || set <name> <option> <value> || hide|show|toggle <name> || "
"scroll <name> <window> <scroll_value>"
"list|listfull|listitems || add <name> <type>[,<conditions>] <position> "
"<size> <separator> <item1>[,<item2>...] || default [input|title|status|"
"nicklist] || del <name>|-all || set <name> <option> <value> || hide|show|"
"toggle <name> || scroll <name> <window> <scroll_value>"
msgstr ""
"list|listfull|listitems || add <jméno> <typ>[,<podmínka1>[,<podmínka2>...]] "
"<pozice> <velikost> <oddělovac> <položka1>[,<položka2>...] || default [input|"
@ -1036,13 +1036,13 @@ msgid ""
" name: name of bar (must be unique)\n"
" type: root: outside windows,\n"
" window: inside windows, with optional conditions (see below)\n"
" condition: condition(s) for displaying bar (only for type \"window\"):\n"
" conditions: the conditions to display the bar:\n"
" active: on active window\n"
" inactive: on inactive windows\n"
" nicklist: on windows with nicklist\n"
" other condition: see /help weechat.bar.xxx.conditions and /"
"help eval\n"
" without condition, the bar is always displayed\n"
" without conditions, the bar is always displayed\n"
" position: bottom, top, left or right\n"
" size: size of bar (in chars)\n"
" separator: 1 for using separator (line), 0 or nothing means no "
@ -4154,11 +4154,11 @@ msgid "bar type (root, window, window_active, window_inactive)"
msgstr "typ pole (root, window, window_active, window_inactive)"
msgid ""
"condition(s) for displaying bar (for bars of type \"window\"): a simple "
"condition: \"active\", \"inactive\", \"nicklist\" (window must be active/"
"inactive, buffer must have a nicklist), or an expression with condition(s) "
"(see /help eval), like: \"${nicklist} && ${window.win_width} > 100\" (local "
"variables for expression are ${active}, ${inactive} and ${nicklist})"
"conditions to display the bar: a simple condition: \"active\", \"inactive\", "
"\"nicklist\" (window must be active/inactive, buffer must have a nicklist), "
"or an expression with condition(s) (see /help eval), like: \"${nicklist} && "
"${window.win_width} > 100\" (local variables for expression are ${active}, "
"${inactive} and ${nicklist})"
msgstr ""
msgid "bar position (bottom, top, left, right)"

View File

@ -23,7 +23,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-12-21 11:09+0100\n"
"POT-Creation-Date: 2014-12-28 10:50+0100\n"
"PO-Revision-Date: 2014-12-21 13:35+0100\n"
"Last-Translator: Nils Görs <weechatter@arcor.de>\n"
"Language-Team: German <>\n"
@ -1029,17 +1029,19 @@ msgstr ""
msgid "manage bars"
msgstr "Infobars verwalten"
#, fuzzy
msgid ""
"list|listfull|listitems || add <name> <type>[,<condition>] <position> <size> "
"<separator> <item1>[,<item2>...] || default [input|title|status|nicklist] || "
"del <name>|-all || set <name> <option> <value> || hide|show|toggle <name> || "
"scroll <name> <window> <scroll_value>"
"list|listfull|listitems || add <name> <type>[,<conditions>] <position> "
"<size> <separator> <item1>[,<item2>...] || default [input|title|status|"
"nicklist] || del <name>|-all || set <name> <option> <value> || hide|show|"
"toggle <name> || scroll <name> <window> <scroll_value>"
msgstr ""
"list|listfull|listitems || add <name> <type>[,<condition>] <position> <size> "
"<separator> <item1>[,<item2>...] || default [input|title|status|nicklist] || "
"del <name>|-all || set <name> <option> <value> || hide|show|toggle <name> || "
"scroll <name> <window> <scroll_value>"
#, fuzzy
msgid ""
" list: list all bars\n"
" listfull: list all bars (verbose)\n"
@ -1048,13 +1050,13 @@ msgid ""
" name: name of bar (must be unique)\n"
" type: root: outside windows,\n"
" window: inside windows, with optional conditions (see below)\n"
" condition: condition(s) for displaying bar (only for type \"window\"):\n"
" conditions: the conditions to display the bar:\n"
" active: on active window\n"
" inactive: on inactive windows\n"
" nicklist: on windows with nicklist\n"
" other condition: see /help weechat.bar.xxx.conditions and /"
"help eval\n"
" without condition, the bar is always displayed\n"
" without conditions, the bar is always displayed\n"
" position: bottom, top, left or right\n"
" size: size of bar (in chars)\n"
" separator: 1 for using separator (line), 0 or nothing means no "
@ -4868,12 +4870,13 @@ msgstr ""
msgid "bar type (root, window, window_active, window_inactive)"
msgstr "Bar-Typ (root, window, window_active, window_inactive)"
#, fuzzy
msgid ""
"condition(s) for displaying bar (for bars of type \"window\"): a simple "
"condition: \"active\", \"inactive\", \"nicklist\" (window must be active/"
"inactive, buffer must have a nicklist), or an expression with condition(s) "
"(see /help eval), like: \"${nicklist} && ${window.win_width} > 100\" (local "
"variables for expression are ${active}, ${inactive} and ${nicklist})"
"conditions to display the bar: a simple condition: \"active\", \"inactive\", "
"\"nicklist\" (window must be active/inactive, buffer must have a nicklist), "
"or an expression with condition(s) (see /help eval), like: \"${nicklist} && "
"${window.win_width} > 100\" (local variables for expression are ${active}, "
"${inactive} and ${nicklist})"
msgstr ""
"Bedingung(en), damit eine Infobar angezeigt wird (Infobars vom Typ \"window"
"\"). Eine einfache Bedingung: \"active\", \"inactive\", \"nicklist"

View File

@ -22,7 +22,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-12-21 11:09+0100\n"
"POT-Creation-Date: 2014-12-28 10:50+0100\n"
"PO-Revision-Date: 2014-11-09 16:23+0100\n"
"Last-Translator: Elián Hanisch <lambdae2@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -1018,10 +1018,10 @@ msgstr "gestionar las barras"
#, fuzzy
msgid ""
"list|listfull|listitems || add <name> <type>[,<condition>] <position> <size> "
"<separator> <item1>[,<item2>...] || default [input|title|status|nicklist] || "
"del <name>|-all || set <name> <option> <value> || hide|show|toggle <name> || "
"scroll <name> <window> <scroll_value>"
"list|listfull|listitems || add <name> <type>[,<conditions>] <position> "
"<size> <separator> <item1>[,<item2>...] || default [input|title|status|"
"nicklist] || del <name>|-all || set <name> <option> <value> || hide|show|"
"toggle <name> || scroll <name> <window> <scroll_value>"
msgstr ""
"list|listfull|listitems || add <nombre> <tipo>[,<cond1>[,<cond2>...]] "
"<posición> <tamaño> <separador> <elemento1>[,<elemento2>...] || default "
@ -1038,13 +1038,13 @@ msgid ""
" name: name of bar (must be unique)\n"
" type: root: outside windows,\n"
" window: inside windows, with optional conditions (see below)\n"
" condition: condition(s) for displaying bar (only for type \"window\"):\n"
" conditions: the conditions to display the bar:\n"
" active: on active window\n"
" inactive: on inactive windows\n"
" nicklist: on windows with nicklist\n"
" other condition: see /help weechat.bar.xxx.conditions and /"
"help eval\n"
" without condition, the bar is always displayed\n"
" without conditions, the bar is always displayed\n"
" position: bottom, top, left or right\n"
" size: size of bar (in chars)\n"
" separator: 1 for using separator (line), 0 or nothing means no "
@ -4371,11 +4371,11 @@ msgid "bar type (root, window, window_active, window_inactive)"
msgstr "tipo de barra (root, window, window_active, window_inactive)"
msgid ""
"condition(s) for displaying bar (for bars of type \"window\"): a simple "
"condition: \"active\", \"inactive\", \"nicklist\" (window must be active/"
"inactive, buffer must have a nicklist), or an expression with condition(s) "
"(see /help eval), like: \"${nicklist} && ${window.win_width} > 100\" (local "
"variables for expression are ${active}, ${inactive} and ${nicklist})"
"conditions to display the bar: a simple condition: \"active\", \"inactive\", "
"\"nicklist\" (window must be active/inactive, buffer must have a nicklist), "
"or an expression with condition(s) (see /help eval), like: \"${nicklist} && "
"${window.win_width} > 100\" (local variables for expression are ${active}, "
"${inactive} and ${nicklist})"
msgstr ""
msgid "bar position (bottom, top, left, right)"

View File

@ -21,8 +21,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-12-21 11:09+0100\n"
"PO-Revision-Date: 2014-12-21 11:10+0100\n"
"POT-Creation-Date: 2014-12-28 10:50+0100\n"
"PO-Revision-Date: 2014-12-28 10:53+0100\n"
"Last-Translator: Sébastien Helleu <flashcode@flashtux.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"Language: fr\n"
@ -1012,10 +1012,10 @@ msgid "manage bars"
msgstr "gestion des barres"
msgid ""
"list|listfull|listitems || add <name> <type>[,<condition>] <position> <size> "
"<separator> <item1>[,<item2>...] || default [input|title|status|nicklist] || "
"del <name>|-all || set <name> <option> <value> || hide|show|toggle <name> || "
"scroll <name> <window> <scroll_value>"
"list|listfull|listitems || add <name> <type>[,<conditions>] <position> "
"<size> <separator> <item1>[,<item2>...] || default [input|title|status|"
"nicklist] || del <name>|-all || set <name> <option> <value> || hide|show|"
"toggle <name> || scroll <name> <window> <scroll_value>"
msgstr ""
"list|listfull|listitems || add <nom> <type>[,<conditions>] <position> "
"<taille> <séparateur> <objet1>[,<objet2>...] || default [input|title|status|"
@ -1030,13 +1030,13 @@ msgid ""
" name: name of bar (must be unique)\n"
" type: root: outside windows,\n"
" window: inside windows, with optional conditions (see below)\n"
" condition: condition(s) for displaying bar (only for type \"window\"):\n"
" conditions: the conditions to display the bar:\n"
" active: on active window\n"
" inactive: on inactive windows\n"
" nicklist: on windows with nicklist\n"
" other condition: see /help weechat.bar.xxx.conditions and /"
"help eval\n"
" without condition, the bar is always displayed\n"
" without conditions, the bar is always displayed\n"
" position: bottom, top, left or right\n"
" size: size of bar (in chars)\n"
" separator: 1 for using separator (line), 0 or nothing means no "
@ -1078,8 +1078,7 @@ msgstr ""
" type : root : en dehors des fenêtres\n"
" window : dans les fenêtres, avec condition(s) optionnelle(s) "
"(voir ci-dessous)\n"
" condition : condition(s) pour afficher cette barre (seulement pour le "
"type \"window\") :\n"
" conditions : les conditions pour afficher la barre :\n"
" active : sur la fenêtre active\n"
" inactive : sur les fenêtres inactives\n"
" nicklist : sur les fenêtres avec liste de pseudos\n"
@ -4758,18 +4757,18 @@ msgid "bar type (root, window, window_active, window_inactive)"
msgstr "type de barre (root, window, window_active, window_inactive)"
msgid ""
"condition(s) for displaying bar (for bars of type \"window\"): a simple "
"condition: \"active\", \"inactive\", \"nicklist\" (window must be active/"
"inactive, buffer must have a nicklist), or an expression with condition(s) "
"(see /help eval), like: \"${nicklist} && ${window.win_width} > 100\" (local "
"variables for expression are ${active}, ${inactive} and ${nicklist})"
"conditions to display the bar: a simple condition: \"active\", \"inactive\", "
"\"nicklist\" (window must be active/inactive, buffer must have a nicklist), "
"or an expression with condition(s) (see /help eval), like: \"${nicklist} && "
"${window.win_width} > 100\" (local variables for expression are ${active}, "
"${inactive} and ${nicklist})"
msgstr ""
"condition(s) pour afficher la barre (pour les barres de type \"window\") : "
"une simple condition : \"active\", \"inactive\", \"nicklist\" (la fenêtre "
"doit être active/inactive, le tampon doit avoir une liste de pseudos), ou "
"une expression avec condition(s) (voir /help eval), comme : \"${nicklist} && "
"${window.win_width} > 100\" (les variables locales pour l'expression sont "
"${active}, ${inactive} et ${nicklist})"
"conditions pour afficher la barre : une simple condition : \"active\", "
"\"inactive\", \"nicklist\" (la fenêtre doit être active/inactive, le tampon "
"doit avoir une liste de pseudos), ou une expression avec condition(s) (voir /"
"help eval), comme : \"${nicklist} && ${window.win_width} > 100\" (les "
"variables locales pour l'expression sont ${active}, ${inactive} et "
"${nicklist})"
msgid "bar position (bottom, top, left, right)"
msgstr ""

View File

@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-12-21 11:09+0100\n"
"POT-Creation-Date: 2014-12-28 10:50+0100\n"
"PO-Revision-Date: 2014-11-09 16:23+0100\n"
"Last-Translator: Andras Voroskoi <voroskoi@frugalware.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -1050,10 +1050,10 @@ msgid "manage bars"
msgstr "pufferek kezelése"
msgid ""
"list|listfull|listitems || add <name> <type>[,<condition>] <position> <size> "
"<separator> <item1>[,<item2>...] || default [input|title|status|nicklist] || "
"del <name>|-all || set <name> <option> <value> || hide|show|toggle <name> || "
"scroll <name> <window> <scroll_value>"
"list|listfull|listitems || add <name> <type>[,<conditions>] <position> "
"<size> <separator> <item1>[,<item2>...] || default [input|title|status|"
"nicklist] || del <name>|-all || set <name> <option> <value> || hide|show|"
"toggle <name> || scroll <name> <window> <scroll_value>"
msgstr ""
msgid ""
@ -1064,13 +1064,13 @@ msgid ""
" name: name of bar (must be unique)\n"
" type: root: outside windows,\n"
" window: inside windows, with optional conditions (see below)\n"
" condition: condition(s) for displaying bar (only for type \"window\"):\n"
" conditions: the conditions to display the bar:\n"
" active: on active window\n"
" inactive: on inactive windows\n"
" nicklist: on windows with nicklist\n"
" other condition: see /help weechat.bar.xxx.conditions and /"
"help eval\n"
" without condition, the bar is always displayed\n"
" without conditions, the bar is always displayed\n"
" position: bottom, top, left or right\n"
" size: size of bar (in chars)\n"
" separator: 1 for using separator (line), 0 or nothing means no "
@ -3776,11 +3776,11 @@ msgid "bar type (root, window, window_active, window_inactive)"
msgstr ""
msgid ""
"condition(s) for displaying bar (for bars of type \"window\"): a simple "
"condition: \"active\", \"inactive\", \"nicklist\" (window must be active/"
"inactive, buffer must have a nicklist), or an expression with condition(s) "
"(see /help eval), like: \"${nicklist} && ${window.win_width} > 100\" (local "
"variables for expression are ${active}, ${inactive} and ${nicklist})"
"conditions to display the bar: a simple condition: \"active\", \"inactive\", "
"\"nicklist\" (window must be active/inactive, buffer must have a nicklist), "
"or an expression with condition(s) (see /help eval), like: \"${nicklist} && "
"${window.win_width} > 100\" (local variables for expression are ${active}, "
"${inactive} and ${nicklist})"
msgstr ""
#, fuzzy

View File

@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-12-21 11:09+0100\n"
"POT-Creation-Date: 2014-12-28 10:50+0100\n"
"PO-Revision-Date: 2014-11-09 16:23+0100\n"
"Last-Translator: Esteban I. Ruiz Moreno <exio4.com@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -998,11 +998,12 @@ msgstr ""
msgid "manage bars"
msgstr "gestione delle barre"
#, fuzzy
msgid ""
"list|listfull|listitems || add <name> <type>[,<condition>] <position> <size> "
"<separator> <item1>[,<item2>...] || default [input|title|status|nicklist] || "
"del <name>|-all || set <name> <option> <value> || hide|show|toggle <name> || "
"scroll <name> <window> <scroll_value>"
"list|listfull|listitems || add <name> <type>[,<conditions>] <position> "
"<size> <separator> <item1>[,<item2>...] || default [input|title|status|"
"nicklist] || del <name>|-all || set <name> <option> <value> || hide|show|"
"toggle <name> || scroll <name> <window> <scroll_value>"
msgstr ""
"list|listfull|listitems || add <nome> <type>[,<condizione>] <posizione> "
"<dimensione> <separatore> <item1>[,<item2>...] || default [input|title|"
@ -1018,13 +1019,13 @@ msgid ""
" name: name of bar (must be unique)\n"
" type: root: outside windows,\n"
" window: inside windows, with optional conditions (see below)\n"
" condition: condition(s) for displaying bar (only for type \"window\"):\n"
" conditions: the conditions to display the bar:\n"
" active: on active window\n"
" inactive: on inactive windows\n"
" nicklist: on windows with nicklist\n"
" other condition: see /help weechat.bar.xxx.conditions and /"
"help eval\n"
" without condition, the bar is always displayed\n"
" without conditions, the bar is always displayed\n"
" position: bottom, top, left or right\n"
" size: size of bar (in chars)\n"
" separator: 1 for using separator (line), 0 or nothing means no "
@ -4497,11 +4498,11 @@ msgid "bar type (root, window, window_active, window_inactive)"
msgstr "tipo di barra (root, window, window_active, window_inactive)"
msgid ""
"condition(s) for displaying bar (for bars of type \"window\"): a simple "
"condition: \"active\", \"inactive\", \"nicklist\" (window must be active/"
"inactive, buffer must have a nicklist), or an expression with condition(s) "
"(see /help eval), like: \"${nicklist} && ${window.win_width} > 100\" (local "
"variables for expression are ${active}, ${inactive} and ${nicklist})"
"conditions to display the bar: a simple condition: \"active\", \"inactive\", "
"\"nicklist\" (window must be active/inactive, buffer must have a nicklist), "
"or an expression with condition(s) (see /help eval), like: \"${nicklist} && "
"${window.win_width} > 100\" (local variables for expression are ${active}, "
"${inactive} and ${nicklist})"
msgstr ""
msgid "bar position (bottom, top, left, right)"

View File

@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-12-21 11:09+0100\n"
"POT-Creation-Date: 2014-12-28 10:50+0100\n"
"PO-Revision-Date: 2014-12-22 01:28+0900\n"
"Last-Translator: AYANOKOUZI, Ryuunosuke <i38w7i3@yahoo.co.jp>\n"
"Language-Team: Japanese <https://github.com/l/weechat/tree/translation_ja>\n"
@ -40,11 +40,11 @@ msgid "max chars"
msgstr "最大文字数"
msgid ""
"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 "
"italic, \"_\" for underline"
"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 italic, \"_\" for underline"
msgstr ""
"WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、"
"brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号ま"
@ -992,17 +992,19 @@ msgstr ""
msgid "manage bars"
msgstr "バーの管理"
#, fuzzy
msgid ""
"list|listfull|listitems || add <name> <type>[,<condition>] <position> <size> "
"<separator> <item1>[,<item2>...] || default [input|title|status|nicklist] || "
"del <name>|-all || set <name> <option> <value> || hide|show|toggle <name> || "
"scroll <name> <window> <scroll_value>"
"list|listfull|listitems || add <name> <type>[,<conditions>] <position> "
"<size> <separator> <item1>[,<item2>...] || default [input|title|status|"
"nicklist] || del <name>|-all || set <name> <option> <value> || hide|show|"
"toggle <name> || scroll <name> <window> <scroll_value>"
msgstr ""
"list|listfull|listitems || add <name> <type>[,<condition>] <position> <size> "
"<separator> <item1>[,<item2>...] || default [input|title|status|nicklist] || "
"del <name>|-all || set <name> <option> <value> || hide|show|toggle <name> || "
"scroll <name> <window> <scroll_value>"
#, fuzzy
msgid ""
" list: list all bars\n"
" listfull: list all bars (verbose)\n"
@ -1011,13 +1013,13 @@ msgid ""
" name: name of bar (must be unique)\n"
" type: root: outside windows,\n"
" window: inside windows, with optional conditions (see below)\n"
" condition: condition(s) for displaying bar (only for type \"window\"):\n"
" conditions: the conditions to display the bar:\n"
" active: on active window\n"
" inactive: on inactive windows\n"
" nicklist: on windows with nicklist\n"
" other condition: see /help weechat.bar.xxx.conditions and /"
"help eval\n"
" without condition, the bar is always displayed\n"
" without conditions, the bar is always displayed\n"
" position: bottom, top, left or right\n"
" size: size of bar (in chars)\n"
" separator: 1 for using separator (line), 0 or nothing means no "
@ -4554,12 +4556,13 @@ msgstr "バー優先度 (値が大きいものは最初に表示)"
msgid "bar type (root, window, window_active, window_inactive)"
msgstr "バー型 (root、window、window_active、window_inactive)"
#, fuzzy
msgid ""
"condition(s) for displaying bar (for bars of type \"window\"): a simple "
"condition: \"active\", \"inactive\", \"nicklist\" (window must be active/"
"inactive, buffer must have a nicklist), or an expression with condition(s) "
"(see /help eval), like: \"${nicklist} && ${window.win_width} > 100\" (local "
"variables for expression are ${active}, ${inactive} and ${nicklist})"
"conditions to display the bar: a simple condition: \"active\", \"inactive\", "
"\"nicklist\" (window must be active/inactive, buffer must have a nicklist), "
"or an expression with condition(s) (see /help eval), like: \"${nicklist} && "
"${window.win_width} > 100\" (local variables for expression are ${active}, "
"${inactive} and ${nicklist})"
msgstr ""
"バーを表示する条件 (\"window\" タイプのバー): 単純な条件: \"active"
"\"、\"inactive\"、\"nicklist\" (ウィンドウはアクティブ/非アクティブ、バッファ"
@ -5963,8 +5966,8 @@ msgstr ""
" - 内部サーバ名 (/server add で作成されたもの、利用推奨)\n"
" - ホスト名/ポート番号又は IP アドレス/ポート番号、デフォルトの"
"ポート番号は 6667\n"
" - 次のフォーマットに従う URL: irc[6][s]://[nickname[:password]@]"
"irc.example.org[:port][/#channel1][,#channel2[...]]\n"
" - 次のフォーマットに従う URL: irc[6][s]://[nickname[:"
"password]@]irc.example.org[:port][/#channel1][,#channel2[...]]\n"
" 注意: アドレス/IP/URL を指定した場合、サーバを一時的に作ります "
"(保存しません)、/help irc.look.temporary_servers を参照してください。\n"
" option: サーバに関するオプション (ブール型オプションでは、value は無視さ"
@ -10950,8 +10953,8 @@ msgid ""
"Examples (you can also look at default triggers with /trigger listdefault):\n"
" add text attributes *bold*, _underline_ and /italic/ (only in user "
"messages):\n"
" /trigger add effects modifier weechat_print \"${tg_tag_nick}\" \"==\\*"
"(\\S+)\\*==*${color:bold}${re:1}${color:-bold}*== ==_(\\S+)_==_${color:"
" /trigger add effects modifier weechat_print \"${tg_tag_nick}\" \"=="
"\\*(\\S+)\\*==*${color:bold}${re:1}${color:-bold}*== ==_(\\S+)_==_${color:"
"underline}${re:1}${color:-underline}_== ==/(\\S+)/==/${color:"
"italic}${re:1}${color:-italic}/\"\n"
" hide nicklist bar on small terminals:\n"
@ -11027,8 +11030,8 @@ msgstr ""
"\n"
"例 (/trigger listdefault でデフォルトトリガを見ることができます):\n"
" テキスト属性 *太字*、_下線_、/イタリック/ を追加 (ユーザメッセージのみ):\n"
" /trigger add effects modifier weechat_print \"${tg_tag_nick}\" \"==\\*"
"(\\S+)\\*==*${color:bold}${re:1}${color:-bold}*== ==_(\\S+)_==_${color:"
" /trigger add effects modifier weechat_print \"${tg_tag_nick}\" \"=="
"\\*(\\S+)\\*==*${color:bold}${re:1}${color:-bold}*== ==_(\\S+)_==_${color:"
"underline}${re:1}${color:-underline}_== ==/(\\S+)/==/${color:"
"italic}${re:1}${color:-italic}/\"\n"
" 狭い端末ではニックネームリストバーを隠す:\n"

View File

@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-12-21 11:09+0100\n"
"POT-Creation-Date: 2014-12-28 10:50+0100\n"
"PO-Revision-Date: 2014-12-26 19:51+0100\n"
"Last-Translator: Krzysztof Korościk <soltys@szluug.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -1018,17 +1018,19 @@ msgstr ""
msgid "manage bars"
msgstr "zarządzaj paskami"
#, fuzzy
msgid ""
"list|listfull|listitems || add <name> <type>[,<condition>] <position> <size> "
"<separator> <item1>[,<item2>...] || default [input|title|status|nicklist] || "
"del <name>|-all || set <name> <option> <value> || hide|show|toggle <name> || "
"scroll <name> <window> <scroll_value>"
"list|listfull|listitems || add <name> <type>[,<conditions>] <position> "
"<size> <separator> <item1>[,<item2>...] || default [input|title|status|"
"nicklist] || del <name>|-all || set <name> <option> <value> || hide|show|"
"toggle <name> || scroll <name> <window> <scroll_value>"
msgstr ""
"list|listfull|listitems || add <nazwa> <typ>[,<warunek>] <pozycja> <rozmiar> "
"<separator> <element1>[,<element2>...] || default [input|title|status|"
"nicklist] || del <nazwa>|-all || set <nazwa> <opcja> <wartość> || hide|show|"
"toggle <nazwa> || scroll <nazwa> <okno> <wartość_przewinięcia>"
#, fuzzy
msgid ""
" list: list all bars\n"
" listfull: list all bars (verbose)\n"
@ -1037,13 +1039,13 @@ msgid ""
" name: name of bar (must be unique)\n"
" type: root: outside windows,\n"
" window: inside windows, with optional conditions (see below)\n"
" condition: condition(s) for displaying bar (only for type \"window\"):\n"
" conditions: the conditions to display the bar:\n"
" active: on active window\n"
" inactive: on inactive windows\n"
" nicklist: on windows with nicklist\n"
" other condition: see /help weechat.bar.xxx.conditions and /"
"help eval\n"
" without condition, the bar is always displayed\n"
" without conditions, the bar is always displayed\n"
" position: bottom, top, left or right\n"
" size: size of bar (in chars)\n"
" separator: 1 for using separator (line), 0 or nothing means no "
@ -4661,12 +4663,13 @@ msgstr ""
msgid "bar type (root, window, window_active, window_inactive)"
msgstr "typ paska (root, window, window_active, window_inactive)"
#, fuzzy
msgid ""
"condition(s) for displaying bar (for bars of type \"window\"): a simple "
"condition: \"active\", \"inactive\", \"nicklist\" (window must be active/"
"inactive, buffer must have a nicklist), or an expression with condition(s) "
"(see /help eval), like: \"${nicklist} && ${window.win_width} > 100\" (local "
"variables for expression are ${active}, ${inactive} and ${nicklist})"
"conditions to display the bar: a simple condition: \"active\", \"inactive\", "
"\"nicklist\" (window must be active/inactive, buffer must have a nicklist), "
"or an expression with condition(s) (see /help eval), like: \"${nicklist} && "
"${window.win_width} > 100\" (local variables for expression are ${active}, "
"${inactive} and ${nicklist})"
msgstr ""
"warunek(i) dla wyświetlania paska (dla pasków o typie \"window\"): prosty "
"warunek: \"active\", \"inactive\", \"nicklist\" (okna muszą być aktywne/"

View File

@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-12-21 11:09+0100\n"
"POT-Creation-Date: 2014-12-28 10:50+0100\n"
"PO-Revision-Date: 2014-11-09 16:23+0100\n"
"Last-Translator: Sergio Durigan Junior <sergiosdj@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -1035,11 +1035,12 @@ msgstr ""
msgid "manage bars"
msgstr "gerenciar barras"
#, fuzzy
msgid ""
"list|listfull|listitems || add <name> <type>[,<condition>] <position> <size> "
"<separator> <item1>[,<item2>...] || default [input|title|status|nicklist] || "
"del <name>|-all || set <name> <option> <value> || hide|show|toggle <name> || "
"scroll <name> <window> <scroll_value>"
"list|listfull|listitems || add <name> <type>[,<conditions>] <position> "
"<size> <separator> <item1>[,<item2>...] || default [input|title|status|"
"nicklist] || del <name>|-all || set <name> <option> <value> || hide|show|"
"toggle <name> || scroll <name> <window> <scroll_value>"
msgstr ""
"list|listfull|listitems || add <nome> <tipo>[,<cond1>[,<cond2>...]] "
"<posição> <tamanho> <separador> <item1>[,<item2>...] || default [input|title|"
@ -1057,13 +1058,13 @@ msgid ""
" name: name of bar (must be unique)\n"
" type: root: outside windows,\n"
" window: inside windows, with optional conditions (see below)\n"
" condition: condition(s) for displaying bar (only for type \"window\"):\n"
" conditions: the conditions to display the bar:\n"
" active: on active window\n"
" inactive: on inactive windows\n"
" nicklist: on windows with nicklist\n"
" other condition: see /help weechat.bar.xxx.conditions and /"
"help eval\n"
" without condition, the bar is always displayed\n"
" without conditions, the bar is always displayed\n"
" position: bottom, top, left or right\n"
" size: size of bar (in chars)\n"
" separator: 1 for using separator (line), 0 or nothing means no "
@ -4252,11 +4253,11 @@ msgid "bar type (root, window, window_active, window_inactive)"
msgstr "tipo da barra (root, window, window_active, window_inactive)"
msgid ""
"condition(s) for displaying bar (for bars of type \"window\"): a simple "
"condition: \"active\", \"inactive\", \"nicklist\" (window must be active/"
"inactive, buffer must have a nicklist), or an expression with condition(s) "
"(see /help eval), like: \"${nicklist} && ${window.win_width} > 100\" (local "
"variables for expression are ${active}, ${inactive} and ${nicklist})"
"conditions to display the bar: a simple condition: \"active\", \"inactive\", "
"\"nicklist\" (window must be active/inactive, buffer must have a nicklist), "
"or an expression with condition(s) (see /help eval), like: \"${nicklist} && "
"${window.win_width} > 100\" (local variables for expression are ${active}, "
"${inactive} and ${nicklist})"
msgstr ""
msgid "bar position (bottom, top, left, right)"

View File

@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-12-21 11:09+0100\n"
"POT-Creation-Date: 2014-12-28 10:50+0100\n"
"PO-Revision-Date: 2014-11-09 16:23+0100\n"
"Last-Translator: Aleksey V Zapparov AKA ixti <ixti@member.fsf.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -1071,10 +1071,10 @@ msgid "manage bars"
msgstr "управление буферами"
msgid ""
"list|listfull|listitems || add <name> <type>[,<condition>] <position> <size> "
"<separator> <item1>[,<item2>...] || default [input|title|status|nicklist] || "
"del <name>|-all || set <name> <option> <value> || hide|show|toggle <name> || "
"scroll <name> <window> <scroll_value>"
"list|listfull|listitems || add <name> <type>[,<conditions>] <position> "
"<size> <separator> <item1>[,<item2>...] || default [input|title|status|"
"nicklist] || del <name>|-all || set <name> <option> <value> || hide|show|"
"toggle <name> || scroll <name> <window> <scroll_value>"
msgstr ""
msgid ""
@ -1085,13 +1085,13 @@ msgid ""
" name: name of bar (must be unique)\n"
" type: root: outside windows,\n"
" window: inside windows, with optional conditions (see below)\n"
" condition: condition(s) for displaying bar (only for type \"window\"):\n"
" conditions: the conditions to display the bar:\n"
" active: on active window\n"
" inactive: on inactive windows\n"
" nicklist: on windows with nicklist\n"
" other condition: see /help weechat.bar.xxx.conditions and /"
"help eval\n"
" without condition, the bar is always displayed\n"
" without conditions, the bar is always displayed\n"
" position: bottom, top, left or right\n"
" size: size of bar (in chars)\n"
" separator: 1 for using separator (line), 0 or nothing means no "
@ -3806,11 +3806,11 @@ msgid "bar type (root, window, window_active, window_inactive)"
msgstr ""
msgid ""
"condition(s) for displaying bar (for bars of type \"window\"): a simple "
"condition: \"active\", \"inactive\", \"nicklist\" (window must be active/"
"inactive, buffer must have a nicklist), or an expression with condition(s) "
"(see /help eval), like: \"${nicklist} && ${window.win_width} > 100\" (local "
"variables for expression are ${active}, ${inactive} and ${nicklist})"
"conditions to display the bar: a simple condition: \"active\", \"inactive\", "
"\"nicklist\" (window must be active/inactive, buffer must have a nicklist), "
"or an expression with condition(s) (see /help eval), like: \"${nicklist} && "
"${window.win_width} > 100\" (local variables for expression are ${active}, "
"${inactive} and ${nicklist})"
msgstr ""
#, fuzzy

View File

@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-12-21 11:09+0100\n"
"POT-Creation-Date: 2014-12-28 10:50+0100\n"
"PO-Revision-Date: 2014-07-25 07:50+0200\n"
"Last-Translator: Hasan Kiran <sunder67@hotmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -943,10 +943,10 @@ msgid "manage bars"
msgstr ""
msgid ""
"list|listfull|listitems || add <name> <type>[,<condition>] <position> <size> "
"<separator> <item1>[,<item2>...] || default [input|title|status|nicklist] || "
"del <name>|-all || set <name> <option> <value> || hide|show|toggle <name> || "
"scroll <name> <window> <scroll_value>"
"list|listfull|listitems || add <name> <type>[,<conditions>] <position> "
"<size> <separator> <item1>[,<item2>...] || default [input|title|status|"
"nicklist] || del <name>|-all || set <name> <option> <value> || hide|show|"
"toggle <name> || scroll <name> <window> <scroll_value>"
msgstr ""
msgid ""
@ -957,13 +957,13 @@ msgid ""
" name: name of bar (must be unique)\n"
" type: root: outside windows,\n"
" window: inside windows, with optional conditions (see below)\n"
" condition: condition(s) for displaying bar (only for type \"window\"):\n"
" conditions: the conditions to display the bar:\n"
" active: on active window\n"
" inactive: on inactive windows\n"
" nicklist: on windows with nicklist\n"
" other condition: see /help weechat.bar.xxx.conditions and /"
"help eval\n"
" without condition, the bar is always displayed\n"
" without conditions, the bar is always displayed\n"
" position: bottom, top, left or right\n"
" size: size of bar (in chars)\n"
" separator: 1 for using separator (line), 0 or nothing means no "
@ -3408,11 +3408,11 @@ msgid "bar type (root, window, window_active, window_inactive)"
msgstr ""
msgid ""
"condition(s) for displaying bar (for bars of type \"window\"): a simple "
"condition: \"active\", \"inactive\", \"nicklist\" (window must be active/"
"inactive, buffer must have a nicklist), or an expression with condition(s) "
"(see /help eval), like: \"${nicklist} && ${window.win_width} > 100\" (local "
"variables for expression are ${active}, ${inactive} and ${nicklist})"
"conditions to display the bar: a simple condition: \"active\", \"inactive\", "
"\"nicklist\" (window must be active/inactive, buffer must have a nicklist), "
"or an expression with condition(s) (see /help eval), like: \"${nicklist} && "
"${window.win_width} > 100\" (local variables for expression are ${active}, "
"${inactive} and ${nicklist})"
msgstr ""
msgid "bar position (bottom, top, left, right)"

View File

@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-12-21 11:09+0100\n"
"POT-Creation-Date: 2014-12-28 10:50+0100\n"
"PO-Revision-Date: 2014-08-16 10:27+0200\n"
"Last-Translator: Sébastien Helleu <flashcode@flashtux.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -947,10 +947,10 @@ msgid "manage bars"
msgstr ""
msgid ""
"list|listfull|listitems || add <name> <type>[,<condition>] <position> <size> "
"<separator> <item1>[,<item2>...] || default [input|title|status|nicklist] || "
"del <name>|-all || set <name> <option> <value> || hide|show|toggle <name> || "
"scroll <name> <window> <scroll_value>"
"list|listfull|listitems || add <name> <type>[,<conditions>] <position> "
"<size> <separator> <item1>[,<item2>...] || default [input|title|status|"
"nicklist] || del <name>|-all || set <name> <option> <value> || hide|show|"
"toggle <name> || scroll <name> <window> <scroll_value>"
msgstr ""
msgid ""
@ -961,13 +961,13 @@ msgid ""
" name: name of bar (must be unique)\n"
" type: root: outside windows,\n"
" window: inside windows, with optional conditions (see below)\n"
" condition: condition(s) for displaying bar (only for type \"window\"):\n"
" conditions: the conditions to display the bar:\n"
" active: on active window\n"
" inactive: on inactive windows\n"
" nicklist: on windows with nicklist\n"
" other condition: see /help weechat.bar.xxx.conditions and /"
"help eval\n"
" without condition, the bar is always displayed\n"
" without conditions, the bar is always displayed\n"
" position: bottom, top, left or right\n"
" size: size of bar (in chars)\n"
" separator: 1 for using separator (line), 0 or nothing means no "
@ -3403,11 +3403,11 @@ msgid "bar type (root, window, window_active, window_inactive)"
msgstr ""
msgid ""
"condition(s) for displaying bar (for bars of type \"window\"): a simple "
"condition: \"active\", \"inactive\", \"nicklist\" (window must be active/"
"inactive, buffer must have a nicklist), or an expression with condition(s) "
"(see /help eval), like: \"${nicklist} && ${window.win_width} > 100\" (local "
"variables for expression are ${active}, ${inactive} and ${nicklist})"
"conditions to display the bar: a simple condition: \"active\", \"inactive\", "
"\"nicklist\" (window must be active/inactive, buffer must have a nicklist), "
"or an expression with condition(s) (see /help eval), like: \"${nicklist} && "
"${window.win_width} > 100\" (local variables for expression are ${active}, "
"${inactive} and ${nicklist})"
msgstr ""
msgid "bar position (bottom, top, left, right)"

View File

@ -6810,7 +6810,7 @@ command_init ()
NULL, "bar",
N_("manage bars"),
N_("list|listfull|listitems"
" || add <name> <type>[,<condition>] <position> <size> <separator> "
" || add <name> <type>[,<conditions>] <position> <size> <separator> "
"<item1>[,<item2>...]"
" || default [input|title|status|nicklist]"
" || del <name>|-all"
@ -6825,14 +6825,13 @@ command_init ()
" type: root: outside windows,\n"
" window: inside windows, with optional conditions "
"(see below)\n"
" condition: condition(s) for displaying bar (only for type "
"\"window\"):\n"
" conditions: the conditions to display the bar:\n"
" active: on active window\n"
" inactive: on inactive windows\n"
" nicklist: on windows with nicklist\n"
" other condition: see /help weechat.bar.xxx.conditions "
"and /help eval\n"
" without condition, the bar is always displayed\n"
" without conditions, the bar is always displayed\n"
" position: bottom, top, left or right\n"
" size: size of bar (in chars)\n"
" separator: 1 for using separator (line), 0 or nothing means no "

View File

@ -44,6 +44,10 @@
/*
* Initializes Curses windows for bar window.
*
* Returns:
* 1: OK
* 0: error
*/
int
@ -51,6 +55,9 @@ gui_bar_window_objects_init (struct t_gui_bar_window *bar_window)
{
struct t_gui_bar_window_curses_objects *new_objects;
if (!bar_window)
return 0;
new_objects = malloc (sizeof (*new_objects));
if (new_objects)
{
@ -69,6 +76,9 @@ gui_bar_window_objects_init (struct t_gui_bar_window *bar_window)
void
gui_bar_window_objects_free (struct t_gui_bar_window *bar_window)
{
if (!bar_window)
return;
if (GUI_BAR_WINDOW_OBJECTS(bar_window)->win_bar)
{
delwin (GUI_BAR_WINDOW_OBJECTS(bar_window)->win_bar);
@ -88,8 +98,11 @@ gui_bar_window_objects_free (struct t_gui_bar_window *bar_window)
void
gui_bar_window_create_win (struct t_gui_bar_window *bar_window)
{
if (CONFIG_BOOLEAN(bar_window->bar->options[GUI_BAR_OPTION_HIDDEN]))
if (!bar_window
|| CONFIG_BOOLEAN(bar_window->bar->options[GUI_BAR_OPTION_HIDDEN]))
{
return;
}
if (GUI_BAR_WINDOW_OBJECTS(bar_window)->win_bar)
{
@ -160,7 +173,7 @@ gui_bar_window_print_string (struct t_gui_bar_window *bar_window,
int x_with_hidden, size_on_screen, low_char, hidden;
char utf_char[16], *next_char, *output;
if (!string || !string[0])
if (!bar_window || !string || !string[0])
return 1;
wmove (GUI_BAR_WINDOW_OBJECTS(bar_window)->win_bar, *y, *x);
@ -417,7 +430,7 @@ gui_bar_window_draw (struct t_gui_bar_window *bar_window,
if (gui_window_bare_display)
return;
if ((bar_window->x < 0) || (bar_window->y < 0))
if (!bar_window || (bar_window->x < 0) || (bar_window->y < 0))
return;
if (!str_start_input[0])

View File

@ -1226,6 +1226,7 @@ gui_window_switch_to_buffer (struct t_gui_window *window,
if (!weechat_upgrading && (old_buffer != buffer))
gui_hotlist_remove_buffer (buffer, 0);
/* remove unused bars and add missing bars in window */
gui_bar_window_remove_unused_bars (window);
gui_bar_window_add_missing_bars (window);
@ -1304,6 +1305,8 @@ gui_window_switch (struct t_gui_window *window)
old_window = gui_current_window;
gui_current_window = window;
/* remove unused bars and add missing bars in window */
changes = gui_bar_window_remove_unused_bars (old_window)
|| gui_bar_window_add_missing_bars (old_window);
if (changes)
@ -1712,9 +1715,14 @@ gui_window_refresh_windows ()
old_current_window = gui_current_window;
/* remove unused bars and add missing root bars */
gui_bar_window_remove_unused_bars (NULL);
gui_bar_window_add_missing_bars (NULL);
for (ptr_bar = gui_bars; ptr_bar; ptr_bar = ptr_bar->next_bar)
{
if ((CONFIG_INTEGER(ptr_bar->options[GUI_BAR_OPTION_TYPE]) == GUI_BAR_TYPE_ROOT)
&& ptr_bar->bar_window
&& !CONFIG_BOOLEAN(ptr_bar->options[GUI_BAR_OPTION_HIDDEN]))
{
gui_bar_window_calculate_pos_size (ptr_bar->bar_window, NULL);

View File

@ -195,6 +195,9 @@ gui_bar_item_used_in_bar (struct t_gui_bar *bar, const char *item_name,
{
int i, j, length;
if (!bar || !item_name)
return 0;
length = strlen (item_name);
for (i = 0; i < bar->items_count; i++)
@ -238,6 +241,9 @@ gui_bar_item_used_in_at_least_one_bar (const char *item_name, int partial_name,
struct t_gui_bar *ptr_bar;
int i, j, length;
if (!item_name)
return 0;
length = strlen (item_name);
for (ptr_bar = gui_bars; ptr_bar; ptr_bar = ptr_bar->next_bar)
@ -371,7 +377,7 @@ gui_bar_item_get_value (struct t_gui_bar *bar, struct t_gui_window *window,
struct t_gui_buffer *buffer;
struct t_gui_bar_item *ptr_item;
if (!bar->items_array[item][subitem])
if (!bar || !bar->items_array[item][subitem])
return NULL;
buffer = (window) ?
@ -569,10 +575,15 @@ gui_bar_item_update (const char *item_name)
struct t_gui_bar *ptr_bar;
struct t_gui_window *ptr_window;
struct t_gui_bar_window *ptr_bar_window;
int i, j;
int i, j, check_bar_conditions, condition_ok;
if (!item_name)
return;
for (ptr_bar = gui_bars; ptr_bar; ptr_bar = ptr_bar->next_bar)
{
check_bar_conditions = 0;
for (i = 0; i < ptr_bar->items_count; i++)
{
for (j = 0; j < ptr_bar->items_subcount[i]; j++)
@ -580,9 +591,15 @@ gui_bar_item_update (const char *item_name)
if (ptr_bar->items_name[i][j]
&& (strcmp (ptr_bar->items_name[i][j], item_name) == 0))
{
if (ptr_bar->bar_window)
if (!CONFIG_BOOLEAN(ptr_bar->options[GUI_BAR_OPTION_HIDDEN]))
check_bar_conditions = 1;
if (CONFIG_INTEGER(ptr_bar->options[GUI_BAR_OPTION_TYPE]) == GUI_BAR_TYPE_ROOT)
{
ptr_bar->bar_window->items_refresh_needed[i][j] = 1;
if (ptr_bar->bar_window)
{
ptr_bar->bar_window->items_refresh_needed[i][j] = 1;
}
}
else
{
@ -604,6 +621,39 @@ gui_bar_item_update (const char *item_name)
}
}
}
/*
* evaluate bar conditions (if needed) to check if bar must be toggled
* (hidden if shown, or shown if hidden)
*/
if (check_bar_conditions)
{
if (CONFIG_INTEGER(ptr_bar->options[GUI_BAR_OPTION_TYPE]) == GUI_BAR_TYPE_ROOT)
{
condition_ok = gui_bar_check_conditions (ptr_bar, NULL);
if ((condition_ok && !ptr_bar->bar_window)
|| (!condition_ok && ptr_bar->bar_window))
{
gui_window_ask_refresh (1);
}
}
else
{
for (ptr_window = gui_windows; ptr_window;
ptr_window = ptr_window->next_window)
{
condition_ok = gui_bar_check_conditions (ptr_bar,
ptr_window);
ptr_bar_window = gui_bar_window_search_bar (ptr_window,
ptr_bar);
if ((condition_ok && !ptr_bar_window)
|| (!condition_ok && ptr_bar_window))
{
gui_window_ask_refresh (1);
}
}
}
}
}
}
@ -614,6 +664,9 @@ gui_bar_item_update (const char *item_name)
void
gui_bar_item_free (struct t_gui_bar_item *item)
{
if (!item)
return;
/* force refresh of bars displaying this bar item */
gui_bar_item_update (item->name);

View File

@ -96,6 +96,9 @@ gui_bar_window_search_bar (struct t_gui_window *window, struct t_gui_bar *bar)
{
struct t_gui_bar_window *ptr_bar_win;
if (!window)
return NULL;
for (ptr_bar_win = window->bar_windows; ptr_bar_win;
ptr_bar_win = ptr_bar_win->next_bar_window)
{
@ -283,6 +286,10 @@ gui_bar_window_get_size (struct t_gui_bar *bar, struct t_gui_window *window,
int total_size;
total_size = 0;
if (!window)
return total_size;
for (ptr_bar_window = window->bar_windows; ptr_bar_window;
ptr_bar_window = ptr_bar_window->next_bar_window)
{
@ -313,6 +320,7 @@ gui_bar_window_get_size (struct t_gui_bar *bar, struct t_gui_window *window,
}
}
}
return total_size;
}
@ -327,8 +335,11 @@ gui_bar_window_calculate_pos_size (struct t_gui_bar_window *bar_window,
int x1, y1, x2, y2;
int add_bottom, add_top, add_left, add_right;
if (CONFIG_BOOLEAN(bar_window->bar->options[GUI_BAR_OPTION_HIDDEN]))
if (!bar_window
|| CONFIG_BOOLEAN(bar_window->bar->options[GUI_BAR_OPTION_HIDDEN]))
{
return;
}
if (window)
{
@ -405,6 +416,9 @@ gui_bar_window_find_pos (struct t_gui_bar *bar, struct t_gui_window *window)
{
struct t_gui_bar_window *ptr_bar_window;
if (!window)
return NULL;
for (ptr_bar_window = window->bar_windows; ptr_bar_window;
ptr_bar_window = ptr_bar_window->next_bar_window)
{
@ -426,6 +440,9 @@ gui_bar_window_content_alloc (struct t_gui_bar_window *bar_window)
{
int i, j;
if (!bar_window)
return;
bar_window->items_count = bar_window->bar->items_count;
bar_window->items_subcount = NULL;
bar_window->items_content = NULL;
@ -535,6 +552,9 @@ gui_bar_window_content_free (struct t_gui_bar_window *bar_window)
{
int i, j;
if (!bar_window)
return;
if (bar_window->items_content)
{
for (i = 0; i < bar_window->items_count; i++)
@ -571,6 +591,9 @@ gui_bar_window_content_build_item (struct t_gui_bar_window *bar_window,
struct t_gui_window *window,
int index_item, int index_subitem)
{
if (!bar_window)
return;
if (bar_window->items_content)
{
if (bar_window->items_content[index_item][index_subitem])
@ -605,6 +628,9 @@ gui_bar_window_content_build (struct t_gui_bar_window *bar_window,
{
int i, j;
if (!bar_window)
return;
gui_bar_window_content_free (bar_window);
gui_bar_window_content_alloc (bar_window);
@ -626,6 +652,9 @@ gui_bar_window_content_get (struct t_gui_bar_window *bar_window,
struct t_gui_window *window,
int index_item, int index_subitem)
{
if (!bar_window)
return NULL;
/* rebuild content if refresh is needed */
if (bar_window->items_refresh_needed[index_item][index_subitem])
{
@ -1075,7 +1104,7 @@ gui_bar_window_new (struct t_gui_bar *bar, struct t_gui_window *window)
if (window)
{
if ((CONFIG_INTEGER(bar->options[GUI_BAR_OPTION_TYPE]) == GUI_BAR_TYPE_WINDOW)
&& (!gui_bar_check_conditions_for_window (bar, window)))
&& (!gui_bar_check_conditions (bar, window)))
return;
}
@ -1268,6 +1297,11 @@ gui_bar_window_free (struct t_gui_bar_window *bar_window,
if (window->last_bar_window == bar_window)
window->last_bar_window = bar_window->prev_bar_window;
}
else
{
if (bar_window->bar)
(bar_window->bar)->bar_window = NULL;
}
/* free data */
gui_bar_window_content_free (bar_window);
@ -1281,7 +1315,10 @@ gui_bar_window_free (struct t_gui_bar_window *bar_window,
}
/*
* Removes unused bars for a window.
* Removes unused bars, according to bars conditions.
*
* If window is NULL, unused root bars are removed.
* If window is not NULL, unused window bars in this window are removed.
*
* Returns:
* 1: at least one bar was removed
@ -1293,29 +1330,51 @@ gui_bar_window_remove_unused_bars (struct t_gui_window *window)
{
int rc;
struct t_gui_bar_window *ptr_bar_win, *next_bar_win;
struct t_gui_bar *ptr_bar;
rc = 0;
ptr_bar_win = window->bar_windows;
while (ptr_bar_win)
if (window)
{
next_bar_win = ptr_bar_win->next_bar_window;
if ((CONFIG_INTEGER(ptr_bar_win->bar->options[GUI_BAR_OPTION_TYPE]) == GUI_BAR_TYPE_WINDOW)
&& (!gui_bar_check_conditions_for_window (ptr_bar_win->bar, window)))
/* remove unused window bars in window */
ptr_bar_win = window->bar_windows;
while (ptr_bar_win)
{
gui_bar_window_free (ptr_bar_win, window);
rc = 1;
}
next_bar_win = ptr_bar_win->next_bar_window;
ptr_bar_win = next_bar_win;
if ((CONFIG_INTEGER(ptr_bar_win->bar->options[GUI_BAR_OPTION_TYPE]) == GUI_BAR_TYPE_WINDOW)
&& (!gui_bar_check_conditions (ptr_bar_win->bar, window)))
{
gui_bar_window_free (ptr_bar_win, window);
rc = 1;
}
ptr_bar_win = next_bar_win;
}
}
else
{
/* remove unused root bars */
for (ptr_bar = gui_bars; ptr_bar; ptr_bar = ptr_bar->next_bar)
{
if ((CONFIG_INTEGER(ptr_bar->options[GUI_BAR_OPTION_TYPE]) == GUI_BAR_TYPE_ROOT)
&& ptr_bar->bar_window
&& (!gui_bar_check_conditions (ptr_bar, NULL)))
{
gui_bar_window_free (ptr_bar->bar_window, NULL);
rc = 1;
}
}
}
return rc;
}
/*
* Adds missing bars for a window.
* Adds missing bars, according to bars conditions.
*
* If window is NULL, missing root bars are added.
* If window is not NULL, missing window bars in this window are added.
*
* Returns:
* 1: at least one bar was created
@ -1330,18 +1389,34 @@ gui_bar_window_add_missing_bars (struct t_gui_window *window)
rc = 0;
for (ptr_bar = gui_bars; ptr_bar; ptr_bar = ptr_bar->next_bar)
if (window)
{
if ((CONFIG_INTEGER(ptr_bar->options[GUI_BAR_OPTION_TYPE]) == GUI_BAR_TYPE_WINDOW)
&& gui_bar_check_conditions_for_window (ptr_bar, window))
/* add missing window bars in window */
for (ptr_bar = gui_bars; ptr_bar; ptr_bar = ptr_bar->next_bar)
{
if (!gui_bar_window_search_bar (window, ptr_bar))
if ((CONFIG_INTEGER(ptr_bar->options[GUI_BAR_OPTION_TYPE]) == GUI_BAR_TYPE_WINDOW)
&& (!gui_bar_window_search_bar (window, ptr_bar))
&& (gui_bar_check_conditions (ptr_bar, window)))
{
gui_bar_window_new (ptr_bar, window);
rc = 1;
}
}
}
else
{
/* add missing root bars */
for (ptr_bar = gui_bars; ptr_bar; ptr_bar = ptr_bar->next_bar)
{
if ((CONFIG_INTEGER(ptr_bar->options[GUI_BAR_OPTION_TYPE]) == GUI_BAR_TYPE_ROOT)
&& !ptr_bar->bar_window
&& (gui_bar_check_conditions (ptr_bar, NULL)))
{
gui_bar_window_new (ptr_bar, NULL);
rc = 1;
}
}
}
return rc;
}

View File

@ -369,20 +369,25 @@ gui_bar_insert (struct t_gui_bar *bar)
/*
* Checks if bar must be displayed in window according to conditions.
*
* If window is NULL (case of root bars), the current window is used.
*
* Returns:
* 1: bar must be displayed
* 0: bar must not be displayed
*/
int
gui_bar_check_conditions_for_window (struct t_gui_bar *bar,
struct t_gui_window *window)
gui_bar_check_conditions (struct t_gui_bar *bar,
struct t_gui_window *window)
{
int rc;
char str_modifier[256], str_window[128], *str_displayed, *result;
const char *conditions;
struct t_hashtable *pointers, *extra_vars, *options;
if (!window)
window = gui_current_window;
/* check bar condition(s) */
conditions = CONFIG_STRING(bar->options[GUI_BAR_OPTION_CONDITIONS]);
if (string_strcasecmp (conditions, "active") == 0)
@ -490,7 +495,8 @@ gui_bar_root_get_size (struct t_gui_bar *bar, enum t_gui_bar_position position)
if (bar && (ptr_bar == bar))
return total_size;
if (!CONFIG_BOOLEAN(ptr_bar->options[GUI_BAR_OPTION_HIDDEN]))
if (!CONFIG_BOOLEAN(ptr_bar->options[GUI_BAR_OPTION_HIDDEN])
&& ptr_bar->bar_window)
{
if ((CONFIG_INTEGER(ptr_bar->options[GUI_BAR_OPTION_TYPE]) == GUI_BAR_TYPE_ROOT)
&& (CONFIG_INTEGER(ptr_bar->options[GUI_BAR_OPTION_POSITION]) == (int)position))
@ -858,7 +864,6 @@ gui_bar_config_change_hidden (void *data, struct t_config_option *option)
if (CONFIG_BOOLEAN(ptr_bar->options[GUI_BAR_OPTION_HIDDEN]))
{
gui_bar_window_free (ptr_bar->bar_window, NULL);
ptr_bar->bar_window = NULL;
}
else
{
@ -1404,12 +1409,12 @@ gui_bar_create_option (const char *bar_name, int index_option, const char *value
ptr_option = config_file_new_option (
weechat_config_file, weechat_config_section_bar,
option_name, "string",
N_("condition(s) for displaying bar (for bars of type "
"\"window\"): a simple condition: \"active\", \"inactive\", "
"\"nicklist\" (window must be active/inactive, buffer must "
"have a nicklist), or an expression with condition(s) (see "
"/help eval), like: \"${nicklist} && ${window.win_width} > "
"100\" (local variables for expression are ${active}, "
N_("conditions to display the bar: a simple condition: "
"\"active\", \"inactive\", \"nicklist\" (window must be "
"active/inactive, buffer must have a nicklist), or an "
"expression with condition(s) (see /help eval), "
"like: \"${nicklist} && ${window.win_width} > 100\" "
"(local variables for expression are ${active}, "
"${inactive} and ${nicklist})"),
NULL, 0, 0, value, NULL, 0,
NULL, NULL, &gui_bar_config_change_conditions, NULL, NULL, NULL);
@ -2231,7 +2236,6 @@ gui_bar_free_bar_windows (struct t_gui_bar *bar)
if (bar->bar_window)
{
gui_bar_window_free (bar->bar_window, NULL);
bar->bar_window = NULL;
}
else
{

View File

@ -116,8 +116,8 @@ extern int gui_bar_search_option (const char *option_name);
extern int gui_bar_search_type (const char *type);
extern int gui_bar_search_position (const char *position);
extern enum t_gui_bar_filling gui_bar_get_filling (struct t_gui_bar *bar);
extern int gui_bar_check_conditions_for_window (struct t_gui_bar *bar,
struct t_gui_window *window);
extern int gui_bar_check_conditions (struct t_gui_bar *bar,
struct t_gui_window *window);
extern int gui_bar_root_get_size (struct t_gui_bar *bar,
enum t_gui_bar_position position);
extern struct t_gui_bar *gui_bar_search (const char *name);