summaryrefslogtreecommitdiff
path: root/src/gtksnippet.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gtksnippet.c')
-rw-r--r--src/gtksnippet.c64
1 files changed, 62 insertions, 2 deletions
diff --git a/src/gtksnippet.c b/src/gtksnippet.c
index 791338e..989e22b 100644
--- a/src/gtksnippet.c
+++ b/src/gtksnippet.c
@@ -124,7 +124,8 @@ int compare_code_line_info(const code_line_info **a, const code_line_info **b)
-
+/* Réclame une nouvelle taille adaptée au contenu présent. */
+void gtk_snippet_recompute_size_request(GtkSnippet *);
@@ -569,11 +570,70 @@ void gtk_snippet_set_processor(GtkSnippet *snippet, const asm_processor *proc)
void gtk_snippet_set_rendering_lines(GtkSnippet *snippet, rendering_line *lines)
{
+ rendering_line *iter; /* Boucle de parcours */
+ off_t bin_len; /* Taille d'instruction */
+
snippet->lines = lines;
+ bin_len = 0;
+
+ dl_list_for_each(iter, lines, rendering_line *)
+ get_rendering_line_binary_len(iter, &bin_len);
+
+ dl_list_for_each(iter, lines, rendering_line *)
+ set_rendering_line_max_binary_len(iter, bin_len);
+
+ gtk_snippet_recompute_size_request(snippet);
+
}
+
+
+
+/******************************************************************************
+* *
+* Paramètres : snippet = composant GTK à mettre à jour. *
+* *
+* Description : Réclame une nouvelle taille adaptée au contenu présent. *
+* *
+* Retour : - *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+void gtk_snippet_recompute_size_request(GtkSnippet *snippet)
+{
+ int width; /* Largeur de l'objet actuelle */
+ int height; /* Hauteur de l'objet actuelle */
+ rendering_line *iter; /* Boucle de parcours */
+
+ width = 0;
+ height = 0;
+
+ dl_list_for_each(iter, snippet->lines, rendering_line *)
+ {
+ get_rendering_line_size(iter, &width, &height);
+
+ if (iter == snippet->lines)
+ snippet->line_height = height;
+
+ }
+
+ gtk_widget_set_size_request(GTK_WIDGET(snippet), width + 2 * MARGIN_SPACE + snippet->line_height, height);
+
+}
+
+
+
+
+
+
+
+
+
+
/******************************************************************************
* *
* Paramètres : snippet = composant GTK à mettre à jour. *
@@ -775,7 +835,7 @@ void gtk_snippet_build_content(GtkSnippet *snippet)
pango_layout_iter_free(iter);
- gtk_widget_set_size_request(GTK_WIDGET(snippet), width + 2 * MARGIN_SPACE + snippet->line_height, height);
+ //gtk_widget_set_size_request(GTK_WIDGET(snippet), width + 2 * MARGIN_SPACE + snippet->line_height, height);
}