|
Lines 136-149
Point computeSizeInPixels (int wHint, int hHint, boolean changed) {
Link Here
|
| 136 |
if (fixWrap) { |
136 |
if (fixWrap) { |
| 137 |
long /*int*/ labelLayout = OS.gtk_label_get_layout (labelHandle); |
137 |
long /*int*/ labelLayout = OS.gtk_label_get_layout (labelHandle); |
| 138 |
int pangoWidth = OS.pango_layout_get_width (labelLayout); |
138 |
int pangoWidth = OS.pango_layout_get_width (labelLayout); |
|
|
139 |
GtkBorder padding = new GtkBorder (); |
| 140 |
if (OS.GTK3) { |
| 141 |
long /*int*/ styleContext = OS.gtk_widget_get_style_context (labelHandle); |
| 142 |
OS.gtk_style_context_get_padding (styleContext, OS.GTK_STATE_FLAG_NORMAL, padding); |
| 143 |
} |
| 139 |
if (wHint != SWT.DEFAULT) { |
144 |
if (wHint != SWT.DEFAULT) { |
| 140 |
OS.pango_layout_set_width (labelLayout, wHint * OS.PANGO_SCALE); |
145 |
OS.pango_layout_set_width (labelLayout, Math.max(0, wHint - padding.left - padding.right) * OS.PANGO_SCALE); |
| 141 |
} else { |
146 |
} else { |
| 142 |
OS.pango_layout_set_width (labelLayout, -1); |
147 |
OS.pango_layout_set_width (labelLayout, -1); |
| 143 |
} |
148 |
} |
| 144 |
int [] w = new int [1], h = new int [1]; |
149 |
int [] w = new int [1], h = new int [1]; |
| 145 |
OS.pango_layout_get_pixel_size (labelLayout, w, h); |
150 |
OS.pango_layout_get_pixel_size (labelLayout, w, h); |
| 146 |
OS.pango_layout_set_width (labelLayout, pangoWidth); |
151 |
OS.pango_layout_set_width (labelLayout, pangoWidth); |
|
|
152 |
w [0] += padding.left + padding.right; |
| 153 |
h [0] += padding.top + padding.bottom; |
| 147 |
if (frameHandle != 0) { |
154 |
if (frameHandle != 0) { |
| 148 |
int [] labelWidth = new int [1], labelHeight = new int [1]; |
155 |
int [] labelWidth = new int [1], labelHeight = new int [1]; |
| 149 |
OS.gtk_widget_get_size_request (labelHandle, labelWidth, labelHeight); |
156 |
OS.gtk_widget_get_size_request (labelHandle, labelWidth, labelHeight); |