I got problem with buttons layot in button box. I do not know how to keep last button in the end of window after resizing. Button box and label expanding should make it, but it seems not working in my case. Here is code:
Code:
#include <gtk/gtk.h>
int main (int argc, char *argv[])
{
GtkWidget *image = NULL;
GtkWidget *label = NULL;
GtkWidget *file_chooser = NULL, *rec_button = NULL, *play_button = NULL,
*pause_button = NULL, *stop_button = NULL, *previous_button = NULL,
*next_button = NULL;
GtkWidget *win = NULL;
GtkWidget *grid = NULL, *button_box = NULL;
/* Initialize GTK+ */
gtk_init (&argc, &argv);
/* Make buton's images visible */
GtkSettings *default_settings = gtk_settings_get_default();
g_object_set(default_settings, "gtk-button-images", TRUE, NULL);
/* Create the main window */
win = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_resize (GTK_WINDOW(win), 600,120);
gtk_container_set_border_width (GTK_CONTAINER (win), 8);
gtk_window_set_title (GTK_WINDOW (win), "Button_box");
gtk_window_set_position (GTK_WINDOW (win), GTK_WIN_POS_CENTER);
gtk_widget_realize (win);
g_signal_connect (win, "destroy", gtk_main_quit, NULL);
/* Create a grid */
grid = gtk_grid_new ();
gtk_container_add (GTK_CONTAINER (win), grid);
/* Create button box */
button_box = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL);
gtk_widget_set_hexpand (button_box, TRUE);
gtk_widget_set_halign (button_box, GTK_ALIGN_FILL);
gtk_grid_attach (GTK_GRID (grid), button_box, 0, 0, 1, 1);
rec_button = gtk_button_new();
image = gtk_image_new_from_stock(GTK_STOCK_MEDIA_RECORD, GTK_ICON_SIZE_BUTTON);
gtk_button_set_image (GTK_BUTTON(rec_button),image);
gtk_box_pack_start (GTK_BOX(button_box), rec_button, TRUE, TRUE, 0);
gtk_button_box_set_child_non_homogeneous (GTK_BUTTON_BOX(button_box), rec_button, TRUE);
play_button = gtk_button_new();
image = gtk_image_new_from_stock(GTK_STOCK_MEDIA_PLAY, GTK_ICON_SIZE_BUTTON);
gtk_button_set_image (GTK_BUTTON(play_button),image);
gtk_box_pack_start (GTK_BOX(button_box), play_button, FALSE, FALSE, 0);
gtk_button_box_set_child_non_homogeneous (GTK_BUTTON_BOX(button_box), play_button, TRUE);
stop_button = gtk_button_new();
image = gtk_image_new_from_stock(GTK_STOCK_MEDIA_STOP, GTK_ICON_SIZE_BUTTON);
gtk_button_set_image (GTK_BUTTON(stop_button),image);
gtk_box_pack_start (GTK_BOX(button_box), stop_button, FALSE, FALSE, 0);
gtk_button_box_set_child_non_homogeneous (GTK_BUTTON_BOX(button_box), stop_button, TRUE);
previous_button = gtk_button_new();
image = gtk_image_new_from_stock(GTK_STOCK_MEDIA_PREVIOUS, GTK_ICON_SIZE_BUTTON);
gtk_button_set_image (GTK_BUTTON(previous_button),image);
gtk_box_pack_start (GTK_BOX(button_box), previous_button, FALSE, FALSE, 0);
gtk_button_box_set_child_non_homogeneous (GTK_BUTTON_BOX(button_box), previous_button, TRUE);
next_button = gtk_button_new();
image = gtk_image_new_from_stock(GTK_STOCK_MEDIA_NEXT, GTK_ICON_SIZE_BUTTON);
gtk_button_set_image (GTK_BUTTON(next_button),image);
gtk_box_pack_start (GTK_BOX(button_box), next_button, FALSE, FALSE, 0);
gtk_button_box_set_child_non_homogeneous (GTK_BUTTON_BOX(button_box), next_button, TRUE);
label = gtk_label_new ("");
gtk_box_pack_start (GTK_BOX(button_box), label, TRUE, TRUE, 0);
file_chooser = gtk_file_chooser_button_new ("Select file", GTK_FILE_CHOOSER_ACTION_OPEN);
gtk_box_pack_start (GTK_BOX(button_box), file_chooser, FALSE, FALSE, 0);
/* Enter the main loop */
gtk_widget_show_all (win);
gtk_main ();
return 0;
}