comparison mcabber/mcabber/modules.c @ 1820:0628dcecaddf

Set the message flag with module list (when there are several modules)
author Mikael Berthe <mikael@lilotux.net>
date Tue, 23 Mar 2010 23:57:57 +0100
parents 6abca6000762
children f44c375dabf1
comparison
equal deleted inserted replaced
1819:d13315366ba5 1820:0628dcecaddf
279 { 279 {
280 GSList *mel; 280 GSList *mel;
281 gsize maxlen = 0; 281 gsize maxlen = 0;
282 gchar *format; 282 gchar *format;
283 GString *message; 283 GString *message;
284 guint module_count = 0;
284 285
285 if (!loaded_modules) { 286 if (!loaded_modules) {
286 scr_LogPrint(LPRINT_LOGNORM, "No modules loaded."); 287 scr_LogPrint(LPRINT_LOGNORM, "No modules loaded.");
287 return; 288 return;
288 } 289 }
291 for (mel = loaded_modules; mel; mel = mel -> next) { 292 for (mel = loaded_modules; mel; mel = mel -> next) {
292 loaded_module_t *module = mel->data; 293 loaded_module_t *module = mel->data;
293 gsize len = strlen(module->name); 294 gsize len = strlen(module->name);
294 if (len > maxlen) 295 if (len > maxlen)
295 maxlen = len; 296 maxlen = len;
297 module_count++;
296 } 298 }
297 299
298 // Create format string 300 // Create format string
299 format = g_strdup_printf("%%-%us %%2u (%%c)", (unsigned)maxlen); 301 format = g_strdup_printf("%%-%us %%2u (%%c)", (unsigned)maxlen);
300 302
334 } 336 }
335 337
336 // Chop extra "\n" 338 // Chop extra "\n"
337 g_string_truncate(message, message->len - 1); 339 g_string_truncate(message, message->len - 1);
338 340
339 scr_LogPrint(LPRINT_LOGNORM, "%s", message->str); 341 scr_LogPrint(LPRINT_NORMAL, "%s", message->str);
342
343 if (module_count + 2 > scr_getlogwinheight()) {
344 scr_setmsgflag_if_needed(SPECIAL_BUFFER_STATUS_ID, TRUE);
345 scr_setattentionflag_if_needed(SPECIAL_BUFFER_STATUS_ID, TRUE,
346 ROSTER_UI_PRIO_STATUS_WIN_MESSAGE, prio_max);
347 }
340 348
341 g_string_free(message, TRUE); 349 g_string_free(message, TRUE);
342 g_free(format); 350 g_free(format);
343 } 351 }
344 352
394 scr_LogPrint(LPRINT_NORMAL, "Description: %s", info->description); 402 scr_LogPrint(LPRINT_NORMAL, "Description: %s", info->description);
395 } 403 }
396 scr_setmsgflag_if_needed(SPECIAL_BUFFER_STATUS_ID, TRUE); 404 scr_setmsgflag_if_needed(SPECIAL_BUFFER_STATUS_ID, TRUE);
397 scr_setattentionflag_if_needed(SPECIAL_BUFFER_STATUS_ID, TRUE, 405 scr_setattentionflag_if_needed(SPECIAL_BUFFER_STATUS_ID, TRUE,
398 ROSTER_UI_PRIO_STATUS_WIN_MESSAGE, prio_max); 406 ROSTER_UI_PRIO_STATUS_WIN_MESSAGE, prio_max);
399 update_roster = TRUE;
400 } 407 }
401 408
402 // modules_init() 409 // modules_init()
403 // Initializes module system. 410 // Initializes module system.
404 void modules_init(void) 411 void modules_init(void)