53 gint *minimal_width, gint *natural_width);
55 gint *minimal_height, gint *natural_height);
57 gint height, gint *minimal_width, gint *natural_width);
59 gint width, gint *minimal_height, gint *natural_height);
70 GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass);
86 self->
priv = G_TYPE_INSTANCE_GET_PRIVATE(self,
93 gtk_misc_set_alignment(GTK_MISC(self), 0.0, 0.0);
106 layout = gtk_label_get_layout(GTK_LABEL(widget));
112 pango_layout_set_width(layout, width * PANGO_SCALE);
113 pango_layout_set_wrap(layout, PANGO_WRAP_WORD_CHAR);
119 gtk_widget_queue_resize(widget);
137 PangoLayout *layout = gtk_label_get_layout(GTK_LABEL(widget));
139 pango_layout_set_width(layout, self->
priv->
wrap_width * PANGO_SCALE);
140 pango_layout_set_wrap(layout, PANGO_WRAP_WORD_CHAR);
142 return (* GTK_WIDGET_CLASS(geany_wrap_label_parent_class)->draw)(widget, cr);
147 gint *minimal_width, gint *natural_width)
149 *minimal_width = *natural_width = 0;
154 gint height, gint *minimal_width, gint *natural_width)
156 PangoLayout *layout = gtk_label_get_layout(GTK_LABEL(widget));;
158 pango_layout_set_height(layout, height * PANGO_SCALE);
159 pango_layout_set_wrap(layout, PANGO_WRAP_WORD_CHAR);
160 pango_layout_get_pixel_size(layout, natural_width,
NULL);
167 gint *minimal_height, gint *natural_height)
169 *minimal_height = *natural_height =
GEANY_WRAP_LABEL(widget)->priv->wrap_height;
174 gint width, gint *minimal_height, gint *natural_height)
176 PangoLayout *layout = gtk_label_get_layout(GTK_LABEL(widget));
178 pango_layout_set_width(layout, width * PANGO_SCALE);
179 pango_layout_set_wrap(layout, PANGO_WRAP_WORD_CHAR);
180 pango_layout_get_pixel_size(layout,
NULL, natural_height);
182 *minimal_height = *natural_height;
188 return GTK_SIZE_REQUEST_WIDTH_FOR_HEIGHT;
197 (* GTK_WIDGET_CLASS(geany_wrap_label_parent_class)->size_allocate)(widget, alloc);
203 parent = gtk_widget_get_parent(widget);
204 if (GTK_IS_CONTAINER(parent))
205 gtk_container_check_resize(GTK_CONTAINER(parent));
static void geany_wrap_label_get_preferred_height_for_width(GtkWidget *widget, gint width, gint *minimal_height, gint *natural_height)
static void geany_wrap_label_init(GeanyWrapLabel *self)
static void geany_wrap_label_set_wrap_width(GtkWidget *widget, gint width)
static void geany_wrap_label_class_init(GeanyWrapLabelClass *klass)
static void geany_wrap_label_label_notify(GObject *object, GParamSpec *pspec, gpointer data)
static void geany_wrap_label_size_allocate(GtkWidget *widget, GtkAllocation *alloc)
static GtkSizeRequestMode geany_wrap_label_get_request_mode(GtkWidget *widget)
static void geany_wrap_label_get_preferred_width(GtkWidget *widget, gint *minimal_width, gint *natural_width)
static void geany_wrap_label_get_preferred_height(GtkWidget *widget, gint *minimal_height, gint *natural_height)
GtkWidget * geany_wrap_label_new(const gchar *text)
static void geany_wrap_label_get_preferred_width_for_height(GtkWidget *widget, gint height, gint *minimal_width, gint *natural_width)
static gboolean geany_wrap_label_draw(GtkWidget *widget, cairo_t *cr)
#define GEANY_WRAP_LABEL(obj)
#define GEANY_WRAP_LABEL_TYPE
GtkLabelClass parent_class
GeanyWrapLabelPrivate * priv