relay: add messages "_buffer_hidden" and "_buffer_unhidden"

This commit is contained in:
Sébastien Helleu 2014-04-05 16:53:48 +02:00
parent c7ce05d5ec
commit 836ed0bbfe
5 changed files with 253 additions and 6 deletions

View File

@ -118,6 +118,7 @@ http://weechat.org/files/releasenotes/ReleaseNotes-devel.html[release notes]
* lua: fix interpreter used after unload of a script
* perl: fix context used after unload of a script
* python: fix interpreter used after unload of a script
* relay: add messages "_buffer_hidden" and "_buffer_unhidden"
* relay: fix crash on /upgrade received from a client (weechat protocol)
* relay: add info "relay_client_count" with optional status name as argument
* relay: add signals "relay_client_xxx" for client status changes (closes #2)

View File

@ -299,7 +299,7 @@ Arguments:
* 'options': one of following keywords, separated by commas (default is
'buffers,upgrade,buffer,nicklist' for "*" and 'buffer,nicklist' for a buffer):
** 'buffers': receive signals about buffers (opened/closed, moved, renamed,
merged/unmerged); this can be used only with name "*"
merged/unmerged, hidden/unhidden); this can be used only with name "*"
_(WeeChat ≥ 0.4.1)_
** 'upgrade': receive signals about WeeChat upgrade (upgrade, upgrade ended);
this can be used only with name "*"
@ -527,6 +527,12 @@ WeeChat reserved identifiers:
| _buffer_unmerged | buffers / buffer | hdata: buffer |
Buffer unmerged | Unmerge buffer
| _buffer_hidden | buffers / buffer | hdata: buffer |
Buffer hidden | Hide buffer
| _buffer_unhidden | buffers / buffer | hdata: buffer |
Buffer unhidden | Unhide buffer
| _buffer_renamed | buffers / buffer | hdata: buffer |
Buffer renamed | Rename buffer
@ -709,6 +715,72 @@ hda:
next_buffer: '0x0'
----
[[message_buffer_hidden]]
==== _buffer_hidden
This message is sent to the client when the signal "buffer_hidden" is sent by
WeeChat.
Data sent as hdata:
[width="100%",cols="3m,2,10",options="header"]
|===
| Name | Type | Description
| number | integer | Buffer number (≥ 1)
| full_name | string | Full name (example: 'irc.freenode.#weechat')
| prev_buffer | pointer | Pointer to previous buffer
| next_buffer | pointer | Pointer to next buffer
|===
Example: buffer 'irc.freenode.#weechat' hidden:
[source,python]
----
id: '_buffer_hidden'
hda:
keys: {'number': 'int', 'full_name': 'str', 'prev_buffer': 'ptr', 'next_buffer': 'ptr'}
path: ['buffer']
item 1:
__path: ['0x4db4c00']
number: 2
full_name: 'irc.freenode.#weechat'
prev_buffer: '0x4cef9b0'
next_buffer: '0x0'
----
[[message_buffer_unhidden]]
==== _buffer_unhidden
This message is sent to the client when the signal "buffer_unhidden" is sent by
WeeChat.
Data sent as hdata:
[width="100%",cols="3m,2,10",options="header"]
|===
| Name | Type | Description
| number | integer | Buffer number (≥ 1)
| full_name | string | Full name (example: 'irc.freenode.#weechat')
| prev_buffer | pointer | Pointer to previous buffer
| next_buffer | pointer | Pointer to next buffer
|===
Example: buffer 'irc.freenode.#weechat' unhidden:
[source,python]
----
id: '_buffer_unhidden'
hda:
keys: {'number': 'int', 'full_name': 'str', 'prev_buffer': 'ptr', 'next_buffer': 'ptr'}
path: ['buffer']
item 1:
__path: ['0x4db4c00']
number: 3
full_name: 'irc.freenode.#weechat'
prev_buffer: '0x4cef9b0'
next_buffer: '0x0'
----
[[message_buffer_renamed]]
==== _buffer_renamed

View File

@ -309,8 +309,8 @@ Paramètres :
'buffers,upgrade,buffer,nicklist' pour "*" et 'buffer,nicklist' pour un
tampon) :
** 'buffers' : recevoir les signaux à propos des tampons (ouverts/fermés,
déplacés, renommés, mélangés); peut être utilisé seulement avec "*"
_(WeeChat ≥ 0.4.1)_
déplacés, renommés, mélangés, masqués/démasqués); peut être utilisé seulement
avec "*" _(WeeChat ≥ 0.4.1)_
** 'upgrade' : recevoir les signaux à propos de la mise à jour de WeeChat
(mise à jour, fin de mise à jour); peut être utilisé seulement avec "*"
_(WeeChat ≥ 0.4.1)_
@ -545,6 +545,12 @@ Les identifiants réservés par WeeChat :
| _buffer_unmerged | buffers / buffer | hdata : buffer |
Tampon sorti du mélange | Sortir le tampon du mélange
| _buffer_hidden | buffers / buffer | hdata : buffer |
Tampon masqué | Masquer le le tampon
| _buffer_unmerged | buffers / buffer | hdata : buffer |
Tampon démasqué | Démasquer le tampon
| _buffer_renamed | buffers / buffer | hdata : buffer |
Tampon renommé | Renommer le tampon
@ -727,6 +733,72 @@ hda:
next_buffer: '0x0'
----
[[message_buffer_hidden]]
==== _buffer_hidden
Ce message est envoyé au client lorsque le signal "buffer_hidden" est envoyé par
WeeChat.
Données envoyées dans le hdata :
[width="100%",cols="3m,2,10",options="header"]
|===
| Nom | Type | Description
| number | entier | Numéro de tampon (≥ 1)
| full_name | chaîne | Nom complet (exemple : 'irc.freenode.#weechat')
| prev_buffer | pointeur | Pointeur vers le tampon précédent
| next_buffer | pointeur | Pointeur vers le tampon suivant
|===
Exemple : tampon 'irc.freenode.#weechat' masqué :
[source,python]
----
id: '_buffer_hidden'
hda:
keys: {'number': 'int', 'full_name': 'str', 'prev_buffer': 'ptr', 'next_buffer': 'ptr'}
path: ['buffer']
item 1:
__path: ['0x4db4c00']
number: 2
full_name: 'irc.freenode.#weechat'
prev_buffer: '0x4cef9b0'
next_buffer: '0x0'
----
[[message_buffer_unhidden]]
==== _buffer_unhidden
Ce message est envoyé au client lorsque le signal "buffer_unhidden" est envoyé
par WeeChat.
Données envoyées dans le hdata :
[width="100%",cols="3m,2,10",options="header"]
|===
| Nom | Type | Description
| number | entier | Numéro de tampon (≥ 1)
| full_name | chaîne | Nom complet (exemple : 'irc.freenode.#weechat')
| prev_buffer | pointeur | Pointeur vers le tampon précédent
| next_buffer | pointeur | Pointeur vers le tampon suivant
|===
Exemple : tampon 'irc.freenode.#weechat' démasqué :
[source,python]
----
id: '_buffer_unhidden'
hda:
keys: {'number': 'int', 'full_name': 'str', 'prev_buffer': 'ptr', 'next_buffer': 'ptr'}
path: ['buffer']
item 1:
__path: ['0x4db4c00']
number: 3
full_name: 'irc.freenode.#weechat'
prev_buffer: '0x4cef9b0'
next_buffer: '0x0'
----
[[message_buffer_renamed]]
==== _buffer_renamed

View File

@ -299,9 +299,10 @@ sync [<buffer>[,<buffer>...] <option>[,<option>...]]
全てのバッファを指定するには "*" を使ってください
* 'options': 以下に挙げるキーワード、コンマ区切り ("*" に対するデフォルトは
'buffers,upgrade,buffer,nicklist'、バッファに対するデフォルトは 'buffer,nicklist'):
** 'buffers': バッファに関するシグナルを受信 (バッファのオープン/クローズ、移動、リネーム、マージ/アンマージ);
名前が "*" のバッファに対してのみ利用可能
_(WeeChat バージョン 0.4.1 以上で利用可)_
// TRANSLATION MISSING
** 'buffers': receive signals about buffers (opened/closed, moved, renamed,
merged/unmerged, hidden/unhidden); this can be used only with name "*"
_(WeeChat ≥ 0.4.1)_
** 'upgrade': WeeChat アップグレードに関するシグナルを受信 (アップグレード、アップグレードの終了);
名前が "*" のバッファに対してのみ利用可能
_(WeeChat バージョン 0.4.1 以上で利用可)_
@ -528,6 +529,14 @@ WeeChat の予約識別子:
| _buffer_unmerged | buffers / buffer | hdata: buffer |
バッファのアンマージ | バッファをアンマージ
// TRANSLATION MISSING
| _buffer_hidden | buffers / buffer | hdata: buffer |
Buffer hidden | Hide buffer
// TRANSLATION MISSING
| _buffer_unhidden | buffers / buffer | hdata: buffer |
Buffer unhidden | Unhide buffer
| _buffer_renamed | buffers / buffer | hdata: buffer |
バッファのリネーム | バッファをリネーム
@ -710,6 +719,74 @@ hda:
next_buffer: '0x0'
----
[[message_buffer_hidden]]
==== _buffer_hidden
このメッセージは WeeChat が "buffer_hidden"
シグナルを送信する際にクライアントに送られます。
hdata として送られるデータ:
[width="100%",cols="3m,2,10",options="header"]
|===
| 名前 | 型 | 説明
| number | integer | バッファ番号 (≥ 1)
| full_name | string | 完全な名前 (例: 'irc.freenode.#weechat')
| prev_buffer | pointer | 前のバッファへのポインタ
| next_buffer | pointer | 次のバッファへのポインタ
|===
// TRANSLATION MISSING
Example: buffer 'irc.freenode.#weechat' hidden:
[source,python]
----
id: '_buffer_hidden'
hda:
keys: {'number': 'int', 'full_name': 'str', 'prev_buffer': 'ptr', 'next_buffer': 'ptr'}
path: ['buffer']
item 1:
__path: ['0x4db4c00']
number: 2
full_name: 'irc.freenode.#weechat'
prev_buffer: '0x4cef9b0'
next_buffer: '0x0'
----
[[message_buffer_unhidden]]
==== _buffer_unhidden
このメッセージは WeeChat が "buffer_unhidden"
シグナルを送信する際にクライアントに送られます。
hdata として送られるデータ:
[width="100%",cols="3m,2,10",options="header"]
|===
| 名前 | 型 | 説明
| number | integer | バッファ番号 (≥ 1)
| full_name | string | 完全な名前 (例: 'irc.freenode.#weechat')
| prev_buffer | pointer | 前のバッファへのポインタ
| next_buffer | pointer | 次のバッファへのポインタ
|===
// TRANSLATION MISSING
Example: buffer 'irc.freenode.#weechat' unhidden:
[source,python]
----
id: '_buffer_unhidden'
hda:
keys: {'number': 'int', 'full_name': 'str', 'prev_buffer': 'ptr', 'next_buffer': 'ptr'}
path: ['buffer']
item 1:
__path: ['0x4db4c00']
number: 3
full_name: 'irc.freenode.#weechat'
prev_buffer: '0x4cef9b0'
next_buffer: '0x0'
----
[[message_buffer_renamed]]
==== _buffer_renamed

View File

@ -522,6 +522,31 @@ relay_weechat_protocol_signal_buffer_cb (void *data, const char *signal,
}
}
}
else if ((strcmp (signal, "buffer_hidden") == 0)
|| (strcmp (signal, "buffer_unhidden") == 0))
{
ptr_buffer = (struct t_gui_buffer *)signal_data;
if (!ptr_buffer)
return WEECHAT_RC_OK;
/* send signal only if sync with flag "buffers" or "buffer" */
if (relay_weechat_protocol_is_sync (ptr_client, ptr_buffer,
RELAY_WEECHAT_PROTOCOL_SYNC_BUFFERS |
RELAY_WEECHAT_PROTOCOL_SYNC_BUFFER))
{
msg = relay_weechat_msg_new (str_signal);
if (msg)
{
snprintf (cmd_hdata, sizeof (cmd_hdata),
"buffer:0x%lx", (long unsigned int)ptr_buffer);
relay_weechat_msg_add_hdata (msg, cmd_hdata,
"number,full_name,"
"prev_buffer,next_buffer");
relay_weechat_msg_send (ptr_client, msg);
relay_weechat_msg_free (msg);
}
}
}
else if (strcmp (signal, "buffer_renamed") == 0)
{
ptr_buffer = (struct t_gui_buffer *)signal_data;