Changeset 3345 for trunk/jons-gtk2-gui

Show
Ignore:
Timestamp:
03/11/03 06:48:29 (6 years ago)
Author:
bostjanlah
Message:

contact_list_new now takes no parameters
right click menus now have a pixmap (Matias Aguirre)
remove add_popup - now no longer needed (Matias Aguirre)

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/jons-gtk2-gui/src/contact_list.cpp

    r3324 r3345  
    5757void add_to_popup(const gchar *, GtkWidget *, GtkSignalFunc, ICQUser *); 
    5858 
    59 GtkWidget *contact_list_new(gint height, gint width) 
     59GtkWidget *contact_list_new() 
    6060{ 
    6161    GtkWidget *_contact_l; 
     
    9191    gtk_tree_view_columns_autosize(GTK_TREE_VIEW(_contact_l)); 
    9292     
    93     /* Size the contact list */ 
    94     //gtk_widget_set_size_request(_contact_l, width, height); 
    95  
    9693    /* A double click on a user name */ 
    9794    g_signal_connect(G_OBJECT(_contact_l), "button_press_event", 
     
    361358    { 
    362359        GtkWidget *_menu; 
    363         GtkWidget *item; 
    364         GtkWidget *separator; 
    365  
     360        GtkWidget *_menu_item; 
     361        GtkWidget *_root_menu; 
     362        GtkWidget *_menu_bar; 
     363     
    366364        _menu = gtk_menu_new(); 
    367365 
    368366        /* The non-sensitive user name as a title */ 
    369         item = gtk_menu_item_new_with_label(user->GetAlias()); 
    370         gtk_menu_shell_append(GTK_MENU_SHELL(_menu), item); 
    371         gtk_widget_set_sensitive(item, FALSE); 
    372         gtk_widget_show(item); 
    373  
     367        _menu_item = menu_new_item(_menu, user->GetAlias(), 0, FALSE); 
     368                     
    374369        /* A separator */ 
    375         separator = gtk_hseparator_new(); 
    376         item = gtk_menu_item_new(); 
    377         gtk_menu_shell_append(GTK_MENU_SHELL(_menu), item); 
    378         gtk_container_add(GTK_CONTAINER(item), separator); 
    379         gtk_widget_set_sensitive(item, FALSE); 
    380         gtk_widget_show_all(item); 
    381  
    382         add_to_popup("Start Conversation", _menu, 
    383                  GTK_SIGNAL_FUNC(convo_open_cb), user); 
    384  
    385         add_to_popup("Send URL", _menu, 
    386                  GTK_SIGNAL_FUNC(list_send_url), user); 
    387  
    388         add_to_popup("Send Chat Request", _menu, 
    389                      GTK_SIGNAL_FUNC(list_request_chat), user); 
    390  
    391         add_to_popup("Send File Request", _menu, 
    392                      GTK_SIGNAL_FUNC(list_request_file), user); 
    393      
     370        menu_separator(_menu); 
     371         
     372        /* add_to_popup("Start Conversation", _menu, 
     373                 GTK_SIGNAL_FUNC(convo_open_cb), user); */ 
     374               
     375        _menu_item =  
     376            menu_new_item_with_pixmap(_menu, "Start Conversation", 
     377                        GTK_SIGNAL_FUNC(convo_open_cb), message_icon, user); 
     378         
     379        _menu_item =  
     380            menu_new_item_with_pixmap(_menu, "Send URL", 
     381                        GTK_SIGNAL_FUNC(list_send_url), url_icon, user); 
     382 
     383        _menu_item =  
     384            menu_new_item_with_pixmap(_menu, "Send Chat Request", 
     385                        GTK_SIGNAL_FUNC(list_request_chat), chat_icon, user); 
     386                         
     387        _menu_item =  
     388            menu_new_item_with_pixmap(_menu, "Send File Request", 
     389                        GTK_SIGNAL_FUNC(list_request_file), file_icon, user); 
     390 
    394391        if (user->Secure()) 
    395             add_to_popup("Close Secure Channel", _menu, 
    396                 GTK_SIGNAL_FUNC(create_key_request_window), 
    397                 user); 
     392            _menu_item =  
     393                menu_new_item_with_pixmap(_menu, "Close Secure Channel", 
     394                        GTK_SIGNAL_FUNC(create_key_request_window), blank_icon, user); 
    398395        else     
    399             add_to_popup("Request Secure Channel", _menu, 
    400                 GTK_SIGNAL_FUNC(create_key_request_window), 
    401                 user); 
     396            _menu_item =  
     397                menu_new_item_with_pixmap(_menu, "Request Secure Channel", 
     398                        GTK_SIGNAL_FUNC(create_key_request_window), blank_icon, user); 
    402399 
    403400        /* A separator */ 
    404     separator = gtk_hseparator_new(); 
    405     item = gtk_menu_item_new();  
    406     gtk_menu_shell_append(GTK_MENU_SHELL(_menu), item); 
    407     gtk_container_add(GTK_CONTAINER(item), separator); 
    408     gtk_widget_set_sensitive(item, FALSE); 
    409     gtk_widget_show_all(item);  
     401        menu_separator(_menu); 
    410402 
    411403        if (user->Status() != ICQ_STATUS_ONLINE &&  
     
    415407            strcat(str_status, " Message"); 
    416408 
    417             add_to_popup(str_status, _menu, 
    418                      GTK_SIGNAL_FUNC(list_read_message), user); 
    419         } 
    420  
    421         add_to_popup("Info", _menu, 
    422             GTK_SIGNAL_FUNC(list_info_user), user); 
    423  
    424         add_to_popup("History", _menu, 
    425                  GTK_SIGNAL_FUNC(list_history), user); 
    426  
    427         add_to_popup("More...", _menu, 
    428                  GTK_SIGNAL_FUNC(list_more_window), user); 
    429  
    430         add_to_popup("Delete User", _menu, 
    431                  GTK_SIGNAL_FUNC(list_delete_user), user); 
    432      
    433         gtk_menu_popup(GTK_MENU(_menu), 0, 0, 0, 0,  
    434                    event->button, event->time); 
     409            _menu_item =  
     410                menu_new_item_with_pixmap(_menu, str_status, 
     411                        GTK_SIGNAL_FUNC(list_read_message), blank_icon, user); 
     412        } 
     413 
     414        _menu_item =  
     415            menu_new_item_with_pixmap(_menu, "Info", 
     416                    GTK_SIGNAL_FUNC(list_info_user), blank_icon, user); 
     417 
     418        _menu_item =  
     419            menu_new_item_with_pixmap(_menu, "History", 
     420                    GTK_SIGNAL_FUNC(list_history), blank_icon, user); 
     421 
     422        _menu_item =  
     423            menu_new_item_with_pixmap(_menu, "More...", 
     424                    GTK_SIGNAL_FUNC(list_more_window), blank_icon, user); 
     425 
     426        _menu_item =  
     427            menu_new_item_with_pixmap(_menu, "Delete User", 
     428                    GTK_SIGNAL_FUNC(list_delete_user), blank_icon, user); 
     429 
     430        _root_menu = 
     431            menu_new_item(0, "", 0, 0); 
     432 
     433        gtk_menu_item_set_submenu(GTK_MENU_ITEM(_root_menu), _menu); 
     434 
     435        _menu_bar = gtk_menu_bar_new(); 
     436        gtk_widget_show(_menu_bar); 
     437 
     438        gtk_menu_shell_append(GTK_MENU_SHELL(_menu_bar), _root_menu); 
     439 
     440        gtk_menu_popup(GTK_MENU(_menu), 0, 0, 0, 0, 
     441            event->button, event->time);     
     442 
    435443    } 
    436444    return FALSE; 
    437445} 
    438446 
    439 void add_to_popup(const gchar *label, GtkWidget *menu, 
    440           GtkSignalFunc func, ICQUser *user) 
    441 { 
    442     GtkWidget *item = gtk_menu_item_new_with_label(label); 
    443     g_signal_connect(G_OBJECT(item), "activate", 
    444                G_CALLBACK(func), user); 
    445     gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); 
    446     gtk_widget_show(item); 
    447 }