Changeset 3408 for trunk/jons-gtk2-gui

Show
Ignore:
Timestamp:
03/24/03 04:01:55 (6 years ago)
Author:
bostjanlah
Message:

Use status_change
A few other minor changes

Files:
1 modified

Legend:

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

    r3324 r3408  
    1919 */ 
    2020 
     21#include "utilities.h" 
    2122#include "licq_gtk.h" 
    2223 
     
    2425 
    2526GtkWidget *system_status; 
     27bool allow_refresh = true; 
    2628 
    27 void system_status_click(GtkWidget *, GdkEventButton *, gpointer); 
    2829void system_message_window(); 
    2930void licq_tray_start_flashing(); 
    3031void licq_tray_stop_flashing(); 
     32void convo_open(ICQUser *); 
    3133 
    32 GtkWidget *system_status_new(gint borderwidth) 
     34gboolean 
     35system_status_click(GtkWidget *w, GdkEventButton *event, gpointer) 
     36{ 
     37    /* Make sure we have a double click here */ 
     38    if (event->type != GDK_2BUTTON_PRESS || event->button != 1) 
     39        return TRUE; 
     40 
     41    /* If no events are pending, leave */ 
     42    if (ICQUser::getNumUserEvents() == 0) 
     43        return TRUE; 
     44 
     45    /* Check for system messages first */ 
     46    ICQOwner *owner = gUserManager.FetchOwner(LOCK_R); 
     47    gushort owner_events = owner->NewMessages(); 
     48 
     49    if (owner_events > 0) { 
     50        system_message_window(); 
     51        gUserManager.DropOwner(); 
     52        return TRUE; 
     53    } 
     54    else 
     55        gUserManager.DropOwner(); 
     56 
     57    /* Now for the user messages */ 
     58    allow_refresh = false; 
     59    FOR_EACH_USER_START(LOCK_R) 
     60    { 
     61        if (pUser->NewMessages() > 0) 
     62            convo_open(pUser); 
     63    }    
     64    FOR_EACH_USER_END 
     65    allow_refresh = true; 
     66 
     67    contact_list_refresh(); 
     68    system_status_refresh(); 
     69 
     70    return TRUE; 
     71} 
     72 
     73GtkWidget * 
     74system_status_new() 
    3375{ 
    3476    system_status = gtk_statusbar_new(); 
    3577 
    36     gtk_container_set_border_width(GTK_CONTAINER(system_status), borderwidth); 
     78    gtk_container_set_border_width(GTK_CONTAINER(system_status), 2); 
    3779 
    3880    /* The event box for new messages */ 
     
    4688            G_CALLBACK(system_status_click), 0); 
    4789     
    48     gtk_widget_show(system_status); 
    49     gtk_widget_show(event_box); 
     90    gtk_widget_show_all(event_box); 
    5091 
    5192    return event_box; 
     
    5596system_status_refresh() 
    5697{ 
     98    if (!allow_refresh) 
     99        return; 
     100         
    57101    ICQOwner *owner = gUserManager.FetchOwner(LOCK_R); 
    58102    gushort num_owner_events = owner->NewMessages(); 
     
    61105    gulong num_user_event = ICQUser::getNumUserEvents() - num_owner_events; 
    62106 
    63     guint id = gtk_statusbar_get_context_id(GTK_STATUSBAR(system_status), 
    64                         "Status"); 
    65     gtk_statusbar_pop(GTK_STATUSBAR(system_status), id); 
    66107    if (num_owner_events > 0) 
    67         gtk_statusbar_push(GTK_STATUSBAR(system_status), id, "SysMsg"); 
     108        status_change(system_status, "sta", "SysMsg"); 
    68109    else if (num_user_event > 0) { 
    69110        gchar *label; 
     
    73114        label = g_strdup_printf("%ld msgs", num_user_event); 
    74115 
    75         gtk_statusbar_push(GTK_STATUSBAR(system_status), id, label); 
     116        status_change(system_status, "sta", label); 
    76117    g_free(label); 
    77118    } 
    78119    else 
    79         gtk_statusbar_push(GTK_STATUSBAR(system_status), id, "No msgs"); 
     120        status_change(system_status, "sta", "No msgs"); 
    80121 
    81122    if (num_owner_events > 0 || num_user_event > 0) 
     
    84125        licq_tray_stop_flashing(); 
    85126} 
    86  
    87 void  
    88 system_status_click(GtkWidget *w, GdkEventButton *event, gpointer d) 
    89 { 
    90     /* Make sure we have a double click here */ 
    91     if (event->type != GDK_2BUTTON_PRESS || event->button != 1) 
    92         return; 
    93  
    94     /* If no events are pending, leave */ 
    95     if (ICQUser::getNumUserEvents() == 0) 
    96         return; 
    97  
    98     /* Check for system messages first */ 
    99     ICQOwner *owner = gUserManager.FetchOwner(LOCK_R); 
    100     gushort owner_events = owner->NewMessages(); 
    101  
    102     if (owner_events > 0) { 
    103         system_message_window(); 
    104         gUserManager.DropOwner(); 
    105         return; 
    106     } 
    107     else 
    108         gUserManager.DropOwner(); 
    109  
    110     /* Now for the user messages */ 
    111     FOR_EACH_USER_START(LOCK_R) 
    112     { 
    113         if(pUser->NewMessages() > 0) 
    114             convo_open(pUser, false); 
    115     }    
    116     FOR_EACH_USER_END 
    117  
    118     contact_list_refresh(); 
    119     system_status_refresh(); 
    120 }