diff options
Diffstat (limited to 'src/glibext/generators')
-rw-r--r-- | src/glibext/generators/hex.c | 16 | ||||
-rw-r--r-- | src/glibext/generators/hex.h | 2 |
2 files changed, 11 insertions, 7 deletions
diff --git a/src/glibext/generators/hex.c b/src/glibext/generators/hex.c index 9285e00..7de2d6b 100644 --- a/src/glibext/generators/hex.c +++ b/src/glibext/generators/hex.c @@ -45,6 +45,7 @@ struct _GHexGenerator GBinContent *content; /* Contenu à représenter */ gint left_start; /* Abscisse des impressions */ + gint padding; /* Bourrage supplémentaire */ phys_t bytes_per_line; /* Nombre d'octets par ligne */ @@ -347,7 +348,7 @@ static void g_hex_generator_compute_cursor(const GHexGenerator *generator, gint } else { - x -= (bytes_width + COL_MARGIN); + x -= (bytes_width + COL_MARGIN + generator->padding + COL_MARGIN); phys += (x / class->char_width); @@ -571,6 +572,7 @@ GBinContent *g_hex_generator_get_content(const GHexGenerator *generator) * Paramètres : generator = générateur à ajuster. * * left = position de départ à gauche pour le texte. * * show_pos = affichage des positions sur la gauche ? * +* padding = bourrage entre les colonnes de brut et ASCII. * * width = largeur maximale disponible. * * * * Description : Ajuste la génération à une nouvelle largeur de rendu. * @@ -581,7 +583,7 @@ GBinContent *g_hex_generator_get_content(const GHexGenerator *generator) * * ******************************************************************************/ -bool g_hex_generator_auto_fit(GHexGenerator *generator, gint left, bool show_pos, gint width) +bool g_hex_generator_auto_fit(GHexGenerator *generator, gint left, bool show_pos, gint padding, gint width) { bool result; /* Bilan à faire remonter */ GHexGeneratorClass *class; /* Accès aux informations */ @@ -592,16 +594,14 @@ bool g_hex_generator_auto_fit(GHexGenerator *generator, gint left, bool show_pos class = G_HEX_GENERATOR_GET_CLASS(generator); generator->left_start = left; + generator->padding = padding; if (show_pos) generator->left_start += class->addr_width + COL_MARGIN; for (i = 4; ; i += 4) { - requested = left; - - if (show_pos) - requested += class->addr_width + COL_MARGIN; + requested = generator->left_start; block_count = (i / 4); @@ -609,7 +609,11 @@ bool g_hex_generator_auto_fit(GHexGenerator *generator, gint left, bool show_pos requested += (block_count > 1 ? block_count - 1 : 0) * class->sep_width; requested += COL_MARGIN; + requested += padding; + requested += COL_MARGIN; + requested += i * class->char_width; + requested += COL_MARGIN; /* Limite atteinte ? */ if (requested > width) diff --git a/src/glibext/generators/hex.h b/src/glibext/generators/hex.h index 0a8b1a7..f4aeb03 100644 --- a/src/glibext/generators/hex.h +++ b/src/glibext/generators/hex.h @@ -57,7 +57,7 @@ GHexGenerator *g_hex_generator_new(GBinContent *); GBinContent *g_hex_generator_get_content(const GHexGenerator *); /* Ajuste la génération à une nouvelle largeur de rendu. */ -bool g_hex_generator_auto_fit(GHexGenerator *, gint, bool, gint); +bool g_hex_generator_auto_fit(GHexGenerator *, gint, bool, gint, gint); /* Indique le nombre d'octets programmés constituer une ligne. */ phys_t g_hex_generator_get_bytes_per_line(const GHexGenerator *); |