]> granicus.if.org Git - transmission/commitdiff
make the `new torrent' dialog a little prettier
authorCharles Kerr <charles@transmissionbt.com>
Mon, 2 Jun 2008 15:07:26 +0000 (15:07 +0000)
committerCharles Kerr <charles@transmissionbt.com>
Mon, 2 Jun 2008 15:07:26 +0000 (15:07 +0000)
gtk/details.c
gtk/main.c
gtk/makemeta-ui.c
gtk/tracker-list.c
gtk/tracker-list.h
gtk/util.c

index f76c809724e6e0ecb433b7272b86a34c54e9c5a4..28e87f8ae82ff3f7de4d9675a4d7e58de1c1dd69 100644 (file)
@@ -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 );
index 72dfd209ea1b6c06e0901411efdf62baddca585a..4d712a041083afeb47538b157a20816684bf84ae 100644 (file)
@@ -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 );
index dfafab0f596346ca9b9cac3bd1f5d1a137b41e38..d1f6a13c2f097e40b6ea8bf262065e36f3803088 100644 (file)
@@ -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( _( "<b>E_xtras</b>" ) );
index 2f62a72e2c94ee5e3969a0bae84ec7e999fccf65..ae1fd98e6c41ba01f2a50b7b80419f63a92721d4 100644 (file)
@@ -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;
+}
index 092a8506e85b658c2cb432fd36842a00277ec173..ee4533adafd32c02abd72da191f335853a5f4ad0 100644 (file)
@@ -4,8 +4,11 @@
 #include <gtk/gtkwidget.h>
 #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
index 468e44561eadb1a0ce74f83aea3276dced3a65b9..e2aa4d83f644bd43a98b8147d8311883b68b7b9a 100644 (file)
@@ -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;
 }