Mercurial > ~mikael > mcabber > hg
comparison mcabber/src/commands.c @ 128:81ccb1091dd8
[/trunk] Changeset 141 by mikael
* /group implementation (shrink/expand)
* Replace scr_DrawRoster() calls with "update_roster = TRUE" in commands.c
An inline function would maybe be better?
* TODO update
author | mikael |
---|---|
date | Thu, 28 Apr 2005 10:16:32 +0000 |
parents | 0f7ec11efd06 |
children | 03be1cc94560 |
comparison
equal
deleted
inserted
replaced
127:0f7ec11efd06 | 128:81ccb1091dd8 |
---|---|
33 // Commands callbacks | 33 // Commands callbacks |
34 void do_roster(char *arg); | 34 void do_roster(char *arg); |
35 void do_clear(char *arg); | 35 void do_clear(char *arg); |
36 void do_status(char *arg); | 36 void do_status(char *arg); |
37 void do_add(char *arg); | 37 void do_add(char *arg); |
38 void do_group(char *arg); | |
38 | 39 |
39 // Global variable for the commands list | 40 // Global variable for the commands list |
40 static GSList *Commands; | 41 static GSList *Commands; |
41 | 42 |
42 | 43 |
61 void cmd_init(void) | 62 void cmd_init(void) |
62 { | 63 { |
63 cmd_add("add", "Add a jabber user", COMPL_JID, 0, &do_add); | 64 cmd_add("add", "Add a jabber user", COMPL_JID, 0, &do_add); |
64 cmd_add("clear", "Clear the dialog window", 0, 0, &do_clear); | 65 cmd_add("clear", "Clear the dialog window", 0, 0, &do_clear); |
65 //cmd_add("del"); | 66 //cmd_add("del"); |
66 cmd_add("group", "Change group display settings", COMPL_GROUP, 0, NULL); | 67 cmd_add("group", "Change group display settings", COMPL_GROUP, 0, &do_group); |
67 cmd_add("help", "Display some help", COMPL_CMD, 0, NULL); | 68 cmd_add("help", "Display some help", COMPL_CMD, 0, NULL); |
68 //cmd_add("info"); | 69 //cmd_add("info"); |
69 //cmd_add("move"); | 70 //cmd_add("move"); |
70 //cmd_add("nick"); | 71 //cmd_add("nick"); |
71 cmd_add("quit", "Exit the software", 0, 0, NULL); | 72 cmd_add("quit", "Exit the software", 0, 0, NULL); |
72 //cmd_add("rename"); | 73 //cmd_add("rename"); |
73 //cmd_add("request_auth"); | 74 //cmd_add("request_auth"); |
74 cmd_add("roster", "Manipulate the roster/buddylist", COMPL_ROSTER, 0, &do_roster); | 75 cmd_add("roster", "Manipulate the roster/buddylist", COMPL_ROSTER, 0, |
76 &do_roster); | |
75 cmd_add("say", "Say something to the selected buddy", 0, 0, NULL); | 77 cmd_add("say", "Say something to the selected buddy", 0, 0, NULL); |
76 //cmd_add("search"); | 78 //cmd_add("search"); |
77 //cmd_add("send_auth"); | 79 //cmd_add("send_auth"); |
78 cmd_add("status", "Show or set your status", COMPL_STATUS, 0, &do_status); | 80 cmd_add("status", "Show or set your status", COMPL_STATUS, 0, &do_status); |
79 | 81 |
207 | 209 |
208 void do_roster(char *arg) | 210 void do_roster(char *arg) |
209 { | 211 { |
210 if (!strcasecmp(arg, "top")) { | 212 if (!strcasecmp(arg, "top")) { |
211 scr_RosterTop(); | 213 scr_RosterTop(); |
212 scr_DrawRoster(); | 214 update_roster = TRUE; |
213 } else if (!strcasecmp(arg, "bottom")) { | 215 } else if (!strcasecmp(arg, "bottom")) { |
214 scr_RosterBottom(); | 216 scr_RosterBottom(); |
215 scr_DrawRoster(); | 217 update_roster = TRUE; |
216 } else if (!strcasecmp(arg, "hide_offline")) { | 218 } else if (!strcasecmp(arg, "hide_offline")) { |
217 buddylist_set_hide_offline_buddies(TRUE); | 219 buddylist_set_hide_offline_buddies(TRUE); |
218 if (current_buddy) | 220 if (current_buddy) |
219 buddylist_build(); | 221 buddylist_build(); |
220 scr_DrawRoster(); | 222 update_roster = TRUE; |
221 } else if (!strcasecmp(arg, "show_offline")) { | 223 } else if (!strcasecmp(arg, "show_offline")) { |
222 buddylist_set_hide_offline_buddies(FALSE); | 224 buddylist_set_hide_offline_buddies(FALSE); |
223 buddylist_build(); | 225 buddylist_build(); |
224 scr_DrawRoster(); | 226 update_roster = TRUE; |
225 } else | 227 } else |
226 scr_LogPrint("Unrecognized parameter!"); | 228 scr_LogPrint("Unrecognized parameter!"); |
227 } | 229 } |
228 | 230 |
229 void do_clear(char *arg) | 231 void do_clear(char *arg) |
267 | 269 |
268 // FIXME check arg =~ jabber id | 270 // FIXME check arg =~ jabber id |
269 // 2nd parameter = optional nickname (XXX NULL for now...) | 271 // 2nd parameter = optional nickname (XXX NULL for now...) |
270 jb_addbuddy(arg, NULL); | 272 jb_addbuddy(arg, NULL); |
271 } | 273 } |
274 | |
275 void do_group(char *arg) | |
276 { | |
277 gpointer group; | |
278 | |
279 if (!arg || (*arg == 0)) { | |
280 scr_LogPrint("Missing parameter"); | |
281 return; | |
282 } | |
283 | |
284 if (!current_buddy) | |
285 return; | |
286 | |
287 group = BUDDATA(current_buddy); | |
288 if (!(buddy_gettype(group) & ROSTER_TYPE_GROUP)) { | |
289 scr_LogPrint("For now you need to select a group " | |
290 "before using /group"); | |
291 return; | |
292 } | |
293 if (!strcmp(arg, "expand")) { | |
294 buddy_setflags(group, ROSTER_FLAG_HIDE, FALSE); | |
295 } else if (!strcmp(arg, "shrink")) { | |
296 buddy_setflags(group, ROSTER_FLAG_HIDE, TRUE); | |
297 } else { | |
298 scr_LogPrint("Unrecognized parameter!"); | |
299 return; | |
300 } | |
301 | |
302 buddylist_build(); | |
303 update_roster = TRUE; | |
304 } | |
305 |