125 |
125 |
126 static int roster_hidden; |
126 static int roster_hidden; |
127 static int chatmode; |
127 static int chatmode; |
128 static int multimode; |
128 static int multimode; |
129 static char *multiline, *multimode_subj; |
129 static char *multiline, *multimode_subj; |
|
130 static int no_space_before_items; |
130 |
131 |
131 static bool Curses; |
132 static bool Curses; |
132 static bool log_win_on_top; |
133 static bool log_win_on_top; |
133 static bool roster_win_on_right; |
134 static bool roster_win_on_right; |
134 static guint autoaway_source = 0; |
135 static guint autoaway_source = 0; |
1542 int requested_size; |
1543 int requested_size; |
1543 gchar *ver, *message; |
1544 gchar *ver, *message; |
1544 int chat_y_pos, chatstatus_y_pos, log_y_pos; |
1545 int chat_y_pos, chatstatus_y_pos, log_y_pos; |
1545 int roster_x_pos, chat_x_pos; |
1546 int roster_x_pos, chat_x_pos; |
1546 |
1547 |
|
1548 no_space_before_items = settings_opt_get_int("no_space_before_items"); |
|
1549 |
1547 Log_Win_Height = DEFAULT_LOG_WIN_HEIGHT; |
1550 Log_Win_Height = DEFAULT_LOG_WIN_HEIGHT; |
1548 requested_size = settings_opt_get_int("log_win_height"); |
1551 requested_size = settings_opt_get_int("log_win_height"); |
1549 if (requested_size > 0) { |
1552 if (requested_size > 0) { |
1550 if (maxY > requested_size + 3) |
1553 if (maxY > requested_size + 3) |
1551 Log_Win_Height = requested_size + 2; |
1554 Log_Win_Height = requested_size + 2; |
1941 int rOffset; |
1944 int rOffset; |
1942 int cursor_backup; |
1945 int cursor_backup; |
1943 char status, pending; |
1946 char status, pending; |
1944 enum imstatus currentstatus = xmpp_getstatus(); |
1947 enum imstatus currentstatus = xmpp_getstatus(); |
1945 int x_pos; |
1948 int x_pos; |
|
1949 char *space; |
|
1950 int prefix_length; |
1946 |
1951 |
1947 // We can reset update_roster |
1952 // We can reset update_roster |
1948 update_roster = FALSE; |
1953 update_roster = FALSE; |
1949 |
1954 |
1950 getmaxyx(rosterWnd, maxy, maxx); |
1955 getmaxyx(rosterWnd, maxy, maxx); |
1996 |
2001 |
1997 if (roster_win_on_right) |
2002 if (roster_win_on_right) |
1998 x_pos = 1; // 1 char offset (vertical line) |
2003 x_pos = 1; // 1 char offset (vertical line) |
1999 else |
2004 else |
2000 x_pos = 0; |
2005 x_pos = 0; |
|
2006 |
|
2007 space = g_new0(char, 2); |
|
2008 if (no_space_before_items) { |
|
2009 space[0] = '\0'; |
|
2010 prefix_length = 6; |
|
2011 } else { |
|
2012 prefix_length = 7; |
|
2013 } |
2001 |
2014 |
2002 name = g_new0(char, 4*Roster_Width); |
2015 name = g_new0(char, 4*Roster_Width); |
2003 rline = g_new0(char, 4*Roster_Width+1); |
2016 rline = g_new0(char, 4*Roster_Width+1); |
2004 |
2017 |
2005 buddy = buddylist; |
2018 buddy = buddylist; |
2087 } |
2100 } |
2088 wattrset(rosterWnd, color); |
2101 wattrset(rosterWnd, color); |
2089 } |
2102 } |
2090 } |
2103 } |
2091 |
2104 |
2092 if (Roster_Width > 7) |
2105 if (Roster_Width > prefix_length) |
2093 g_utf8_strncpy(name, buddy_getname(BUDDATA(buddy)), Roster_Width-7); |
2106 g_utf8_strncpy(name, buddy_getname(BUDDATA(buddy)), Roster_Width-prefix_length); |
2094 else |
2107 else |
2095 name[0] = 0; |
2108 name[0] = 0; |
2096 |
2109 |
2097 if (pending == '#') { |
2110 if (pending == '#') { |
2098 // Attention sign? |
2111 // Attention sign? |
2104 if (isgrp) { |
2117 if (isgrp) { |
2105 if (ishid) { |
2118 if (ishid) { |
2106 int group_count = 0; |
2119 int group_count = 0; |
2107 foreach_group_member(BUDDATA(buddy), increment_if_buddy_not_filtered, |
2120 foreach_group_member(BUDDATA(buddy), increment_if_buddy_not_filtered, |
2108 &group_count); |
2121 &group_count); |
2109 snprintf(rline, 4*Roster_Width, " %c+++ %s (%i)", pending, name, |
2122 snprintf(rline, 4*Roster_Width, "%s%c+++ %s (%i)", space, pending, name, |
2110 group_count); |
2123 group_count); |
2111 /* Do not display the item count if there isn't enough space */ |
2124 /* Do not display the item count if there isn't enough space */ |
2112 if (g_utf8_strlen(rline, 4*Roster_Width) >= Roster_Width) |
2125 if (g_utf8_strlen(rline, 4*Roster_Width) >= Roster_Width) |
2113 snprintf(rline, 4*Roster_Width, " %c+++ %s", pending, name); |
2126 snprintf(rline, 4*Roster_Width, "%s%c+++ %s", space, pending, name); |
2114 } |
2127 } |
2115 else |
2128 else |
2116 snprintf(rline, 4*Roster_Width, " %c--- %s", pending, name); |
2129 snprintf(rline, 4*Roster_Width, "%s%c--- %s", space, pending, name); |
2117 } else if (isspe) { |
2130 } else if (isspe) { |
2118 snprintf(rline, 4*Roster_Width, " %c%s", pending, name); |
2131 snprintf(rline, 4*Roster_Width, "%s%c%s", space, pending, name); |
2119 } else { |
2132 } else { |
2120 char sepleft = '['; |
2133 char sepleft = '['; |
2121 char sepright = ']'; |
2134 char sepright = ']'; |
2122 if (btype & ROSTER_TYPE_USER) { |
2135 if (btype & ROSTER_TYPE_USER) { |
2123 guint subtype = buddy_getsubscription(BUDDATA(buddy)); |
2136 guint subtype = buddy_getsubscription(BUDDATA(buddy)); |
2126 if (!(subtype & sub_from)) { |
2139 if (!(subtype & sub_from)) { |
2127 sepleft = '{'; |
2140 sepleft = '{'; |
2128 sepright = '}'; |
2141 sepright = '}'; |
2129 } |
2142 } |
2130 } |
2143 } |
2131 |
|
2132 snprintf(rline, 4*Roster_Width, |
2144 snprintf(rline, 4*Roster_Width, |
2133 " %c%c%c%c %s", pending, sepleft, status, sepright, name); |
2145 "%s%c%c%c%c %s", space, pending, sepleft, status, sepright, name); |
2134 } |
2146 } |
2135 |
2147 |
2136 rline_locale = from_utf8(rline); |
2148 rline_locale = from_utf8(rline); |
2137 mvwprintw(rosterWnd, i, x_pos, "%s", rline_locale); |
2149 mvwprintw(rosterWnd, i, x_pos, "%s", rline_locale); |
2138 g_free(rline_locale); |
2150 g_free(rline_locale); |
2139 i++; |
2151 i++; |
2140 } |
2152 } |
2141 |
2153 |
|
2154 g_free(space); |
2142 g_free(rline); |
2155 g_free(rline); |
2143 g_free(name); |
2156 g_free(name); |
2144 top_panel(inputPanel); |
2157 top_panel(inputPanel); |
2145 update_panels(); |
2158 update_panels(); |
2146 curs_set(cursor_backup); |
2159 curs_set(cursor_backup); |