Changeset 5304


Ignore:
Timestamp:
Mar 19, 2008, 3:30:21 PM (14 years ago)
Author:
charles
Message:

(gtk) message log: don't call deprecated gtk+ functions. add `pause' button.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gtk/msgwin.c

    r5290 r5304  
    4444    GtkTreeModel * sort;
    4545    int maxLevel;
     46    gboolean isPaused;
    4647    guint refresh_tag;
    4748};
     
    152153}
    153154
     155static void
     156onPauseToggled( GtkToggleToolButton * w, gpointer gdata )
     157{
     158    struct MsgData * data = gdata;
     159    data->isPaused = gtk_toggle_tool_button_get_active( w );
     160}
     161
    154162static struct {
    155163  const char * label;
     
    284292{
    285293    const char * default_name = g_get_application_name( );
    286     static int sequence = 1;
     294    static unsigned int sequence = 1;
    287295    tr_msg_list * i;
    288296
     
    308316onRefresh( gpointer gdata )
    309317{
    310     tr_msg_list * msgs = tr_getQueuedMessages( );
    311     if( msgs )
    312     {
    313         /* add the new messages and append them to the end of
    314          * our persistent list */
    315         struct MsgData * data = gdata;
    316         tr_msg_list * tail = addMessages( data->store, msgs );
    317         if( myTail )
    318             myTail->next = msgs;
    319         else
    320             myHead = msgs;
    321         myTail = tail;
     318    struct MsgData * data = gdata;
     319g_message( "paused: %d", data->isPaused );
     320    if( !data->isPaused )
     321    {
     322        tr_msg_list * msgs = tr_getQueuedMessages( );
     323        if( msgs )
     324        {
     325            /* add the new messages and append them to the end of
     326             * our persistent list */
     327            tr_msg_list * tail = addMessages( data->store, msgs );
     328            if( myTail )
     329                myTail->next = msgs;
     330            else
     331                myHead = msgs;
     332            myTail = tail;
     333        }
    322334    }
    323335    return TRUE;
    324336}
    325337
    326 /**
    327 ***  Public Functions
    328 **/
    329 
    330 GtkWidget *
    331 msgwin_new( TrCore * core )
     338static GtkWidget*
     339debug_level_combo_new( void )
    332340{
    333341    unsigned int i;
     342    int ii;
     343    int curlevel;
     344    GtkWidget * levels;
    334345    GtkListStore * store;
    335     GtkWidget * win;
    336     GtkWidget * vbox;
    337     GtkWidget * levels;
    338     GtkWidget * toolbar;
    339     GtkWidget * w;
    340     GtkWidget * view;
    341     GtkWidget * l;
    342346    GtkCellRenderer * renderer;
    343     int ii, curlevel;
    344     struct MsgData * data;
    345 
    346     data = g_new0( struct MsgData, 1 );
    347     data->core = core;
    348 
    349     win = gtk_window_new( GTK_WINDOW_TOPLEVEL );
    350     gtk_window_set_title( GTK_WINDOW( win ), _( "Message Log" ) );
    351     gtk_window_set_default_size( GTK_WINDOW( win ), 600, 400 );
    352     gtk_window_set_role( GTK_WINDOW( win ), "message-log" );
    353     vbox = gtk_vbox_new( FALSE, 0 );
    354 
    355     /**
    356     ***  toolbar
    357     **/
    358 
    359     toolbar = gtk_toolbar_new( );
    360 
    361     gtk_toolbar_insert_stock( GTK_TOOLBAR(toolbar), GTK_STOCK_SAVE,
    362                               NULL, NULL,
    363                               G_CALLBACK(onSaveRequest), data, -1);
    364 
    365     gtk_toolbar_insert_stock( GTK_TOOLBAR(toolbar), GTK_STOCK_CLEAR,
    366                               NULL, NULL,
    367                               G_CALLBACK(onClearRequest), data, -1);
    368 
    369     gtk_toolbar_insert_space(GTK_TOOLBAR(toolbar), -1);
    370 
    371 
    372     l = gtk_label_new( _( "Level" ) );
    373     gtk_misc_set_padding( GTK_MISC( l ), GUI_PAD, 0 );
    374     gtk_toolbar_append_element( GTK_TOOLBAR(toolbar),
    375                                 GTK_TOOLBAR_CHILD_WIDGET, l,
    376                                 NULL, _("Set the verbosity level"),
    377                                 NULL, NULL, NULL, NULL);
    378 
    379     w = gtk_alignment_new( 0.0f, 0.0f, 0.0f, 0.0f );
    380     gtk_widget_set_size_request( w, GUI_PAD_SMALL, GUI_PAD_SMALL );
    381     gtk_toolbar_append_element( GTK_TOOLBAR(toolbar),
    382                                 GTK_TOOLBAR_CHILD_WIDGET, w,
    383                                 NULL, NULL, NULL, NULL, NULL, NULL);
    384347
    385348    store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT);
     
    405368                                    NULL );
    406369    gtk_combo_box_set_active( GTK_COMBO_BOX( levels ), ii );
    407     g_signal_connect( levels, "changed",
    408                       G_CALLBACK(level_combo_changed_cb), data );
    409 
    410     gtk_toolbar_append_element( GTK_TOOLBAR( toolbar ),
    411                                 GTK_TOOLBAR_CHILD_WIDGET, levels,
    412                                 NULL, _("Set the verbosity level"),
    413                                 NULL, NULL, NULL, NULL);
     370
     371    return levels;
     372}
     373
     374
     375/**
     376***  Public Functions
     377**/
     378
     379GtkWidget *
     380msgwin_new( TrCore * core )
     381{
     382    GtkWidget * win;
     383    GtkWidget * vbox;
     384    GtkWidget * toolbar;
     385    GtkWidget * w;
     386    GtkWidget * view;
     387    GtkToolItem * item;
     388    struct MsgData * data;
     389
     390    data = g_new0( struct MsgData, 1 );
     391    data->core = core;
     392
     393    win = gtk_window_new( GTK_WINDOW_TOPLEVEL );
     394    gtk_window_set_title( GTK_WINDOW( win ), _( "Message Log" ) );
     395    gtk_window_set_default_size( GTK_WINDOW( win ), 600, 400 );
     396    gtk_window_set_role( GTK_WINDOW( win ), "message-log" );
     397    vbox = gtk_vbox_new( FALSE, 0 );
     398
     399    /**
     400    ***  toolbar
     401    **/
     402
     403    toolbar = gtk_toolbar_new( );
     404    gtk_toolbar_set_orientation( GTK_TOOLBAR( toolbar ), GTK_ORIENTATION_HORIZONTAL );
     405    gtk_toolbar_set_style( GTK_TOOLBAR( toolbar ), GTK_TOOLBAR_BOTH_HORIZ );
     406
     407      item = gtk_tool_button_new_from_stock( GTK_STOCK_SAVE );
     408      g_object_set( G_OBJECT( item ), "is-important", TRUE, NULL );
     409      g_signal_connect( item, "clicked", G_CALLBACK(onSaveRequest), data );
     410      gtk_toolbar_insert( GTK_TOOLBAR( toolbar ), item, -1 );
     411
     412      item = gtk_tool_button_new_from_stock( GTK_STOCK_CLEAR );
     413      g_object_set( G_OBJECT( item ), "is-important", TRUE, NULL );
     414      g_signal_connect( item, "clicked", G_CALLBACK(onClearRequest), data );
     415      gtk_toolbar_insert( GTK_TOOLBAR( toolbar ), item, -1 );
     416
     417    item = gtk_separator_tool_item_new( );
     418    gtk_toolbar_insert( GTK_TOOLBAR( toolbar ), item, -1 );
     419
     420      item = gtk_toggle_tool_button_new_from_stock( GTK_STOCK_MEDIA_PAUSE );
     421      g_object_set( G_OBJECT( item ), "is-important", TRUE, NULL );
     422      g_signal_connect( item, "toggled", G_CALLBACK(onPauseToggled), data );
     423      gtk_toolbar_insert( GTK_TOOLBAR( toolbar ), item, -1 );
     424
     425    item = gtk_separator_tool_item_new( );
     426    gtk_toolbar_insert( GTK_TOOLBAR( toolbar ), item, -1 );
     427
     428      w = gtk_label_new( _( "Level" ) );
     429      gtk_misc_set_padding( GTK_MISC( w ), GUI_PAD, 0 );
     430      item = gtk_tool_item_new( );
     431      gtk_container_add( GTK_CONTAINER( item ), w );
     432      gtk_toolbar_insert( GTK_TOOLBAR( toolbar ), item, -1 );
     433
     434      w = debug_level_combo_new( );
     435      g_signal_connect( w, "changed", G_CALLBACK(level_combo_changed_cb), data );
     436      item = gtk_tool_item_new( );
     437      gtk_container_add( GTK_CONTAINER( item ), w );
     438      gtk_toolbar_insert( GTK_TOOLBAR( toolbar ), item, -1 );
    414439
    415440    gtk_box_pack_start( GTK_BOX( vbox ), toolbar, FALSE, FALSE, 0 );
     
    420445
    421446    data->store = gtk_list_store_new( N_COLUMNS,
    422                                       G_TYPE_INT,        /* sequence */
     447                                      G_TYPE_UINT,       /* sequence */
    423448                                      G_TYPE_POINTER,    /* category */
    424449                                      G_TYPE_POINTER,    /* message */
Note: See TracChangeset for help on using the changeset viewer.