diff options
Diffstat (limited to 'src/glibext/gbinportion.h')
-rw-r--r-- | src/glibext/gbinportion.h | 81 |
1 files changed, 61 insertions, 20 deletions
diff --git a/src/glibext/gbinportion.h b/src/glibext/gbinportion.h index f92b87e..e5c7830 100644 --- a/src/glibext/gbinportion.h +++ b/src/glibext/gbinportion.h @@ -36,6 +36,9 @@ +/* ------------------------------- PORTION DE BINAIRE ------------------------------- */ + + /** * Couleurs de représentation. */ @@ -73,11 +76,7 @@ typedef enum _PortionAccessRights } PortionAccessRights; -/* Fonction appelée à chaque visite de portion.*/ -typedef bool (* visit_portion_fc) (GBinPortion *, void *); - - -/* Indique le type défini par la GLib pour les blocs de données. */ +/* Indique le type défini par la GLib pour les portions de données binaires. */ GType g_binary_portion_get_type(void); /* Crée une description de partie de code vierge. */ @@ -104,35 +103,77 @@ void g_binary_portion_set_rights(GBinPortion *, PortionAccessRights); /* Fournit les droits associés à une partie de code. */ PortionAccessRights g_binary_portion_get_rights(const GBinPortion *); -/* Procède à l'inclusion d'une portion dans une autre. */ -void g_binary_portion_include(GBinPortion *, GBinPortion *); +/* Insère dans un tampon une description de portion. */ +void g_binary_portion_print(const GBinPortion *, GCodeBuffer *, MemoryDataSize); -/* Indique le niveau de profondeur d'une portion donnée. */ -unsigned int g_binary_portion_get_level(GBinPortion *); +/* Prépare une astuce concernant une portion pour son affichage. */ +void g_binary_portion_query_tooltip(GBinPortion *, GtkTooltip *); + +/* Représente la portion sur une bande dédiée. */ +void g_binary_portion_draw(const GBinPortion *, GtkStyleContext *, cairo_t *, const GdkRectangle *); + + + +/* -------------------------- COUCHES DE PORTIONS BINAIRES -------------------------- */ + + +#define G_TYPE_PORTION_LAYER (g_portion_layer_get_type()) +#define G_PORTION_LAYER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), G_TYPE_PORTION_LAYER, GPortionLayer)) +#define G_IS_PORTION_LAYER(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), G_TYPE_PORTION_LAYER)) +#define G_PORTION_LAYER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), G_TYPE_PORTION_LAYER, GPortionLayerClass)) +#define G_IS_PORTION_LAYER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), G_TYPE_PORTION_LAYER)) +#define G_PORTION_LAYER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), G_TYPE_PORTION_LAYER, GPortionLayerClass)) -/* Parcours un ensemble de portions binaires. */ -bool g_binary_portion_visit(GBinPortion *, visit_portion_fc, void *); + +/* Couche de portions binaires quelconques (instance) */ +typedef struct _GPortionLayer GPortionLayer; + +/* Couche de portions binaires quelconques (classe) */ +typedef struct _GPortionLayerClass GPortionLayerClass; + + +/* Taille à définir lors d'un rattachement */ +#define NO_LENGTH_YET VMPA_NO_PHYSICAL + + +/* Indique le type défini par la GLib pour les couches de portions binaires. */ +GType g_portion_layer_get_type(void); + +/* Crée une nouvelle couche de portions binaires. */ +GPortionLayer *g_portion_layer_new(phys_t, const char *); + +/* Attache une couche à une autre en tant que couche inférieure. */ +void g_portion_layer_attach_sub(GPortionLayer *, GPortionLayer *); + +/* Procède à l'inclusion d'une portion dans une couche. */ +void g_portion_layer_include(GPortionLayer *, GBinPortion *); + +/* Fournit une liste triée de portions d'un binaire. */ +GBinPortion **g_portion_layer_collect_all_portions(const GPortionLayer *, size_t *); /* Recherche la portion présente à un point donné. */ -GBinPortion *g_binary_portion_find_at_pos(GBinPortion *, gint, GdkRectangle *); +GBinPortion *g_portion_layer_find_portion_at_pos(const GPortionLayer *, gint, GdkRectangle *); /* Recherche la portion présente à une adresse donnée. */ -GBinPortion *g_binary_portion_find_at_addr(GBinPortion *, const vmpa2t *, GdkRectangle *); +GBinPortion *g_portion_layer_find_portion_at_addr(const GPortionLayer *, const vmpa2t *, GdkRectangle *); /* Fournit la position correspondant à une adresse donnée. */ -bool g_binary_portion_get_addr_from_pos(GBinPortion *, gint, const GdkRectangle *, vmpa2t *); +bool g_portion_layer_get_addr_from_pos(GPortionLayer *, gint, const GdkRectangle *, vmpa2t *); /* Fournit l'adresse correspondant à une position donnée. */ -bool g_binary_portion_get_pos_from_addr(GBinPortion *, const vmpa2t *, const GdkRectangle *, gint *); +bool g_portion_layer_get_pos_from_addr(GPortionLayer *, const vmpa2t *, const GdkRectangle *, gint *); -/* Insère dans un tampon une description de portion. */ -void g_binary_portion_print(const GBinPortion *, GCodeBuffer *, MemoryDataSize); +/* Fonction appelée à chaque visite de portion.*/ +typedef bool (* visit_portion_fc) (GBinPortion *, void *); + +/* Parcours un ensemble de portions binaires. */ +bool g_portion_layer_visit(const GPortionLayer *, visit_portion_fc, void *); /* Prépare une astuce concernant une portion pour son affichage. */ -gboolean g_binary_portion_query_tooltip(GBinPortion *, gint, gint, const GdkRectangle *, GtkTooltip *); +gboolean g_portion_layer_query_tooltip(const GPortionLayer *, gint, gint, const GdkRectangle *, GtkTooltip *); -/* Représente la portion sur une bande dédiée. */ -void g_binary_portion_draw(GBinPortion *, GtkStyleContext *, cairo_t *, const GdkRectangle *); +/* Représente une couche de portions sur une bande dédiée. */ +void g_portion_layer_draw(const GPortionLayer *, GtkStyleContext *, cairo_t *, const GdkRectangle *); |