diff options
author | Timo Sirainen <cras@irssi.org> | 2001-02-10 04:54:09 +0000 |
---|---|---|
committer | cras <cras@dbcabf3a-b0e7-0310-adc4-f8d773084564> | 2001-02-10 04:54:09 +0000 |
commit | 194dd60f36aff0d7df8b6e569caa056a96e1b606 (patch) | |
tree | d0858ce14095d64a2f732362a685ce4cf85d8623 /src | |
parent | 0de0499fd86e9a5b996da2c2e9dd6df093ffeeaa (diff) | |
download | irssi-194dd60f36aff0d7df8b6e569caa056a96e1b606.zip |
/SET names_max_columns, /SET names_max_width: Limit width of /NAMES list.
Forced max. 6 columns limit to /HELP
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1199 dbcabf3a-b0e7-0310-adc4-f8d773084564
Diffstat (limited to 'src')
-rw-r--r-- | src/core/misc.c | 10 | ||||
-rw-r--r-- | src/core/misc.h | 3 | ||||
-rw-r--r-- | src/fe-common/core/fe-channels.c | 9 | ||||
-rw-r--r-- | src/fe-common/core/fe-core-commands.c | 2 |
4 files changed, 18 insertions, 6 deletions
diff --git a/src/core/misc.c b/src/core/misc.c index b9bc70c7..709fd98d 100644 --- a/src/core/misc.c +++ b/src/core/misc.c @@ -609,13 +609,14 @@ char *my_asctime(time_t t) /* Returns number of columns needed to print items. save_column_widths is filled with length of each column. */ int get_max_column_count(GSList *items, COLUMN_LEN_FUNC len_func, - int max_width, int item_extra, int item_min_size, + int max_width, int max_columns, + int item_extra, int item_min_size, int **save_column_widths, int *rows) { GSList *tmp; int **columns, *columns_width, *columns_rows; int item_pos, items_count; - int ret, len, n, col, max_columns; + int ret, len, n, col; items_count = g_slist_length(items); if (items_count == 0) { @@ -624,7 +625,10 @@ int get_max_column_count(GSList *items, COLUMN_LEN_FUNC len_func, return 0; } - max_columns = max_width/(item_extra+item_min_size); + len = max_width/(item_extra+item_min_size); + if (max_columns <= 0 || len < max_columns) + max_columns = len; + columns = g_new0(int *, max_columns); columns_width = g_new0(int, max_columns); columns_rows = g_new0(int, max_columns); diff --git a/src/core/misc.h b/src/core/misc.h index 110aa14b..b56e8f97 100644 --- a/src/core/misc.h +++ b/src/core/misc.h @@ -78,7 +78,8 @@ char *my_asctime(time_t t); /* Returns number of columns needed to print items. save_column_widths is filled with length of each column. */ int get_max_column_count(GSList *items, COLUMN_LEN_FUNC len_func, - int max_width, int item_extra, int item_min_size, + int max_width, int max_columns, + int item_extra, int item_min_size, int **save_column_widths, int *rows); /* Return a column sorted copy of a list. */ diff --git a/src/fe-common/core/fe-channels.c b/src/fe-common/core/fe-channels.c index 77c7b7e4..2a9ba71f 100644 --- a/src/fe-common/core/fe-channels.c +++ b/src/fe-common/core/fe-channels.c @@ -329,8 +329,13 @@ static void display_sorted_nicks(CHANNEL_REC *channel, GSList *nicklist) g_free(format); } - /* calculate columns */ + /* calculate columns */ + if (settings_get_int("names_max_width") > 0 && + max_width > settings_get_int("names_max_width")) + max_width = settings_get_int("names_max_width"); + cols = get_max_column_count(nicklist, get_nick_length, max_width, + settings_get_int("names_max_columns"), item_extra, 3, &columns, &rows); nicklist = columns_sort_list(nicklist, rows); @@ -442,6 +447,8 @@ static void cmd_names(const char *data, SERVER_REC *server, WI_ITEM_REC *item) void fe_channels_init(void) { settings_add_bool("lookandfeel", "autoclose_windows", TRUE); + settings_add_int("lookandfeel", "names_max_columns", 6); + settings_add_int("lookandfeel", "names_max_width", 0); signal_add("channel created", (SIGNAL_FUNC) signal_channel_created); signal_add("channel destroyed", (SIGNAL_FUNC) signal_channel_destroyed); diff --git a/src/fe-common/core/fe-core-commands.c b/src/fe-common/core/fe-core-commands.c index 87e26a9c..e374dbd6 100644 --- a/src/fe-common/core/fe-core-commands.c +++ b/src/fe-common/core/fe-core-commands.c @@ -96,7 +96,7 @@ static void help_category(GSList *cmdlist, int items) /* calculate columns */ cols = get_max_column_count(cmdlist, get_cmd_length, - max_width, 1, 3, &columns, &rows); + max_width, 6, 1, 3, &columns, &rows); cmdlist = columns_sort_list(cmdlist, rows); /* rows in last column */ |