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 );
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 );
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,
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 );
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>" ) );
}
GtkWidget*
-tracker_list_new( TrTorrent * gtor, GtkPositionType buttonPos )
+tracker_list_new( TrTorrent * gtor )
{
GtkWidget * w;
GtkWidget * buttons;
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 );
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 );
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;
+}
#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
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;
}