1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-30 14:56:39 +02:00

Added filling/color_fg/color_bg options for bars, added config_get/config_get_plugin/config_set_plugin in script API

This commit is contained in:
Sebastien Helleu
2008-04-24 12:18:26 +02:00
parent a5e5ab6e48
commit ab6684c60a
27 changed files with 1297 additions and 423 deletions
+133 -7
View File
@@ -1881,6 +1881,114 @@ weechat_ruby_api_config_free (VALUE class, VALUE config_file)
RUBY_RETURN_OK;
}
/*
* weechat_ruby_api_config_get: get config option
*/
static VALUE
weechat_ruby_api_config_get (VALUE class, VALUE option)
{
char *c_option, *result;
VALUE return_value;
/* make C compiler happy */
(void) class;
if (!ruby_current_script)
{
WEECHAT_SCRIPT_MSG_NOT_INITIALIZED("config_get");
RUBY_RETURN_EMPTY;
}
if (NIL_P (option))
{
WEECHAT_SCRIPT_MSG_WRONG_ARGUMENTS("config_get");
RUBY_RETURN_EMPTY;
}
Check_Type (option, T_STRING);
c_option = STR2CSTR (option);
result = script_ptr2str (weechat_config_get (c_option));
RUBY_RETURN_STRING_FREE(result);
}
/*
* weechat_ruby_api_config_get_plugin: get value of a plugin option
*/
static VALUE
weechat_ruby_api_config_get_plugin (VALUE class, VALUE option)
{
char *c_option, *value;
/* make C compiler happy */
(void) class;
if (!ruby_current_script)
{
WEECHAT_SCRIPT_MSG_NOT_INITIALIZED("config_get_plugin");
RUBY_RETURN_EMPTY;
}
if (NIL_P (option))
{
WEECHAT_SCRIPT_MSG_WRONG_ARGUMENTS("config_get_plugin");
RUBY_RETURN_EMPTY;
}
Check_Type (option, T_STRING);
c_option = STR2CSTR (option);
value = script_api_config_get_plugin (weechat_ruby_plugin,
ruby_current_script,
c_option);
RUBY_RETURN_STRING(value);
}
/*
* weechat_ruby_api_config_set_plugin: set value of a plugin option
*/
static VALUE
weechat_ruby_api_config_set_plugin (VALUE class, VALUE option, VALUE value)
{
char *c_option, *c_value;
/* make C compiler happy */
(void) class;
if (!ruby_current_script)
{
WEECHAT_SCRIPT_MSG_NOT_INITIALIZED("config_set_plugin");
RUBY_RETURN_ERROR;
}
if (NIL_P (option) || NIL_P (value))
{
WEECHAT_SCRIPT_MSG_WRONG_ARGUMENTS("config_set_plugin");
RUBY_RETURN_ERROR;
}
Check_Type (option, T_STRING);
Check_Type (value, T_STRING);
c_option = STR2CSTR (option);
c_value = STR2CSTR (value);
if (script_api_config_set_plugin (weechat_ruby_plugin,
ruby_current_script,
c_option,
c_value))
RUBY_RETURN_OK;
RUBY_RETURN_ERROR;
}
/*
* weechat_ruby_api_prefix: get a prefix, used for display
*/
@@ -3942,12 +4050,14 @@ weechat_ruby_api_bar_search (VALUE class, VALUE name)
*/
static VALUE
weechat_ruby_api_bar_new (VALUE class, VALUE name, VALUE type, VALUE conditions,
VALUE position, VALUE size, VALUE size_max,
VALUE separator, VALUE items)
weechat_ruby_api_bar_new (VALUE class, VALUE name, VALUE type,
VALUE conditions, VALUE position, VALUE filling,
VALUE size, VALUE size_max, VALUE color_fg,
VALUE color_bg, VALUE separator, VALUE items)
{
char *c_name, *c_type, *c_conditions, *c_position, *c_size, *c_size_max;
char *c_separator, *c_items, *result;
char *c_name, *c_type, *c_conditions, *c_position, *c_filling, *c_size;
char *c_size_max, *c_color_fg, *c_color_bg, *c_separator, *c_items;
char *result;
VALUE return_value;
/* make C compiler happy */
@@ -3963,13 +4073,17 @@ weechat_ruby_api_bar_new (VALUE class, VALUE name, VALUE type, VALUE conditions,
c_type = NULL;
c_conditions = NULL;
c_position = NULL;
c_filling = NULL;
c_size = NULL;
c_size_max = NULL;
c_color_fg = NULL;
c_color_bg = NULL;
c_separator = NULL;
c_items = NULL;
if (NIL_P (name) || NIL_P (type) || NIL_P (conditions) || NIL_P (position)
|| NIL_P (size) || NIL_P (size_max) || NIL_P (separator)
|| NIL_P (filling) || NIL_P (size) || NIL_P (size_max)
|| NIL_P (color_fg) || NIL_P (color_bg) || NIL_P (separator)
|| NIL_P (items))
{
WEECHAT_SCRIPT_MSG_WRONG_ARGUMENTS("bar_new");
@@ -3980,8 +4094,11 @@ weechat_ruby_api_bar_new (VALUE class, VALUE name, VALUE type, VALUE conditions,
Check_Type (type, T_STRING);
Check_Type (conditions, T_STRING);
Check_Type (position, T_STRING);
Check_Type (filling, T_STRING);
Check_Type (size, T_STRING);
Check_Type (size_max, T_STRING);
Check_Type (color_fg, T_STRING);
Check_Type (color_bg, T_STRING);
Check_Type (separator, T_STRING);
Check_Type (items, T_STRING);
@@ -3989,8 +4106,11 @@ weechat_ruby_api_bar_new (VALUE class, VALUE name, VALUE type, VALUE conditions,
c_type = STR2CSTR (type);
c_conditions = STR2CSTR (conditions);
c_position = STR2CSTR (position);
c_filling = STR2CSTR (filling);
c_size = STR2CSTR (size);
c_size_max = STR2CSTR (size_max);
c_color_fg = STR2CSTR (color_fg);
c_color_bg = STR2CSTR (color_bg);
c_separator = STR2CSTR (separator);
c_items = STR2CSTR (items);
@@ -3998,8 +4118,11 @@ weechat_ruby_api_bar_new (VALUE class, VALUE name, VALUE type, VALUE conditions,
c_type,
c_conditions,
c_position,
c_filling,
c_size,
c_size_max,
c_color_fg,
c_color_bg,
c_separator,
c_items));
@@ -4561,6 +4684,9 @@ weechat_ruby_api_init (VALUE ruby_mWeechat)
rb_define_module_function (ruby_mWeechat, "config_read", &weechat_ruby_api_config_read, 1);
rb_define_module_function (ruby_mWeechat, "config_reload", &weechat_ruby_api_config_reload, 1);
rb_define_module_function (ruby_mWeechat, "config_free", &weechat_ruby_api_config_free, 1);
rb_define_module_function (ruby_mWeechat, "config_get", &weechat_ruby_api_config_get, 1);
rb_define_module_function (ruby_mWeechat, "config_get_plugin", &weechat_ruby_api_config_get_plugin, 1);
rb_define_module_function (ruby_mWeechat, "config_set_plugin", &weechat_ruby_api_config_set_plugin, 2);
rb_define_module_function (ruby_mWeechat, "prefix", &weechat_ruby_api_prefix, 1);
rb_define_module_function (ruby_mWeechat, "color", &weechat_ruby_api_color, 1);
rb_define_module_function (ruby_mWeechat, "print", &weechat_ruby_api_print, 2);
@@ -4599,7 +4725,7 @@ weechat_ruby_api_init (VALUE ruby_mWeechat)
rb_define_module_function (ruby_mWeechat, "bar_item_update", &weechat_ruby_api_bar_item_update, 1);
rb_define_module_function (ruby_mWeechat, "bar_item_remove", &weechat_ruby_api_bar_item_remove, 1);
rb_define_module_function (ruby_mWeechat, "bar_search", &weechat_ruby_api_bar_search, 1);
rb_define_module_function (ruby_mWeechat, "bar_new", &weechat_ruby_api_bar_new, 8);
rb_define_module_function (ruby_mWeechat, "bar_new", &weechat_ruby_api_bar_new, 11);
rb_define_module_function (ruby_mWeechat, "bar_set", &weechat_ruby_api_bar_set, 3);
rb_define_module_function (ruby_mWeechat, "bar_update", &weechat_ruby_api_bar_update, 1);
rb_define_module_function (ruby_mWeechat, "bar_remove", &weechat_ruby_api_bar_remove, 1);