Yattm - unified GTK instant-messaging client | |
[Generated for version 0.2-17 - Mon Jan 6 19:01:23 GMT+1 2003] |
#include <gtk/gtk.h>
#include "account.h"
Include dependency graph for status.h:
This graph shows which files directly or indirectly include this file:
Go to the source code of this file.
|
Definition at line 32 of file status.h.
00033 { 00034 LIST_ONLINE, 00035 LIST_EDIT 00036 }; |
|
Definition at line 826 of file status.c. References _, account_click(), account::account_contact, add_contact_line(), get_account_position(), account::handle, account::icon_handler, iconblank_bm, iconblank_pm, account::list_item, account::pix, RUN_SERVICE, account::status, status_tips, and contact::tree. Referenced by add_contact_and_accounts(), buddy_login(), and update_contact_list().
00827 { 00828 GtkWidget * box, * label; 00829 00830 if (ea->list_item) 00831 return; 00832 00833 add_contact_line(ea->account_contact); 00834 00835 ea->list_item = gtk_tree_item_new(); 00836 00837 box = gtk_hbox_new(FALSE, 1); 00838 ea->pix = gtk_pixmap_new(iconblank_pm, iconblank_bm); 00839 label = gtk_label_new(ea->handle); 00840 { 00841 char * c = g_strndup(RUN_SERVICE(ea)->get_status_string(ea), 20); 00842 if(strlen(c) == 20) 00843 { 00844 c[19] = c[18] = c[17] = '.'; 00845 if(!status_tips) 00846 { 00847 status_tips = gtk_tooltips_new(); 00848 } 00849 /* 00850 * that 3rd parameter is not a bug, it really is a useless 00851 * parameter 00852 */ 00853 00854 gtk_tooltips_set_tip(GTK_TOOLTIPS(status_tips), ea->list_item, 00855 RUN_SERVICE(ea)->get_status_string(ea), 00856 _("status info here")); 00857 } 00858 ea->status = gtk_label_new(c); 00859 g_free(c); 00860 } 00861 00862 gtk_box_pack_start(GTK_BOX(box), ea->pix, FALSE, FALSE, 1); 00863 gtk_widget_show(ea->pix); 00864 gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); 00865 gtk_box_pack_start(GTK_BOX(box), label, TRUE, TRUE, 1); 00866 gtk_widget_show(label); 00867 gtk_box_pack_start(GTK_BOX(box), ea->status, FALSE, FALSE, 1); 00868 gtk_widget_show(ea->status); 00869 00870 gtk_container_add(GTK_CONTAINER(ea->list_item), box); 00871 gtk_widget_show(box); 00872 00873 ea->icon_handler = -1; 00874 00875 gtk_object_set_user_data(GTK_OBJECT(ea->list_item), ea); 00876 gtk_tree_insert(GTK_TREE(ea->account_contact->tree), ea->list_item, 00877 get_account_position(ea)); 00878 00879 gtk_signal_connect(GTK_OBJECT(ea->list_item), "button_press_event", 00880 GTK_SIGNAL_FUNC(account_click), 00881 (eb_account *)ea ); 00882 00883 gtk_widget_show(ea->list_item); 00884 00885 } |
|
Definition at line 716 of file status.c. References contact::accounts, add_account_line(), buddy_update_status(), account::online, and status_show. Referenced by move_account(), and move_contact().
00717 { 00718 GList *l; 00719 for (l = c->accounts; l; l = l->next) 00720 { 00721 eb_account * ea = l->data; 00722 if ((status_show == 0) || (status_show == 1) || ea->online) 00723 { 00724 add_account_line(ea); 00725 buddy_update_status(ea); 00726 } 00727 } 00728 } |
|
Definition at line 888 of file status.c. References _, _grouplist::contacts_shown, contact::group, contact::icon_handler, iconblank_bm, iconblank_pm, contact::label, _grouplist::list_item, contact::list_item, _grouplist::name, contact::nick, contact::pix, contact::status, _grouplist::tree, and contact::tree. Referenced by add_account_line(), and update_contact_list().
00889 { 00890 GtkWidget * box; 00891 00892 if (ec->list_item) 00893 return; 00894 00895 ec->list_item = gtk_tree_item_new(); 00896 ec->tree = gtk_tree_new(); 00897 00898 box = gtk_hbox_new(FALSE, 1); 00899 ec->pix = gtk_pixmap_new(iconblank_pm, iconblank_bm); 00900 ec->label = gtk_label_new(ec->nick); 00901 ec->status = gtk_label_new(""); 00902 00903 gtk_box_pack_start(GTK_BOX(box), ec->pix, FALSE, FALSE, 1); 00904 gtk_widget_show(ec->pix); 00905 gtk_misc_set_alignment(GTK_MISC(ec->label), 0.0, 0.5); 00906 gtk_box_pack_start(GTK_BOX(box), ec->label, TRUE, TRUE, 1); 00907 gtk_widget_show(ec->label); 00908 gtk_box_pack_start(GTK_BOX(box), ec->status, FALSE, FALSE, 1); 00909 gtk_widget_show(ec->status); 00910 00911 gtk_container_add(GTK_CONTAINER(ec->list_item), box); 00912 gtk_widget_show(box); 00913 00914 ec->icon_handler = -1; 00915 00916 gtk_object_set_user_data(GTK_OBJECT(ec->list_item), ec); 00917 00918 if (!ec->group->contacts_shown) { 00919 ec->group->tree = gtk_tree_new(); 00920 gtk_tree_item_set_subtree(GTK_TREE_ITEM(ec->group->list_item), 00921 ec->group->tree); 00922 if(strcmp(_("Unknown"),ec->group->name) !=0 && 00923 strcmp(_("Ignore"),ec->group->name) !=0) 00924 gtk_tree_item_expand(GTK_TREE_ITEM(ec->group->list_item)); 00925 } 00926 gtk_drag_source_set(ec->list_item, 00927 GDK_BUTTON1_MASK | GDK_BUTTON2_MASK, 00928 drag_types, 1, 00929 GDK_ACTION_MOVE|GDK_ACTION_DEFAULT); 00930 gtk_signal_connect(GTK_OBJECT(ec->list_item), "drag_begin", 00931 GTK_SIGNAL_FUNC(start_drag), ec); 00932 gtk_signal_connect(GTK_OBJECT(ec->list_item), "drag_data_get", 00933 GTK_SIGNAL_FUNC(drag_data_get), 00934 ec); 00935 00936 ec->group->contacts_shown++; 00937 gtk_tree_insert(GTK_TREE(ec->group->tree), ec->list_item, 00938 get_contact_position(ec)); 00939 00940 gtk_tree_item_set_subtree(GTK_TREE_ITEM(ec->list_item), ec->tree); 00941 if(ec->expanded) 00942 gtk_tree_item_expand(GTK_TREE_ITEM(ec->list_item)); 00943 else 00944 gtk_tree_item_collapse(GTK_TREE_ITEM(ec->list_item)); 00945 00946 gtk_signal_connect(GTK_OBJECT(ec->list_item), "button_press_event", 00947 GTK_SIGNAL_FUNC(contact_click), 00948 (struct contact*)ec ); 00949 gtk_signal_connect(GTK_OBJECT(ec->list_item), "expand", 00950 GTK_SIGNAL_FUNC(expand_contact), (struct contact*)ec); 00951 gtk_signal_connect(GTK_OBJECT(ec->list_item), "collapse", 00952 GTK_SIGNAL_FUNC(collapse_contact), (struct contact*)ec ); 00953 00954 gtk_widget_show(ec->list_item); 00955 } |
|
Definition at line 783 of file status.c. References contact_list, _grouplist::contacts_online, _grouplist::contacts_shown, drag_motion_cb(), drag_types, group_click(), _grouplist::label, _grouplist::list_item, _grouplist::name, and _grouplist::tree. Referenced by add_group(), MakeContactList(), and move_contact().
00784 { 00785 GtkWidget * box; 00786 00787 /* Might call add_group() - which calls add_group_line() 00788 before contact_list exists - this is OK so just return */ 00789 if (eg->list_item || !contact_list) 00790 return; 00791 00792 eg->list_item = gtk_tree_item_new(); 00793 00794 box = gtk_hbox_new(FALSE, 1); 00795 00796 eg->label = gtk_label_new(eg->name); 00797 gtk_label_set_justify(GTK_LABEL(eg->label), GTK_JUSTIFY_LEFT); 00798 00799 gtk_box_pack_start(GTK_BOX(box), eg->label, FALSE, FALSE, 1); 00800 gtk_widget_show(eg->label); 00801 00802 gtk_container_add(GTK_CONTAINER(eg->list_item), box); 00803 gtk_widget_show(box); 00804 00805 gtk_object_set_user_data(GTK_OBJECT(eg->list_item), (gpointer)eg); 00806 eg->contacts_online = 0; 00807 eg->contacts_shown = 0; 00808 eg->tree = NULL; 00809 gtk_tree_append(GTK_TREE(contact_list), eg->list_item); 00810 00811 gtk_signal_connect(GTK_OBJECT(eg->list_item), "button_press_event", 00812 GTK_SIGNAL_FUNC(group_click), 00813 (grouplist *)eg ); 00814 gtk_drag_dest_set(eg->list_item, GTK_DEST_DEFAULT_ALL & 00815 ~GTK_DEST_DEFAULT_HIGHLIGHT, 00816 drag_types, 1, 00817 GDK_ACTION_MOVE|GDK_ACTION_DEFAULT); 00818 gtk_signal_connect(GTK_OBJECT(eg->list_item), "drag_motion", 00819 GTK_SIGNAL_FUNC(drag_motion_cb), eg); 00820 00821 gtk_widget_show(eg->list_item); 00822 } |
|
Definition at line 1334 of file status.c. References _, account::account_contact, add_account_line(), buddy_update_status(), contact_login(), contact::group, account::icon_handler, iconlogin_bm, iconlogin_pm, _grouplist::name, contact::online, account::online, account::pix, refresh_buddy_status(), set_account_icon(), and account::status_handler.
01335 { 01336 01337 /* don't do anything if this has already been done */ 01338 if (ea->online) 01339 return; 01340 01341 ea->account_contact->online++; 01342 ea->online = TRUE; 01343 01344 if (do_ignore_unknown && !strcmp(_("Unknown"), ea->account_contact->group->name)) 01345 return; 01346 01347 add_account_line(ea); 01348 01349 /* sets the "open door" icon */ 01350 gtk_pixmap_set(GTK_PIXMAP(ea->pix), iconlogin_pm, iconlogin_bm); 01351 01352 /* set the timeout to remove the "open door" icon */ 01353 if (ea->icon_handler != -1) 01354 gtk_timeout_remove(ea->icon_handler); 01355 ea->icon_handler = gtk_timeout_add(10000, (GtkFunction)set_account_icon, 01356 (gpointer) ea); 01357 01358 /* if there is only one account (this one) logged in under the 01359 parent contact, we must login the contact also */ 01360 if (ea->account_contact->online == 1) 01361 contact_login(ea->account_contact); 01362 01363 buddy_update_status(ea); 01364 01365 /* make sure the status gets updated often */ 01366 ea->status_handler = gtk_timeout_add(30000, 01367 (GtkFunction)refresh_buddy_status, (gpointer) ea); 01368 } |
|
Definition at line 1372 of file status.c. References _, account::account_contact, contact_logoff(), contact::group, hide_account(), account::icon_handler, iconlogoff_bm, iconlogoff_pm, _grouplist::name, contact::online, account::online, account::pix, and account::status_handler. Referenced by remove_account().
01373 { 01374 01375 /* don't do anything if this has already been done */ 01376 if (!ea || !ea->online) 01377 return; 01378 01379 ea->account_contact->online--; 01380 ea->online = FALSE; 01381 01382 if (do_ignore_unknown && !strcmp(_("Unknown"), ea->account_contact->group->name)) 01383 return; 01384 01385 /* sets the "closed door" icon */ 01386 gtk_pixmap_set(GTK_PIXMAP(ea->pix), iconlogoff_pm, iconlogoff_bm); 01387 01388 /* removes any previously set timeouts for the account */ 01389 if (ea->icon_handler != -1) 01390 gtk_timeout_remove(ea->icon_handler); 01391 ea->icon_handler = -1; 01392 if (ea->status_handler != -1) 01393 gtk_timeout_remove(ea->status_handler); 01394 ea->status_handler = -1; 01395 01396 /* if this is the last account of the parent contact to log off, 01397 we must log off the contact also */ 01398 if (ea->account_contact->online == 0) 01399 contact_logoff(ea->account_contact); 01400 01401 /* timeout to remove the "close door" icon */ 01402 ea->icon_handler = gtk_timeout_add(10000, (GtkFunction)hide_account, 01403 (gpointer) ea); 01404 01405 } |
|
Definition at line 1173 of file status.c. References _, account::account_contact, contact_update_status(), eb_update_status(), account::icon_handler, account::list_item, account::pix, RUN_SERVICE, account::status, and status_tips. Referenced by add_contact_and_accounts(), buddy_login(), buddy_update_status_and_log(), hide_account(), hide_contact(), refresh_buddy_status(), set_account_icon(), and update_contact_list().
01174 { 01175 GdkPixmap * pm; 01176 GdkBitmap * bm; 01177 if (!ea || !ea->list_item) 01178 return; 01179 01180 { 01181 char * c = g_strndup(RUN_SERVICE(ea)->get_status_string(ea), 20); 01182 if(strlen(c) == 20) 01183 { 01184 c[19] = c[18] = c[17] = '.'; 01185 if(!status_tips) 01186 { 01187 status_tips = gtk_tooltips_new(); 01188 } 01189 /* 01190 * that 3rd parameter is not a bug, it really is a useless 01191 * parameter 01192 */ 01193 01194 gtk_tooltips_set_tip(GTK_TOOLTIPS(status_tips), ea->list_item, 01195 RUN_SERVICE(ea)->get_status_string(ea), 01196 _("status info here")); 01197 } 01198 eb_update_status(ea, c); 01199 gtk_label_set_text(GTK_LABEL(ea->status), c); 01200 01201 g_free(c); 01202 } 01203 01204 /* update the icon if another timeout isn't about to change it */ 01205 if (ea->icon_handler == -1) { 01206 RUN_SERVICE(ea)->get_status_pixmap(ea, &pm, &bm); 01207 gtk_pixmap_set(GTK_PIXMAP(ea->pix), pm, bm); 01208 } 01209 01210 /* since the contact's status info might be a copy of this 01211 account's status info, we should refresh that also */ 01212 contact_update_status(ea->account_contact); 01213 } |
|
Definition at line 1165 of file status.c. References buddy_update_status(), eb_log_status_changed(), and RUN_SERVICE.
01166 { 01167 eb_log_status_changed(ea, RUN_SERVICE(ea)->get_status_string(ea)); 01168 01169 buddy_update_status(ea); 01170 } |
|
Definition at line 1077 of file status.c. References _, contact::accounts, contact_list, contact_window, contact::default_chatb, contact::icon_handler, contact::label, contact::list_item, contact::nick, account::online, contact::pix, RUN_SERVICE, account::service_id, contact::status, and status_tips. Referenced by buddy_update_status(), set_contact_icon(), and update_contact_list().
01078 { 01079 GdkPixmap * pm; 01080 GdkBitmap * bm; 01081 eb_account * ea = NULL; 01082 GList * l; 01083 int width, height; 01084 int width2, height2; 01085 int width3, height3; 01086 01087 /* find the account who's status information should be reflected in 01088 the contact line (preferably the default protocol account, but 01089 if that one is not logged on, use another) */ 01090 for (l = ec->accounts; l; l = l->next) 01091 { 01092 eb_account * account = l->data; 01093 if (!ea) 01094 ea = account; 01095 if (!ea->online && account->online) 01096 ea = account; 01097 if (ec->default_chatb != ea->service_id && account->online && 01098 ec->default_chatb == account->service_id) 01099 ea = account; 01100 } 01101 01102 if (!ea) 01103 return; 01104 01105 { 01106 char * c = g_strndup(RUN_SERVICE(ea)->get_status_string(ea), 20); 01107 if(strlen(c) == 20) 01108 { 01109 c[19] = c[18] = c[17] = '.'; 01110 if(!status_tips) 01111 { 01112 status_tips = gtk_tooltips_new(); 01113 } 01114 /* 01115 * that 3rd parameter is not a bug, it really is a useless 01116 * parameter 01117 */ 01118 01119 gtk_tooltips_set_tip(GTK_TOOLTIPS(status_tips), ec->list_item, 01120 RUN_SERVICE(ea)->get_status_string(ea), 01121 _("status info here")); 01122 } 01123 gtk_label_set_text(GTK_LABEL(ec->status), c); 01124 g_free(c); 01125 } 01126 gtk_label_set_text(GTK_LABEL(ec->label), ec->nick); 01127 01128 /* set the icon if there isn't another timeout about to alter the icon */ 01129 if (ec->icon_handler == -1) 01130 { 01131 RUN_SERVICE(ea)->get_status_pixmap(ea, &pm, &bm); 01132 gtk_pixmap_set(GTK_PIXMAP(ec->pix), pm, bm); 01133 } 01134 01135 width = contact_list->allocation.width; 01136 height = contact_list->allocation.height; 01137 01138 if(GTK_WIDGET_VISIBLE(GTK_SCROLLED_WINDOW(contact_window)->vscrollbar)) 01139 { 01140 width3 = GTK_SCROLLED_WINDOW(contact_window)->vscrollbar->allocation.width; 01141 height3 = GTK_SCROLLED_WINDOW(contact_window)->vscrollbar->allocation.height; 01142 } 01143 else 01144 { 01145 width3 = 0, height3 = 0; 01146 } 01147 01148 if (do_noautoresize == 0) 01149 { 01150 width2 = contact_window->allocation.width; 01151 height2 = contact_window->allocation.height; 01152 01153 if(width+width3> width2) 01154 { 01155 gtk_widget_set_usize(contact_window,width+width3+2,height2); 01156 } 01157 } 01158 01159 } |
|
Definition at line 1588 of file status.c. References menu_item_data::callback, menu_item_data::data, DBG_CORE, eb_debug, eb_import_function(), EB_IMPORT_MENU, GetPref(), menu_item_data::label, and menu_data::menu_items. Referenced by eb_status_window(), and rebuild_import_menu().
01589 { 01590 GtkWidget *label; 01591 // import_items is a list of struct callback_items 01592 GList *list=NULL; 01593 GtkWidget * import_menu = gtk_menu_new(); 01594 menu_data *md=NULL; 01595 menu_item_data *mid=NULL; 01596 01597 label = gtk_tearoff_menu_item_new(); 01598 gtk_menu_append(GTK_MENU(import_menu), label); 01599 gtk_widget_show(label); 01600 01601 eb_debug(DBG_CORE, ">\n"); 01602 /* import_items is a list that is maintained as a pref, modified by calls to eb_add_menu_item */ 01603 md = GetPref(EB_IMPORT_MENU); 01604 if(md) { 01605 for(list = md->menu_items; list; list = g_list_next(list) ) { 01606 mid=(menu_item_data *)list->data; 01607 eb_debug(DBG_CORE, "adding import item: %s\n", mid->label); 01608 label = gtk_menu_item_new_with_label(mid->label); 01609 gtk_menu_append(GTK_MENU(import_menu), label); 01610 gtk_signal_connect(GTK_OBJECT(label), "activate", 01611 eb_import_function, mid->callback); 01612 gtk_widget_show(label); 01613 } 01614 } 01615 gtk_menu_item_set_submenu(GTK_MENU_ITEM(import_submenuitem), import_menu); 01616 gtk_widget_show(import_menu); 01617 gtk_widget_show(import_submenuitem); 01618 eb_debug(DBG_CORE, "<\n"); 01619 } |
|
Definition at line 1551 of file status.c. References menu_item_data::data, DBG_CORE, eb_debug, eb_profile_function(), EB_PROFILE_MENU, GetPref(), menu_item_data::label, and menu_data::menu_items. Referenced by eb_status_window(), and rebuild_profile_menu().
01552 { 01553 GtkWidget *label; 01554 // import_items is a list of struct callback_items 01555 GList *list=NULL; 01556 GtkWidget * profile_menu = gtk_menu_new(); 01557 menu_data *md=NULL; 01558 menu_item_data *mid=NULL; 01559 gboolean added = FALSE; 01560 01561 label = gtk_tearoff_menu_item_new(); 01562 gtk_menu_append(GTK_MENU(profile_menu), label); 01563 gtk_widget_show(label); 01564 01565 eb_debug(DBG_CORE, ">\n"); 01566 /* import_items is a list that is maintained as a pref, modified by calls to eb_add_menu_item */ 01567 md = GetPref(EB_PROFILE_MENU); 01568 if(md) { 01569 for(list = md->menu_items; list; list = g_list_next(list) ) { 01570 mid=(menu_item_data *)list->data; 01571 eb_debug(DBG_CORE, "adding profile item: %s\n", mid->label); 01572 label = gtk_menu_item_new_with_label(mid->label); 01573 gtk_menu_append(GTK_MENU(profile_menu), label); 01574 gtk_signal_connect(GTK_OBJECT(label), "activate", 01575 eb_profile_function, mid); 01576 gtk_widget_show(label); 01577 added = TRUE; 01578 } 01579 } 01580 gtk_widget_set_sensitive(profile_submenuitem, added); 01581 01582 gtk_menu_item_set_submenu(GTK_MENU_ITEM(profile_submenuitem), profile_menu); 01583 gtk_widget_show(profile_menu); 01584 gtk_widget_show(profile_submenuitem); 01585 eb_debug(DBG_CORE, "<\n"); 01586 } |
|
Definition at line 1621 of file status.c. References account_menu(), and MakeStatusMenu(). Referenced by eb_status_window(), and rebuild_set_status_menu().
01622 { 01623 GtkWidget *label; 01624 GtkWidget * account_menu = gtk_menu_new(); 01625 GList *list=NULL; 01626 01627 label = gtk_tearoff_menu_item_new(); 01628 gtk_menu_append(GTK_MENU(account_menu), label); 01629 gtk_widget_show(label); 01630 for(list = accounts; list; list = g_list_next(list) ) 01631 { 01632 label = MakeStatusMenu(list->data); 01633 ((eb_local_account*)(list->data))->status_button = label; 01634 gtk_menu_append(GTK_MENU(account_menu), label); 01635 gtk_widget_show(label); 01636 } 01637 gtk_menu_item_set_submenu(GTK_MENU_ITEM(set_status_submenuitem), account_menu); 01638 gtk_widget_show(account_menu); 01639 gtk_widget_show(set_status_submenuitem); 01640 } |
|
Definition at line 553 of file status.c. References local_account::connected, and RUN_SERVICE. Referenced by start_login().
00553 { 00554 GList *node = accounts ; 00555 while(node) { 00556 eb_local_account *ac = (eb_local_account*)(node->data); 00557 if (!ac->connected) { 00558 RUN_SERVICE(ac)->login(ac) ; 00559 } 00560 node = node->next ; 00561 } 00562 } |
|
Definition at line 1702 of file status.c. References _, away_menu, build_away_menu(), contact_window, DBG_CORE, delete_event(), eb_debug, eb_icon(), eb_import_window(), eb_profile_window(), eb_save_size(), eb_set_status_window(), geometry, get_main_menu(), iconblank_bm, iconblank_pm, iconlogin_bm, iconlogin_pm, iconlogoff_bm, iconlogoff_pm, load_away_messages(), main_menu_factory, MakeContactList(), SetPref(), status_bar, status_message, status_show_callback(), statuswindow, and update_contact_list(). Referenced by ok_callback(), and start_login().
01703 { 01704 GtkWidget *statusbox; 01705 GtkWidget *vbox; 01706 GtkWidget *label; 01707 GtkWidget *menubox; 01708 GtkWidget *menu; 01709 GtkWidget *submenuitem; 01710 GtkWidget *hbox; 01711 GtkAccelGroup *accel = NULL; 01712 char * userrc = NULL; 01713 int win_x, win_y, win_w, win_h; 01714 int flags; 01715 01716 statuswindow = gtk_window_new(GTK_WINDOW_TOPLEVEL); 01717 accel = gtk_accel_group_new(); 01718 gtk_window_add_accel_group( GTK_WINDOW(statuswindow),accel ); 01719 /* The next line allows you to make the window smaller than the orig. size */ 01720 gtk_window_set_policy(GTK_WINDOW(statuswindow), TRUE, TRUE, TRUE); 01721 gtk_widget_realize(statuswindow); 01722 01723 iconlogin_pm = gdk_pixmap_create_from_xpm_d(statuswindow->window, &iconlogin_bm, 01724 NULL, (gchar **) login_icon_xpm); 01725 iconblank_pm = gdk_pixmap_create_from_xpm_d(statuswindow->window, &iconblank_bm, 01726 NULL, (gchar **) blank_icon_xpm); 01727 iconlogoff_pm = gdk_pixmap_create_from_xpm_d(statuswindow->window, &iconlogoff_bm, 01728 NULL, (gchar **) logoff_icon_xpm); 01729 01730 /* handle geometry - ivey */ 01731 01732 #ifndef __MINGW32__ 01733 if (geometry[0] != 0) { 01734 flags = XParseGeometry(geometry, &win_x, &win_y, &win_w, &win_h); 01735 /* proper negative handling comes later... 01736 if ((flags & XValue) && (flags & XNegative)) 01737 *win_x = DisplayWidth(display, screenNum) - *win_x; 01738 if ((flags & YValue) && (flags & YNegative)) 01739 *win_y = DisplayHeight(display, screenNum) - *win_y; 01740 */ 01741 gtk_window_set_position(GTK_WINDOW(statuswindow), GTK_WIN_POS_NONE); 01742 gtk_widget_set_uposition(statuswindow, win_x, win_y); 01743 gtk_widget_set_usize(statuswindow, win_w, win_h); 01744 } 01745 #endif 01746 statusbox = gtk_vbox_new(FALSE, 0); 01747 01748 menubox = gtk_handle_box_new(); 01749 gtk_handle_box_set_handle_position(GTK_HANDLE_BOX(menubox), GTK_POS_LEFT); 01750 gtk_handle_box_set_snap_edge(GTK_HANDLE_BOX(menubox), GTK_POS_LEFT); 01751 gtk_handle_box_set_shadow_type(GTK_HANDLE_BOX(menubox), GTK_SHADOW_NONE); 01752 01753 userrc = g_strconcat(config_dir, G_DIR_SEPARATOR_S, "menurc", NULL); 01754 gtk_item_factory_parse_rc(userrc); 01755 g_free(userrc); 01756 01757 get_main_menu(statuswindow, &menu); 01758 01759 /* fill in branches */ 01760 01761 submenuitem = gtk_item_factory_get_widget(main_menu_factory, "/File/Import"); 01762 eb_import_window(submenuitem); 01763 SetPref("widget::import_submenuitem", submenuitem); 01764 01765 submenuitem = gtk_item_factory_get_widget(main_menu_factory, "/File/Set profile"); 01766 eb_profile_window(submenuitem); 01767 SetPref("widget::profile_submenuitem", submenuitem); 01768 01769 submenuitem = gtk_item_factory_get_widget(main_menu_factory, "/File/Set status"); 01770 eb_set_status_window(submenuitem); 01771 SetPref("widget::set_status_submenuitem", submenuitem); 01772 01773 away_menu = gtk_menu_new(); 01774 load_away_messages(); 01775 build_away_menu(); 01776 01777 submenuitem = gtk_item_factory_get_widget(main_menu_factory, "/Tools/Set as away"); 01778 gtk_menu_item_set_submenu(GTK_MENU_ITEM(submenuitem), away_menu); 01779 gtk_widget_show(away_menu); 01780 01781 gtk_container_add(GTK_CONTAINER(menubox), menu ); 01782 gtk_widget_show(menu); 01783 gtk_box_pack_start(GTK_BOX(statusbox), menubox, FALSE, FALSE, 0 ); 01784 gtk_widget_show(menubox); 01785 01786 /* 01787 * Do the main status window 01788 */ 01789 01790 vbox = gtk_vbox_new(FALSE, 0); 01791 hbox = gtk_hbox_new(FALSE, 0); 01792 01793 label = gtk_radio_button_new_with_label 01794 (NULL, _("Online")); 01795 gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 1); 01796 gtk_signal_connect(GTK_OBJECT(label), "clicked", 01797 GTK_SIGNAL_FUNC(status_show_callback), 01798 (gpointer) 2); 01799 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(label),TRUE); 01800 gtk_widget_show(label); 01801 01802 01803 label = gtk_radio_button_new_with_label 01804 (gtk_radio_button_group(GTK_RADIO_BUTTON(label)), 01805 _("Contacts")); 01806 gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 1); 01807 gtk_signal_connect(GTK_OBJECT(label), "clicked", 01808 GTK_SIGNAL_FUNC(status_show_callback), 01809 (gpointer) 1); 01810 gtk_widget_show(label); 01811 01812 01813 label = gtk_radio_button_new_with_label 01814 (gtk_radio_button_group(GTK_RADIO_BUTTON(label)), 01815 _("Accounts")); 01816 gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 1); 01817 gtk_signal_connect(GTK_OBJECT(label), "clicked", 01818 GTK_SIGNAL_FUNC(status_show_callback), 01819 (gpointer) 0); 01820 gtk_widget_show(label); 01821 01822 gtk_box_pack_start(GTK_BOX(vbox),hbox,FALSE,FALSE,0); 01823 gtk_widget_show(hbox); 01824 01825 eb_debug(DBG_CORE, "%d\n", g_list_length(accounts)); 01826 MakeContactList(); 01827 gtk_widget_show(contact_window); 01828 gtk_box_pack_start(GTK_BOX(vbox),contact_window,TRUE,TRUE,0); 01829 01830 gtk_widget_show(vbox); 01831 01832 gtk_box_pack_start(GTK_BOX(statusbox), vbox, TRUE, TRUE,0); 01833 01834 /* 01835 * Status Bar 01836 */ 01837 01838 hbox = gtk_handle_box_new(); 01839 gtk_handle_box_set_handle_position(GTK_HANDLE_BOX(hbox), GTK_POS_LEFT); 01840 gtk_handle_box_set_snap_edge(GTK_HANDLE_BOX(hbox), GTK_POS_LEFT); 01841 status_message = gtk_label_new(_("Welcome To Yattm")); 01842 status_bar = gtk_frame_new(NULL); 01843 gtk_frame_set_shadow_type(GTK_FRAME(status_bar), GTK_SHADOW_IN ); 01844 gtk_widget_show(status_message); 01845 gtk_container_add(GTK_CONTAINER(status_bar), status_message); 01846 gtk_widget_show(status_bar); 01847 gtk_container_add(GTK_CONTAINER(hbox), status_bar); 01848 gtk_widget_show(hbox); 01849 01850 gtk_box_pack_start(GTK_BOX(statusbox), hbox ,FALSE, FALSE,0); 01851 gtk_window_set_title(GTK_WINDOW(statuswindow), _("Yattm "VERSION)); 01852 eb_icon(statuswindow->window); 01853 gtk_widget_show(statusbox); 01854 01855 gtk_container_add(GTK_CONTAINER(statuswindow), statusbox ); 01856 01857 gtk_signal_connect (GTK_OBJECT (statuswindow), "delete_event", 01858 GTK_SIGNAL_FUNC (delete_event), NULL); 01859 01860 gtk_widget_show( statuswindow); 01861 01862 gtk_signal_connect(GTK_OBJECT(contact_window), "size_allocate", 01863 eb_save_size,NULL); 01864 update_contact_list (); 01865 } |
|
Definition at line 96 of file status.c. References statuswindow. Referenced by console_session_get_command().
00097 { 00098 gdk_window_raise(statuswindow->window); 00099 } |
|
|
|
Definition at line 1008 of file status.c. References account::account_contact, DBG_CORE, eb_debug, account::icon_handler, account::list_item, account::pix, account::status, and contact::tree. Referenced by hide_account(), move_account(), remove_account(), remove_contact_line(), and update_contact_list().
01009 { 01010 01011 if (!ea || !ea->account_contact || !ea->list_item) { 01012 if(!ea->account_contact) 01013 eb_debug(DBG_CORE, "Not removing account_line, ea->account_contact is NULL !\n"); 01014 return; 01015 } 01016 01017 gtk_container_remove(GTK_CONTAINER(ea->account_contact->tree), ea->list_item); 01018 ea->list_item = NULL; 01019 ea->pix = NULL; 01020 ea->status = NULL; 01021 if (ea->icon_handler != -1) 01022 gtk_timeout_remove(ea->icon_handler); 01023 ea->icon_handler = -1; 01024 } |
|
Definition at line 981 of file status.c. References contact::accounts, _grouplist::contacts_shown, contact::group, contact::icon_handler, contact::label, account::list_item, contact::list_item, contact::pix, remove_account_line(), contact::status, contact::tree, and _grouplist::tree. Referenced by hide_contact(), move_account(), move_contact(), remove_contact(), remove_group_line(), and update_contact_list().
00982 { 00983 GList * accounts; 00984 00985 if (!ec->list_item) 00986 return; 00987 00988 for (accounts = ec->accounts; accounts; accounts = accounts->next) { 00989 eb_account * ea = accounts->data; 00990 if (ea->list_item) 00991 remove_account_line(ea); 00992 } 00993 00994 ec->group->contacts_shown--; 00995 gtk_container_remove(GTK_CONTAINER(ec->group->tree), ec->list_item); 00996 ec->list_item = NULL; 00997 ec->tree = NULL; 00998 ec->pix = NULL; 00999 ec->status = NULL; 01000 ec->label = NULL; 01001 if (ec->icon_handler != -1) 01002 gtk_timeout_remove(ec->icon_handler); 01003 ec->icon_handler = -1; 01004 } |
|
Definition at line 958 of file status.c. References contact_list, _grouplist::label, contact::list_item, _grouplist::list_item, _grouplist::members, remove_contact_line(), and _grouplist::tree. Referenced by remove_group().
00959 { 00960 GList * contacts; 00961 00962 if (!eg->list_item) 00963 return; 00964 00965 for (contacts = eg->members; contacts; contacts = contacts->next) { 00966 struct contact * ec = contacts->data; 00967 if (ec->list_item) 00968 remove_contact_line(ec); 00969 } 00970 00971 gtk_container_remove(GTK_CONTAINER(contact_list), eg->list_item); 00972 eg->list_item = NULL; 00973 eg->tree = NULL; 00974 eg->label = NULL; 00975 } |
|
Definition at line 605 of file status.c. References _, contact::accounts, add_account_line(), add_contact_line(), buddy_update_status(), contact_update_status(), contact::list_item, _grouplist::members, contact::online, remove_account_line(), remove_contact_line(), and status_show. Referenced by add_button_callback(), drag_data_get(), eb_import_function(), eb_profile_function(), eb_status_window(), ignore_dialog_callback(), ok_callback(), remove_account_callback(), remove_contact_callback(), remove_group_callback(), and status_show_callback().
00606 { 00607 GList * grps; 00608 GList * contacts; 00609 GList * accounts; 00610 00611 grouplist * grp; 00612 struct contact * con; 00613 eb_account * ea; 00614 00615 /* Error Check */ 00616 if ( (status_show < 0) || (status_show > 2) ) { status_show = 2; } 00617 00618 for (grps = groups; grps; grps = grps->next) 00619 { 00620 grp = grps->data; 00621 00622 /* Currently, groups are always visible so we never touch them :) */ 00623 00624 for (contacts = grp->members; contacts; contacts = contacts->next) 00625 { 00626 con = contacts->data; 00627 00628 /* Visibility of contact */ 00629 00630 /* show_all_accounts presumes show_all_contacts */ 00631 if ((status_show == 1) || (status_show == 0)) 00632 { 00633 /* MUST show the contact */ 00634 add_contact_line (con); 00635 contact_update_status (con); 00636 } 00637 else 00638 { 00639 /* defer to whether it's online or not */ 00640 00641 if (! con->online) 00642 { 00643 remove_contact_line (con); 00644 } 00645 else 00646 { 00647 contact_update_status (con); 00648 } 00649 } 00650 00651 for (accounts = con->accounts; accounts; accounts = accounts->next) 00652 { 00653 ea = accounts->data; 00654 00655 if ( (status_show == 0) || (status_show == 1) ) 00656 { 00657 /* definitely visible */ 00658 00659 add_account_line(ea); 00660 buddy_update_status(ea); 00661 00662 if (con->list_item == NULL) 00663 { 00664 /* Do nothing */ 00665 fprintf (stderr, 00666 _("Account vanished after add_account_line.\n")); 00667 } 00668 else if (status_show == 0) 00669 { 00670 /* MAKE IT VISIBLE NOW */ 00671 00672 gtk_tree_item_expand (GTK_TREE_ITEM(con->list_item)); 00673 } 00674 else 00675 { 00676 gtk_tree_item_collapse (GTK_TREE_ITEM(con->list_item)); 00677 } 00678 } 00679 else 00680 { 00681 /* Close it up */ 00682 00683 if (ea->online) 00684 { 00685 buddy_update_status(ea); 00686 00687 if (con->list_item != NULL) 00688 { 00689 gtk_tree_item_collapse 00690 (GTK_TREE_ITEM(con->list_item)); 00691 } 00692 else 00693 { 00694 fprintf (stderr, _("Account missing while online?\n")); 00695 } 00696 } 00697 else 00698 { 00699 remove_account_line(ea); 00700 } 00701 } 00702 } /* End for loop for accounts */ 00703 00704 } /* End for loop for contacts */ 00705 00706 } /* End for loop for groups */ 00707 00708 } /* end update_contact_list */ |
|
Definition at line 1407 of file status.c. References contact_window, DBG_CORE, eb_debug, and iGetLocalPref().
01408 { 01409 int h,w; 01410 h = iGetLocalPref("length_contact_window"); 01411 w = iGetLocalPref("width_contact_window"); 01412 if (h == 0) 01413 h = 256; 01414 if (w == 0) 01415 w = 150; 01416 eb_debug(DBG_CORE, "statuswindow size: %dx%d\n",h,w); 01417 gtk_widget_set_usize(contact_window, w, h); 01418 } |
|
|