summaryrefslogtreecommitdiff
path: root/doc/sr/weechat_plugin_api.sr.adoc
diff options
context:
space:
mode:
Diffstat (limited to 'doc/sr/weechat_plugin_api.sr.adoc')
-rw-r--r--doc/sr/weechat_plugin_api.sr.adoc129
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
Враћа показивач на текући бафер (бафер који се приказује у текућем прозору).