From ff5e97a6dbafe096e870061815a9457fb43363f1 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Mon, 2 Jun 2008 15:07:26 +0000 Subject: [PATCH] make the `new torrent' dialog a little prettier --- gtk/details.c | 2 +- gtk/main.c | 3 +-- gtk/makemeta-ui.c | 12 ++++++++---- gtk/tracker-list.c | 45 ++++++++++++++++++--------------------------- gtk/tracker-list.h | 7 +++++-- gtk/util.c | 16 ++-------------- 6 files changed, 35 insertions(+), 50 deletions(-) diff --git a/gtk/details.c b/gtk/details.c index f76c80972..28e87f8ae 100644 --- a/gtk/details.c +++ b/gtk/details.c @@ -1116,7 +1116,7 @@ tracker_page_new( TrTorrent * gtor ) t = hig_workarea_create( ); hig_workarea_add_section_title( t, &row, _( "Trackers" ) ); - w = tracker_list_new( gtor, GTK_POS_RIGHT ); + w = tracker_list_new( gtor ); hig_workarea_add_wide_control( t, &row, w ); hig_workarea_add_section_divider( t, &row ); diff --git a/gtk/main.c b/gtk/main.c index 72dfd209e..4d712a041 100644 --- a/gtk/main.c +++ b/gtk/main.c @@ -699,8 +699,7 @@ wannaquit( void * vdata ) gtk_table_attach_defaults( GTK_TABLE( p ), w, 1, 2, 1, 2 ); b = gtk_alignment_new(0.0, 1.0, 0.01, 0.01); - w = gtk_button_new_with_label( _( "_Quit Now" ) ); - gtk_button_set_image( GTK_BUTTON(w), gtk_image_new_from_stock( GTK_STOCK_QUIT, GTK_ICON_SIZE_BUTTON ) ); + w = tr_button_new_from_stock( GTK_STOCK_QUIT, _( "_Quit Now" ) ); g_signal_connect(w, "clicked", G_CALLBACK(do_exit_cb), NULL); gtk_container_add(GTK_CONTAINER(b), w); gtk_table_attach(GTK_TABLE(p), b, 1, 2, 2, 3, GTK_FILL, GTK_FILL, 0, 10 ); diff --git a/gtk/makemeta-ui.c b/gtk/makemeta-ui.c index dfafab0f5..d1f6a13c2 100644 --- a/gtk/makemeta-ui.c +++ b/gtk/makemeta-ui.c @@ -305,10 +305,11 @@ GtkWidget* make_meta_ui( GtkWindow * parent, tr_handle * handle ) { int row = 0; - GtkWidget *d, *t, *w, *h, *h2, *v, *focusMe, *extras; + GtkWidget *b1, *b2, *d, *t, *w, *h, *h2, *v, *focusMe, *extras; GtkBox * main_vbox; MakeMetaUI * ui = g_new0 ( MakeMetaUI, 1 ); ui->handle = handle; + int width, height; d = gtk_dialog_new_with_buttons( _("New Torrent"), parent, @@ -344,11 +345,11 @@ make_meta_ui( GtkWindow * parent, tr_handle * handle ) gtk_box_pack_start( GTK_BOX( v ), h2, FALSE, FALSE, 0 ); gtk_box_pack_start_defaults( GTK_BOX( h ), v ); v = gtk_vbox_new( FALSE, GUI_PAD_SMALL ); - w = tr_button_new_from_stock( GTK_STOCK_DIRECTORY, _( "F_older" ) ); + w = b1 = tr_button_new_from_stock( GTK_STOCK_DIRECTORY, _( "F_older" ) ); focusMe = w; g_signal_connect( w, "clicked", G_CALLBACK( onChooseDirectoryClicked ), ui ); gtk_box_pack_start_defaults( GTK_BOX( v ), w ); - w = tr_button_new_from_stock( GTK_STOCK_FILE, _( "_File" ) ); + w = b2 = tr_button_new_from_stock( GTK_STOCK_FILE, _( "_File" ) ); g_signal_connect( w, "clicked", G_CALLBACK( onChooseFileClicked ), ui ); gtk_box_pack_start_defaults( GTK_BOX( v ), w ); gtk_box_pack_start( GTK_BOX( h ), v, FALSE, FALSE, 0 ); @@ -357,9 +358,12 @@ make_meta_ui( GtkWindow * parent, tr_handle * handle ) hig_workarea_add_section_divider( t, &row ); hig_workarea_add_section_title( t, &row, _( "Trackers" ) ); - w = tracker_list_new( NULL, GTK_POS_RIGHT ); + w = tracker_list_new( NULL ); ui->announce_list = w; hig_workarea_add_wide_control( t, &row, w ); + tracker_list_get_button_size( w, &width, &height ); + gtk_widget_set_size_request( b1, width, height ); + gtk_widget_set_size_request( b2, width, height ); hig_workarea_add_section_divider( t, &row ); w = extras = gtk_expander_new_with_mnemonic( _( "E_xtras" ) ); diff --git a/gtk/tracker-list.c b/gtk/tracker-list.c index 2f62a72e2..ae1fd98e6 100644 --- a/gtk/tracker-list.c +++ b/gtk/tracker-list.c @@ -250,7 +250,7 @@ onTierEdited( GtkCellRendererText * renderer UNUSED, } GtkWidget* -tracker_list_new( TrTorrent * gtor, GtkPositionType buttonPos ) +tracker_list_new( TrTorrent * gtor ) { GtkWidget * w; GtkWidget * buttons; @@ -265,18 +265,9 @@ tracker_list_new( TrTorrent * gtor, GtkPositionType buttonPos ) page->gtor = gtor; - if( buttonPos == GTK_POS_LEFT || buttonPos == GTK_POS_RIGHT ) - { - top = gtk_hbox_new( FALSE, GUI_PAD ); - box = gtk_vbox_new( FALSE, GUI_PAD ); - buttons = gtk_vbox_new( TRUE, GUI_PAD ); - } - else - { - top = gtk_vbox_new( FALSE, GUI_PAD ); - box = gtk_hbox_new( FALSE, 0 ); - buttons = gtk_hbox_new( TRUE, GUI_PAD ); - } + top = gtk_hbox_new( FALSE, GUI_PAD ); + box = gtk_vbox_new( FALSE, GUI_PAD ); + buttons = gtk_vbox_new( TRUE, GUI_PAD ); m = tracker_model_new( tr_torrent_handle( gtor ) ); page->store = GTK_LIST_STORE( m ); @@ -344,20 +335,9 @@ tracker_list_new( TrTorrent * gtor, GtkPositionType buttonPos ) page->revert_button = w; } - - if( buttonPos == GTK_POS_LEFT || buttonPos == GTK_POS_RIGHT ) { - gtk_box_pack_start( GTK_BOX( box ), buttons, FALSE, FALSE, 0 ); - } else { - gtk_box_pack_end( GTK_BOX( box ), buttons, FALSE, FALSE, 0 ); - } - - if( buttonPos == GTK_POS_LEFT || buttonPos == GTK_POS_TOP ) { - gtk_box_pack_start( GTK_BOX( top ), box, FALSE, FALSE, 0 ); - gtk_box_pack_start_defaults( GTK_BOX( top ), fr ); - } else { - gtk_box_pack_start_defaults( GTK_BOX( top ), fr ); - gtk_box_pack_start( GTK_BOX( top ), box, FALSE, FALSE, 0 ); - } + gtk_box_pack_start( GTK_BOX( box ), buttons, FALSE, FALSE, 0 ); + gtk_box_pack_start_defaults( GTK_BOX( top ), fr ); + gtk_box_pack_start( GTK_BOX( top ), box, FALSE, FALSE, 0 ); onTrackerSelectionChanged( sel, page ); @@ -391,3 +371,14 @@ tracker_list_get_trackers( GtkWidget * list, return trackers; } +void +tracker_list_get_button_size( GtkWidget * list, + gint * width, + gint * height ) +{ + struct tracker_page * page = g_object_get_data( G_OBJECT( list ), "page" ); + GtkRequisition req; + gtk_widget_size_request( page->remove_button, &req ); + if( width ) *width = req.width; + if( height ) *height = req.height; +} diff --git a/gtk/tracker-list.h b/gtk/tracker-list.h index 092a8506e..ee4533ada 100644 --- a/gtk/tracker-list.h +++ b/gtk/tracker-list.h @@ -4,8 +4,11 @@ #include #include "tr-torrent.h" -GtkWidget* tracker_list_new( TrTorrent * gtor, - GtkPositionType buttonsPosition ); +GtkWidget* tracker_list_new( TrTorrent * gtor ); + +void tracker_list_get_button_size( GtkWidget * list, + gint * width, + gint * height ); /** * @return an array of tr_tracker_info's. It's the caller's responsibility diff --git a/gtk/util.c b/gtk/util.c index 468e44561..e2aa4d83f 100644 --- a/gtk/util.c +++ b/gtk/util.c @@ -483,20 +483,8 @@ GtkWidget * tr_button_new_from_stock( const char * stock, const char * mnemonic ) { - GtkWidget * button = gtk_button_new( ); - GtkWidget * label = gtk_label_new_with_mnemonic( mnemonic ); - gtk_label_set_mnemonic_widget( GTK_LABEL( label ), GTK_WIDGET( button ) ); - GtkWidget * image = gtk_image_new_from_stock( stock, GTK_ICON_SIZE_BUTTON ); - GtkWidget * hbox = gtk_hbox_new( FALSE, GUI_PAD ); - GtkWidget * align = gtk_alignment_new( 0.5, 0.5, 0.0, 0.0 ); - - gtk_box_pack_start( GTK_BOX( hbox ), image, FALSE, FALSE, 0 ); - gtk_box_pack_end( GTK_BOX( hbox ), label, FALSE, FALSE, 0 ); - - gtk_container_add( GTK_CONTAINER( align ), hbox ); - gtk_container_add( GTK_CONTAINER( button ), align ); - gtk_widget_show_all( align ); - + GtkWidget * button = gtk_button_new_with_mnemonic( mnemonic ); + gtk_button_set_image( GTK_BUTTON( button ), image ); return button; } -- 2.40.0