может кто сталкивался, и знает, как побороть.
код
#include <gtk/gtk.h>
#define TEXT "Lorem ipsum dolor sit amet, consectetur adipisicing elit, " \
"sed do eiusmod tempor incididunt ut labore et dolore magna " \
"aliqua. Ut enim ad minim veniam, quis nostrud exercitation " \
"ullamco laboris nisi ut aliquip ex ea commodo consequat. " \
"Duis aute irure dolor in reprehenderit in voluptate velit " \
"esse cillum dolore eu fugiat nulla pariatur. Excepteur sint " \
"occaecat cupidatat non proident, sunt in culpa qui officia " \
"deserunt mollit anim id est laborum."
static void
cb_allocate (GtkWidget *l, GtkAllocation *al, gpointer data)
{
gtk_widget_set_size_request (l, al->width, -1);
gtk_widget_queue_draw (l);
}
int
main (int argc, char *argv[])
{
GtkWidget *w, *l;
gtk_init (&argc, &argv);
w = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_container_set_border_width (GTK_CONTAINER (w), 5);
g_signal_connect (G_OBJECT (w), "delete-event", gtk_main_quit, NULL);
l = gtk_label_new (TEXT);
gtk_label_set_line_wrap (GTK_LABEL (l), TRUE);
gtk_container_add (GTK_CONTAINER (w), l);
g_signal_connect (G_OBJECT (l), "size-allocate", G_CALLBACK (cb_allocate), NULL);
gtk_widget_show_all (w);
gtk_main ();
return 0;
}
окно по ширине можно только увеличить. уменьшить нельзя. существуют более-менее элегантные костыли для решения этой проблемы?