#
# History:
#
+# 2014-01-30, stfn <stfnmd@gmail.com>:
+# version 3.4: add new options "color_value_diff" and "color_value_diff_selected"
# 2014-01-16, luz <ne.tetewi@gmail.com>:
# version 3.3: fix bug with column alignment in iset buffer when option
# name contains unicode characters
use strict;
my $PRGNAME = "iset";
-my $VERSION = "3.3";
+my $VERSION = "3.4";
my $DESCR = "Interactive Set for configuration options";
my $AUTHOR = "Sebastien Helleu <flashcode\@flashtux.org>";
my $LICENSE = "GPL3";
my @options_names = ();
my @options_types = ();
my @options_values = ();
+my @options_default_values = ();
my @options_is_null = ();
my $option_max_length = 0;
my $current_line = 0;
@options_names = ();
@options_types = ();
@options_values = ();
+ @options_default_values = ();
@options_is_null = ();
$option_max_length = 0;
my %options_internal = ();
next if (weechat::config_boolean($options_iset{"show_plugin_description"}) == 0 and index ($name, "plugins.desc.") != -1);
my $type = weechat::infolist_string($infolist, "type");
my $value = weechat::infolist_string($infolist, "value");
+ my $default_value = weechat::infolist_string($infolist, "default_value");
my $is_null = weechat::infolist_integer($infolist, "value_is_null");
if ($search_mode == 3)
{
{
$options_internal{$name}{"type"} = $type;
$options_internal{$name}{"value"} = $value;
+ $options_internal{$name}{"default_value"} = $default_value;
$options_internal{$name}{"is_null"} = $is_null;
$option_max_length = length($name) if (length($name) > $option_max_length);
$iset_struct{$key} = $options_internal{$name};
{
$options_internal{$name}{"type"} = $type;
$options_internal{$name}{"value"} = $value;
+ $options_internal{$name}{"default_value"} = $default_value;
$options_internal{$name}{"is_null"} = $is_null;
$option_max_length = length($name) if (length($name) > $option_max_length);
$iset_struct{$key} = $options_internal{$name};
push(@options_names, $name);
push(@options_types, $options_internal{$name}{"type"});
push(@options_values, $options_internal{$name}{"value"});
+ push(@options_default_values, $options_internal{$name}{"default_value"});
push(@options_is_null, $options_internal{$name}{"is_null"});
}
}
@options_names = ();
@options_types = ();
@options_values = ();
+ @options_default_values = ();
@options_is_null = ();
$option_max_length = 0;
my %options_internal = ();
my $type = weechat::infolist_string($infolist, "type");
my $is_null = weechat::infolist_integer($infolist, "value_is_null");
my $value = weechat::infolist_string($infolist, "value");
+ my $default_value = weechat::infolist_string($infolist, "default_value");
if ($search_mode)
{
if ( grep /\Q$var_value/,lc($value) )
{
$options_internal{$name}{"type"} = $type;
$options_internal{$name}{"value"} = $value;
+ $options_internal{$name}{"default_value"} = $default_value;
$options_internal{$name}{"is_null"} = $is_null;
$option_max_length = length($name) if (length($name) > $option_max_length);
}
{
$options_internal{$name}{"type"} = $type;
$options_internal{$name}{"value"} = $value;
+ $options_internal{$name}{"default_value"} = $default_value;
$options_internal{$name}{"is_null"} = $is_null;
$option_max_length = length($name) if (length($name) > $option_max_length);
}
push(@options_names, $name);
push(@options_types, $options_internal{$name}{"type"});
push(@options_values, $options_internal{$name}{"value"});
+ push(@options_default_values, $options_internal{$name}{"default_value"});
push(@options_is_null, $options_internal{$name}{"is_null"});
}
}
{
$color3 = weechat::color(weechat::config_color($options_iset{"color_value_undef"}));
}
+ elsif ($options_values[$y] ne $options_default_values[$y])
+ {
+ $color3 = weechat::color(weechat::config_color($options_iset{"color_value_diff"}));
+ }
else
{
$color3 = weechat::color(weechat::config_color($options_iset{"color_value"}));
{
$color3 = weechat::color(weechat::config_color($options_iset{"color_value_undef_selected"}).",".weechat::config_color($options_iset{"color_bg_selected"}));
}
+ elsif ($options_values[$y] ne $options_default_values[$y])
+ {
+ $color3 = weechat::color(weechat::config_color($options_iset{"color_value_diff_selected"}).",".weechat::config_color($options_iset{"color_bg_selected"}));
+ }
else
{
$color3 = weechat::color(weechat::config_color($options_iset{"color_value_selected"}).",".weechat::config_color($options_iset{"color_bg_selected"}));
{
$options_types[$index] = weechat::infolist_string($infolist, "type");
$options_values[$index] = weechat::infolist_string($infolist, "value");
+ $options_default_values[$index] = weechat::infolist_string($infolist, "default_value");
$options_is_null[$index] = weechat::infolist_integer($infolist, "value_is_null");
iset_refresh_line($index);
iset_title() if ($option_name eq "iset.look.show_current_line");
$iset_config_file, $section_color,
"value_selected", "color", "Color for selected option value", "", 0, 0,
"lightcyan", "lightcyan", 0, "", "", "full_refresh_cb", "", "", "");
+ $options_iset{"color_value_diff"} = weechat::config_new_option(
+ $iset_config_file, $section_color,
+ "value_diff", "color", "Color for option value different from default", "", 0, 0,
+ "magenta", "magenta", 0, "", "", "full_refresh_cb", "", "", "");
+ $options_iset{"color_value_diff_selected"} = weechat::config_new_option(
+ $iset_config_file, $section_color,
+ "value_diff_selected", "color", "Color for selected option value different from default", "", 0, 0,
+ "lightmagenta", "lightmagenta", 0, "", "", "full_refresh_cb", "", "", "");
$options_iset{"color_value_undef"} = weechat::config_new_option(
$iset_config_file, $section_color,
"value_undef", "color", "Color for option value undef", "", 0, 0,