All pastes #1735728 Raw Edit

C

public c v1 · immutable
#1735728 ·published 2010-01-03 02:13 UTC
rendered paste body
/* gcc -Wall -g `pkg-config --cflags --libs gtk+-2.0`  -o labels labels.c*/#include <gtk/gtk.h>/* http://tadeboro.blogspot.com/2009/05/wrapping-adn-resizing-gtklabel.html */static void on_size_allocate_tadeboro_hack(GtkWidget *label, 					GtkAllocation *alloc,gpointer data){        gtk_widget_set_size_request( label, alloc->width - 2, -1 );}int main(int argc, char **argv){	gtk_init(&argc, &argv);	GtkWidget *window;	window = gtk_window_new(GTK_WINDOW_TOPLEVEL);	g_signal_connect(G_OBJECT(window), "destroy", gtk_main_quit, NULL);	/* Set a default window size */	GdkGeometry gdkGeometry;	gdkGeometry.min_width= 60;	gdkGeometry.min_height = 60;	gtk_window_set_geometry_hints(GTK_WINDOW(window), window,		&gdkGeometry, GDK_HINT_MIN_SIZE);	/* Create an empty button */	GtkWidget *button = gtk_button_new();	/* Add a horizontal box as the button's child */	GtkWidget *button_hbox = gtk_hbox_new(FALSE,0);	gtk_container_add(GTK_CONTAINER(button),button_hbox);		/* Create the left label */	GtkWidget *left_label = gtk_label_new("<b>This is a really long label that should wrap at least once</b>");	gtk_misc_set_alignment(GTK_MISC(left_label),0,0.5);	gtk_label_set_line_wrap(GTK_LABEL(left_label),TRUE);	gtk_label_set_use_markup(GTK_LABEL(left_label),TRUE);	/* Create the right label */	GtkWidget *right_label = gtk_label_new("Small Label");	gtk_misc_set_alignment(GTK_MISC(right_label),1,0.5);	/* GtkLabel Line Wrap Hack - GTK SUCKS! */        g_signal_connect( G_OBJECT( left_label ), "size-allocate",                      G_CALLBACK( on_size_allocate_tadeboro_hack ), NULL );	/* Add the labels to the button's horizontal box */	gtk_box_pack_start(GTK_BOX(button_hbox),left_label,TRUE,TRUE,2);	gtk_box_pack_start(GTK_BOX(button_hbox),right_label,TRUE,TRUE,2);	/* Add everything in a vertical box for the main window's contents */	GtkWidget *window_vbox = gtk_vbox_new(FALSE,1);	gtk_box_pack_start(GTK_BOX(window_vbox),		gtk_label_new("Resize Me"),FALSE,TRUE,0);	gtk_box_pack_start(GTK_BOX(window_vbox),button,TRUE,TRUE,0);	gtk_container_add(GTK_CONTAINER(window),window_vbox);	gtk_widget_show_all(window);	gtk_main();	return 0;}