equal
deleted
inserted
replaced
16 int buddySelected = 1; /* Hold the selected Buddy */ |
16 int buddySelected = 1; /* Hold the selected Buddy */ |
17 int buddyOffset = 0; /* Hold the roster offset */ |
17 int buddyOffset = 0; /* Hold the roster offset */ |
18 |
18 |
19 static LIST_HEAD(buddy_list); |
19 static LIST_HEAD(buddy_list); |
20 static LIST_HEAD(sorted_buddies); |
20 static LIST_HEAD(sorted_buddies); |
|
21 |
21 #define buddy_entry(n) list_entry(n, buddy_entry_t, list) |
22 #define buddy_entry(n) list_entry(n, buddy_entry_t, list) |
22 |
23 |
23 |
24 |
24 void bud_SetBuddyStatus(char *jidfrom, int status) |
25 void bud_SetBuddyStatus(char *jidfrom, int status) |
25 { |
26 { |
47 |
48 |
48 case FLAG_BUDDY_CONNECTED: |
49 case FLAG_BUDDY_CONNECTED: |
49 sprintf(buffer, "--> %s %s!", jidfrom, i18n("connected")); |
50 sprintf(buffer, "--> %s %s!", jidfrom, i18n("connected")); |
50 break; |
51 break; |
51 } |
52 } |
52 //scr_WriteInWindow(i18n("status window"), buffer, TRUE); |
|
53 scr_LogPrint("%s", buffer); |
53 scr_LogPrint("%s", buffer); |
54 } |
54 } |
55 free(buffer); |
55 free(buffer); |
56 } |
56 } |
57 |
57 |
215 struct list_head *pos, *nn; |
215 struct list_head *pos, *nn; |
216 int i = 1; |
216 int i = 1; |
217 int n; |
217 int n; |
218 int maxx, maxy; |
218 int maxx, maxy; |
219 int fakeOffset = buddyOffset; |
219 int fakeOffset = buddyOffset; |
|
220 window_entry_t *wintmp; |
220 |
221 |
221 getmaxyx(win, maxy, maxx); |
222 getmaxyx(win, maxy, maxx); |
222 |
223 |
223 |
224 |
224 /* cleanup of roster window */ |
225 /* cleanup of roster window */ |
231 |
232 |
232 i = 1; |
233 i = 1; |
233 list_for_each_safe(pos, nn, &buddy_list) { |
234 list_for_each_safe(pos, nn, &buddy_list) { |
234 |
235 |
235 char status = '?'; |
236 char status = '?'; |
|
237 char pending = ' '; |
236 |
238 |
237 if (fakeOffset > 0) { |
239 if (fakeOffset > 0) { |
238 fakeOffset--; |
240 fakeOffset--; |
239 continue; |
241 continue; |
240 } |
242 } |
241 |
243 |
242 tmp = buddy_entry(pos); |
244 tmp = buddy_entry(pos); |
|
245 // FIXME: we should create a function instead of exporting this! :-( |
|
246 // Cf. revision ~27 |
|
247 wintmp = scr_SearchWindow(tmp->jid); |
|
248 if (wintmp) |
|
249 scr_LogPrint("wintmp != NULL"); |
|
250 else |
|
251 scr_LogPrint("wintmp == NULL"); |
|
252 if ((wintmp) && (wintmp->pending_msg)) { |
|
253 pending = '#'; |
|
254 } |
243 |
255 |
244 if ((tmp->flags && FLAG_BUDDY_CONNECTED) == 1) { |
256 if ((tmp->flags && FLAG_BUDDY_CONNECTED) == 1) { |
245 status = 'o'; |
257 status = 'o'; |
246 if (i == (buddySelected - buddyOffset)) |
258 if (i == (buddySelected - buddyOffset)) |
247 wattrset(win, COLOR_PAIR(COLOR_BD_CONSEL)); |
259 wattrset(win, COLOR_PAIR(COLOR_BD_CONSEL)); |
255 } |
267 } |
256 mvwprintw(win, i, 1, ""); |
268 mvwprintw(win, i, 1, ""); |
257 for (n = 2; n < maxx; n++) |
269 for (n = 2; n < maxx; n++) |
258 waddch(win, ' '); |
270 waddch(win, ' '); |
259 //mvwprintw(win, i, (maxx - strlen(tmp->name)) / 2, "%s", tmp->name); |
271 //mvwprintw(win, i, (maxx - strlen(tmp->name)) / 2, "%s", tmp->name); |
260 mvwprintw(win, i, 1, " .[%c] %.12s", status, tmp->name); |
272 mvwprintw(win, i, 1, " %c[%c] %.12s", pending, status, tmp->name); |
261 i++; |
273 i++; |
262 if (i >= maxy - 1) |
274 if (i >= maxy - 1) |
263 break; |
275 break; |
264 } |
276 } |
265 update_panels(); |
277 update_panels(); |