Index: pango_break/pango_create.c =================================================================== --- pango_break/pango_create.c (revision 25438) +++ pango_break/pango_create.c (nonexistent) @@ -1,92 +0,0 @@ -/** - \file pango_create.c - \brief Wrapping and sizing GtkLabels dynamically. - - Compile with: -gcc -g -Wall `pkg-config --cflags gtk+-2.0` -c -o pango_create.o pango_create.c -gcc -g `pkg-config --libs gtk+-2.0` pango_create.o -o pango_create - */ - -#include - -static const gchar *text = "/home/userA/Projects/pcb-rnd/very_lo­ng_path/subdir/very_long_sub_dir/file"; - -#ifndef PCB_GTK3 -static void on_size_allocate_hack(GtkWidget * label, GtkAllocation * alloc, gpointer data) -{ - if (alloc->width > 1) { - /* Allows shrinking of widget size */ - gtk_widget_set_size_request(label, alloc->width - 1, -1); - } - //printf("x=%d, y=%d : w=%d, h=%d\n", alloc->x, alloc->y, alloc->width, alloc->height); -} -#endif - -static void create_widgets(GtkWidget * window) -{ - GtkWidget *window_vbox; - GtkWidget *box, *spring; - GtkWidget *label, *right_label; - - /* Pack the label in an horizontal box */ - box = gtk_hbox_new(FALSE, 0); - - /* Create a "left" label */ - //GtkWidget *left_label = gtk_label_new("This is a really long label that should wrap several time, at least once"); - //gtk_label_set_use_markup(GTK_LABEL(label), TRUE); - label = gtk_label_new(text); - gtk_misc_set_alignment(GTK_MISC(label), 0, 0.0); - gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); - - /* Create a "right" label (optional) */ - //right_label = gtk_label_new("Small Label"); - right_label = gtk_label_new(""); - gtk_misc_set_alignment(GTK_MISC(right_label), 1, 0.0); - -#ifndef PCB_GTK3 - /* GtkLabel Line Wrap Hack - GTK2 SUCKS, there ! */ - g_signal_connect(G_OBJECT(label), "size-allocate", G_CALLBACK(on_size_allocate_hack), NULL); -#endif - - /* Add the labels to the horizontal box */ - gtk_box_pack_start(GTK_BOX(box), label, TRUE, TRUE, 0); - gtk_box_pack_start(GTK_BOX(box), right_label, TRUE, TRUE, 2); - - /* Add everything in a vertical box for the main window's contents */ - window_vbox = gtk_vbox_new(FALSE, 0); - //gtk_box_pack_start(GTK_BOX(window_vbox), gtk_label_new("Resize Me"), FALSE, TRUE, 0); - gtk_box_pack_start(GTK_BOX(window_vbox), box, FALSE, FALSE, 0); - - spring = gtk_hbox_new(0, 0); - gtk_box_pack_start(GTK_BOX(window_vbox), spring, TRUE, TRUE, 0); - - gtk_container_add(GTK_CONTAINER(window), window_vbox); -} - -int main(int argc, char **argv) -{ - GtkWidget *window; - - /* Initialize the widget set */ - gtk_init(&argc, &argv); - - window = gtk_window_new(GTK_WINDOW_TOPLEVEL); - g_signal_connect(G_OBJECT(window), "destroy", gtk_main_quit, NULL); - gtk_window_set_default_size(GTK_WINDOW(window), 10, 400); - /* 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); - - /* Set up GUI elements */ - create_widgets(window); - - /* Show the application window */ - gtk_widget_show_all(window); - - /* Enter the main event loop, and wait for user interaction */ - gtk_main(); - - return 0; -} Index: pango_break/Makefile =================================================================== --- pango_break/Makefile (revision 25438) +++ pango_break/Makefile (nonexistent) @@ -1,12 +0,0 @@ -TRUNK=../../../trunk -CFLAGS=-g -Wall -I $(TRUNK)/src_plugins `pkg-config --cflags gtk+-2.0` -LDFLAGS=-g `pkg-config --libs gtk+-2.0` -#CFLAGS=-g -Wall -I $(TRUNK)/src_plugins -DPCB_GTK3 `pkg-config --cflags gtk+-3.0` -#LDFLAGS=-g `pkg-config --libs gtk+-3.0` - -all: pango_create - -pango_create: pango_create.o - -clean: - rm *.o pango_create \ No newline at end of file