1264 color = COLOR_MSGIN; |
1264 color = COLOR_MSGIN; |
1265 else |
1265 else |
1266 color = COLOR_GENERAL; |
1266 color = COLOR_GENERAL; |
1267 |
1267 |
1268 if (color != COLOR_GENERAL) |
1268 if (color != COLOR_GENERAL) |
1269 wattrset(win_entry->win, get_color(color)); |
1269 wbkgdset(win_entry->win, get_color(color)); |
1270 |
1270 |
1271 // Generate the prefix area and display it |
1271 // Generate the prefix area and display it |
1272 |
1272 |
1273 timelen = scr_line_prefix(line, pref, prefixwidth); |
1273 timelen = scr_line_prefix(line, pref, prefixwidth); |
1274 if (timelen && line->flags & HBB_PREFIX_DELAYED) { |
1274 if (timelen && line->flags & HBB_PREFIX_DELAYED) { |
1275 char tmp; |
1275 char tmp; |
1276 |
1276 |
1277 tmp = pref[timelen]; |
1277 tmp = pref[timelen]; |
1278 pref[timelen] = '\0'; |
1278 pref[timelen] = '\0'; |
1279 wattrset(win_entry->win, get_color(COLOR_TIMESTAMP)); |
1279 wbkgdset(win_entry->win, get_color(COLOR_TIMESTAMP)); |
1280 wprintw(win_entry->win, pref); |
1280 wprintw(win_entry->win, pref); |
1281 pref[timelen] = tmp; |
1281 pref[timelen] = tmp; |
1282 wattrset(win_entry->win, get_color(color)); |
1282 wbkgdset(win_entry->win, get_color(color)); |
1283 wprintw(win_entry->win, pref+timelen); |
1283 wprintw(win_entry->win, pref+timelen); |
1284 } else |
1284 } else |
1285 wprintw(win_entry->win, pref); |
1285 wprintw(win_entry->win, pref); |
1286 |
1286 |
1287 // Make sure we are at the right position |
1287 // Make sure we are at the right position |
1332 if (nickcolors) |
1332 if (nickcolors) |
1333 actual = g_hash_table_lookup(nickcolors, line->text); |
1333 actual = g_hash_table_lookup(nickcolors, line->text); |
1334 if (actual && ((type == MC_ALL) || (actual->manual)) |
1334 if (actual && ((type == MC_ALL) || (actual->manual)) |
1335 && (line->flags & HBB_PREFIX_IN) && |
1335 && (line->flags & HBB_PREFIX_IN) && |
1336 (!(line->flags & HBB_PREFIX_HLIGHT_OUT))) |
1336 (!(line->flags & HBB_PREFIX_HLIGHT_OUT))) |
1337 wattrset(win_entry->win, compose_color(actual->color)); |
1337 wbkgdset(win_entry->win, compose_color(actual->color)); |
1338 wprintw(win_entry->win, "%s", line->text); |
1338 wprintw(win_entry->win, "%s", line->text); |
1339 // Return the char |
1339 // Return the char |
1340 line->text[line->mucnicklen] = tmp; |
1340 line->text[line->mucnicklen] = tmp; |
1341 // Return the color back |
1341 // Return the color back |
1342 wattrset(win_entry->win, get_color(color)); |
1342 wbkgdset(win_entry->win, get_color(color)); |
1343 } |
1343 } |
1344 |
1344 |
1345 // Display text line |
1345 // Display text line |
1346 wprintw(win_entry->win, "%s", line->text+line->mucnicklen); |
1346 wprintw(win_entry->win, "%s", line->text+line->mucnicklen); |
1347 wclrtoeol(win_entry->win); |
1347 wclrtoeol(win_entry->win); |
|
1348 |
|
1349 // Restore default ("general") color |
|
1350 if (color != COLOR_GENERAL) |
|
1351 wbkgdset(win_entry->win, get_color(COLOR_GENERAL)); |
1348 |
1352 |
1349 scr_update_window_skipline: |
1353 scr_update_window_skipline: |
1350 skipline = FALSE; |
1354 skipline = FALSE; |
1351 if (readmark && line->flags & HBB_PREFIX_READMARK) { |
1355 if (readmark && line->flags & HBB_PREFIX_READMARK) { |
1352 int i, w; |
1356 int i, w; |
1353 mark_offset++; |
1357 mark_offset++; |
1354 |
1358 |
1355 // Display the mark |
1359 // Display the mark |
1356 winy = n + mark_offset; |
1360 winy = n + mark_offset; |
1357 wmove(win_entry->win, winy, 0); |
1361 wmove(win_entry->win, winy, 0); |
1358 color = COLOR_READMARK; |
1362 wbkgdset(win_entry->win, get_color(COLOR_READMARK)); |
1359 wattrset(win_entry->win, get_color(color)); |
|
1360 g_snprintf(pref, prefixwidth, " == "); |
1363 g_snprintf(pref, prefixwidth, " == "); |
1361 wprintw(win_entry->win, pref); |
1364 wprintw(win_entry->win, pref); |
1362 w = scr_gettextwidth() / 3; |
1365 w = scr_gettextwidth() / 3; |
1363 for (i=0; i<w; i++) |
1366 for (i=0; i<w; i++) |
1364 wprintw(win_entry->win, "== "); |
1367 wprintw(win_entry->win, "== "); |
1365 wclrtoeol(win_entry->win); |
1368 wclrtoeol(win_entry->win); |
1366 wattrset(win_entry->win, get_color(COLOR_GENERAL)); |
1369 wbkgdset(win_entry->win, get_color(COLOR_GENERAL)); |
1367 } |
1370 } |
1368 |
|
1369 // Restore default ("general") color |
|
1370 if (color != COLOR_GENERAL) |
|
1371 wattrset(win_entry->win, get_color(COLOR_GENERAL)); |
|
1372 |
|
1373 g_free(line->text); |
1371 g_free(line->text); |
1374 g_free(line); |
1372 g_free(line); |
1375 } else { |
1373 } else { |
1376 wclrtobot(win_entry->win); |
1374 wclrtobot(win_entry->win); |
1377 break; |
1375 break; |
1756 exit(EXIT_FAILURE); |
1754 exit(EXIT_FAILURE); |
1757 } |
1755 } |
1758 wbkgd(rosterWnd, get_color(COLOR_GENERAL)); |
1756 wbkgd(rosterWnd, get_color(COLOR_GENERAL)); |
1759 wbkgd(chatWnd, get_color(COLOR_GENERAL)); |
1757 wbkgd(chatWnd, get_color(COLOR_GENERAL)); |
1760 wbkgd(activechatWnd, get_color(COLOR_GENERAL)); |
1758 wbkgd(activechatWnd, get_color(COLOR_GENERAL)); |
1761 wbkgd(logWnd, get_color(COLOR_GENERAL)); |
1759 wbkgd(logWnd, get_color(COLOR_LOG)); |
1762 wbkgd(chatstatusWnd, get_color(COLOR_STATUS)); |
1760 wbkgd(chatstatusWnd, get_color(COLOR_STATUS)); |
1763 wbkgd(mainstatusWnd, get_color(COLOR_STATUS)); |
1761 wbkgd(mainstatusWnd, get_color(COLOR_STATUS)); |
1764 |
|
1765 wattrset(logWnd, get_color(COLOR_LOG)); |
|
1766 } else { |
1762 } else { |
1767 /* Resize/move windows */ |
1763 /* Resize/move windows */ |
1768 wresize(rosterWnd, CHAT_WIN_HEIGHT, Roster_Width); |
1764 wresize(rosterWnd, CHAT_WIN_HEIGHT, Roster_Width); |
1769 wresize(chatWnd, CHAT_WIN_HEIGHT, maxX - Roster_Width); |
1765 wresize(chatWnd, CHAT_WIN_HEIGHT, maxX - Roster_Width); |
1770 wresize(logWnd, Log_Win_Height-2, maxX); |
1766 wresize(logWnd, Log_Win_Height-2, maxX); |
2125 offset = 0; |
2121 offset = 0; |
2126 else |
2122 else |
2127 scr_update_chat_status(FALSE); |
2123 scr_update_chat_status(FALSE); |
2128 |
2124 |
2129 // Cleanup of roster window |
2125 // Cleanup of roster window |
|
2126 wbkgdset(rosterWnd, get_color(COLOR_GENERAL)); // clear background color |
2130 werase(rosterWnd); |
2127 werase(rosterWnd); |
2131 |
2128 |
2132 if (Roster_Width) { |
2129 if (Roster_Width) { |
2133 int line_x_pos = roster_win_on_right ? 0 : Roster_Width-1; |
2130 int line_x_pos = roster_win_on_right ? 0 : Roster_Width-1; |
2134 // Redraw the vertical line (not very good...) |
2131 // Redraw the vertical line (not very good...) |
2135 wattrset(rosterWnd, get_color(COLOR_GENERAL)); |
|
2136 for (i=0 ; i < CHAT_WIN_HEIGHT ; i++) |
2132 for (i=0 ; i < CHAT_WIN_HEIGHT ; i++) |
2137 mvwaddch(rosterWnd, i, line_x_pos, ACS_VLINE); |
2133 mvwaddch(rosterWnd, i, line_x_pos, ACS_VLINE); |
2138 } |
2134 } |
2139 |
2135 |
2140 // Leave now if buddylist is empty or the roster is hidden |
2136 // Leave now if buddylist is empty or the roster is hidden |
2240 if (budstate < imstatus_size) |
2236 if (budstate < imstatus_size) |
2241 status = imstatus2char[budstate]; |
2237 status = imstatus2char[budstate]; |
2242 } |
2238 } |
2243 if (buddy == current_buddy) { |
2239 if (buddy == current_buddy) { |
2244 if (pending == '#') |
2240 if (pending == '#') |
2245 wattrset(rosterWnd, get_color(COLOR_ROSTERSELNMSG)); |
2241 wbkgdset(rosterWnd, get_color(COLOR_ROSTERSELNMSG)); |
2246 else |
2242 else |
2247 wattrset(rosterWnd, get_color(COLOR_ROSTERSEL)); |
2243 wbkgdset(rosterWnd, get_color(COLOR_ROSTERSEL)); |
2248 // The 3 following lines aim at coloring the whole line |
2244 // The 3 following lines aim at coloring the whole line |
2249 wmove(rosterWnd, i, x_pos); |
2245 wmove(rosterWnd, i, x_pos); |
2250 for (n = 0; n < maxx; n++) |
2246 for (n = 0; n < maxx; n++) |
2251 waddch(rosterWnd, ' '); |
2247 waddch(rosterWnd, ' '); |
2252 } else { |
2248 } else { |
2253 if (pending == '#') |
2249 if (pending == '#') |
2254 wattrset(rosterWnd, get_color(COLOR_ROSTERNMSG)); |
2250 wbkgdset(rosterWnd, get_color(COLOR_ROSTERNMSG)); |
2255 else { |
2251 else { |
2256 int color = get_color(COLOR_ROSTER); |
2252 int color = get_color(COLOR_ROSTER); |
2257 if ((!isspe) && (!isgrp)) { // Look for color rules |
2253 if ((!isspe) && (!isgrp)) { // Look for color rules |
2258 GSList *head; |
2254 GSList *head; |
2259 const char *bjid = buddy_getjid(BUDDATA(buddy)); |
2255 const char *bjid = buddy_getjid(BUDDATA(buddy)); |