static void _gtk_source_completion_container_get_preferred_width (GtkWidget *widget, gint *min_width, gint *nat_width) { GtkSourceCompletionContainer *container = GTK_SOURCE_COMPLETION_CONTAINER (widget); GtkWidget *child; GtkRequisition nat_size; gint width; child = gtk_bin_get_child (GTK_BIN (container)); gtk_widget_get_preferred_size (child, NULL, &nat_size); width = MIN (nat_size.width, get_max_width (container)); if (min_width != NULL) { *min_width = width; } if (nat_width != NULL) { *nat_width = width; } g_return_if_fail (width >= 0); }
/* Return a height at a row boundary of the GtkTreeView. */ static void _gtk_source_completion_container_get_preferred_height (GtkWidget *widget, gint *min_height, gint *nat_height) { GtkSourceCompletionContainer *container = GTK_SOURCE_COMPLETION_CONTAINER (widget); GtkWidget *child; GtkRequisition nat_size; gint height; child = gtk_bin_get_child (GTK_BIN (container)); gtk_widget_get_preferred_size (child, NULL, &nat_size); if (nat_size.height <= MAX_HEIGHT) { height = nat_size.height; } else { gint row_height = get_row_height (container, nat_size.height); gint n_rows_allowed = row_height != 0 ? MAX_HEIGHT / row_height : 0; height = n_rows_allowed * row_height; } if (GTK_WIDGET_CLASS (_gtk_source_completion_container_parent_class)->get_preferred_height != NULL) { gint min_height_parent = 0; GTK_WIDGET_CLASS (_gtk_source_completion_container_parent_class)->get_preferred_height (widget, &min_height_parent, NULL); height = MAX (height, min_height_parent); } if (min_height != NULL) { *min_height = height; } if (nat_height != NULL) { *nat_height = height; } g_return_if_fail (height >= 0); }