diff options
Diffstat (limited to 'doc/sr/weechat_plugin_api.sr.adoc')
-rw-r--r-- | doc/sr/weechat_plugin_api.sr.adoc | 129 |
1 files changed, 129 insertions, 0 deletions
diff --git a/doc/sr/weechat_plugin_api.sr.adoc b/doc/sr/weechat_plugin_api.sr.adoc index 467aec068..7367fb7ea 100644 --- a/doc/sr/weechat_plugin_api.sr.adoc +++ b/doc/sr/weechat_plugin_api.sr.adoc @@ -12124,6 +12124,13 @@ _Ажурирано у верзији 1.5._ Отвара нови бафер. +// TRANSLATION MISSING +[NOTE] +If you want to immediately set buffer properties (buffer type, local variables, +key bindings, etc.), then better use the function <<_buffer_new_props,buffer_new_props>> +which sets these properties during the buffer creation, before sending signal +<<hook_signal_buffer_opened,buffer_opened>>. + Прототип: [source,c] @@ -12214,6 +12221,128 @@ def my_close_cb(data, buffer): buffer = weechat.buffer_new("my_buffer", "my_input_cb", "", "my_close_cb", "") ---- +==== buffer_new_props + +_WeeChat ≥ 3.5._ + +// TRANSLATION MISSING +Open a new buffer and apply properties. + +Прототип: + +[source,c] +---- +struct t_gui_buffer *weechat_buffer_new_props (const char *name, + struct t_hashtable *properties, + int (*input_callback)(const void *pointer, + void *data, + struct t_gui_buffer *buffer, + const char *input_data), + const void *input_callback_pointer, + void *input_callback_data, + int (*close_callback)(const void *pointer, + void *data, + struct t_gui_buffer *buffer), + const void *close_callback_pointer, + void *close_callback_data); +---- + +Аргументи: + +* _name_: име бафера (мора бити јединствено за додатак) +// TRANSLATION MISSING +* _properties_: properties to apply + (see function <<_buffer_set,buffer_set>> for the allowed properties) +* _input_callback_: функција која се позива када се унесе текст уноса за бафер, аргументи и повратна вредност су: +** _const void *pointer_: показивач +** _void *data_: показивач +** _struct t_gui_buffer *buffer_: показивач на бафер +** _const char *input_data_: подаци уноса +** повратна вредност: +*** _WEECHAT_RC_OK_ +*** _WEECHAT_RC_ERROR_ +* _input_callback_pointer_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat +* _input_callback_data_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat; ако није NULL, алоцирала га је malloc (или нека слична функција) и аутоматски се ослобађа када се бафер затвори +* _close_callback_: функција која се позива када се затвори бафер, аргументи и повратна вредност су: +** _const void *pointer_: показивач +** _void *data_: показивач +** _struct t_gui_buffer *buffer_: показивач на бафер +** повратна вредност: +*** _WEECHAT_RC_OK_ +*** _WEECHAT_RC_ERROR_ +* _close_callback_pointer_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat +* _close_callback_data_: показивач који се прослеђује функцији повратног позива када је позове програм WeeChat; ако није NULL, алоцирала га је malloc (или нека слична функција) и аутоматски се ослобађа када се затвори бафер + +Повратна вредност: + +* показивач на нови бафер, NULL у случају грешке + +C пример: + +// TRANSLATION MISSING +[source,c] +---- +int +my_input_cb (const void *pointer, void *data, + struct t_gui_buffer *buffer, const char *input_data) +{ + weechat_printf (buffer, "Текст: %s", input_data); + return WEECHAT_RC_OK; +} + +int +my_close_cb (const void *pointer, void *data, struct t_gui_buffer *buffer) +{ + weechat_printf (NULL, "Затвориће се бафер ’%s’!", + weechat_buffer_get_string (buffer, "name")); + return WEECHAT_RC_OK; +} + +struct t_hashtable *properties = weechat_hashtable_new (8, + WEECHAT_HASHTABLE_STRING, + WEECHAT_HASHTABLE_STRING, + NULL, + NULL); +/* buffer with free content */ +weechat_hashtable_set (properties, "type", "free"); +/* no logging on this buffer */ +weechat_hashtable_set (properties, "localvar_set_no_log", "1"); +/* bind key alt-c on this buffer */ +weechat_hashtable_set (properties, "key_bind_meta-c", "/my_command"); + +struct t_gui_buffer *my_buffer = weechat_buffer_new_props ("my_buffer", + properties, + &my_input_cb, NULL, NULL, + &my_close_cb, NULL, NULL); +---- + +Скрипта (Python): + +// TRANSLATION MISSING +[source,python] +---- +# прототип +def buffer_new_props(name: str, properties: Dict[str, str], + input_callback: str, input_callback_data: str, + close_callback: str, close_callback_data: str) -> str: ... + +# пример +def my_input_cb(data, buffer, input_data): + weechat.prnt(buffer, "Текст: %s" % input_data) + return weechat.WEECHAT_RC_OK + +def my_close_cb(data, buffer): + weechat.prnt("", "Затвориће се бафер ’%s’!" % weechat.buffer_get_string(buffer, "name")) + return weechat.WEECHAT_RC_OK + +properties = { + "type": "free", # buffer with free content + "localvar_set_no_log": "1", # no logging on this buffer + "key_bind_meta-c": "/my_command", # bind key alt-c on this buffer +} +buffer = weechat.buffer_new_props("my_buffer", properties, "my_input_cb", "", "my_close_cb", "") +---- + ==== current_buffer Враћа показивач на текући бафер (бафер који се приказује у текућем прозору). |