diff options
Diffstat (limited to 'src/glibext/gbuffersegment.h')
-rw-r--r-- | src/glibext/gbuffersegment.h | 203 |
1 files changed, 0 insertions, 203 deletions
diff --git a/src/glibext/gbuffersegment.h b/src/glibext/gbuffersegment.h deleted file mode 100644 index 01fb2ea..0000000 --- a/src/glibext/gbuffersegment.h +++ /dev/null @@ -1,203 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * gbuffersegment.h - prototypes pour la concentration d'un fragment de caractères aux propriétés communes - * - * Copyright (C) 2010-2014 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * OpenIDA is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * OpenIDA is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar. If not, see <http://www.gnu.org/licenses/>. - */ - - -#ifndef _GLIBEXT_GBUFFERSEGMENT_H -#define _GLIBEXT_GBUFFERSEGMENT_H - - -#include <glib-object.h> -#include <stdbool.h> -#include <gdk/gdk.h> -#include <pango/pango.h> - - - -/* Liste identifiant un ensemble de segments */ -typedef struct _segcnt_list segcnt_list; - - - -/* ----------------------- ISOLATION DE CONTENUS PARTAGEABLES ----------------------- */ - - -/* Initialise la table mémorisant les contenus pour segments. */ -bool init_segment_content_hash_table(void); - -/* Organise la sortie de la table des contenus pour segments. */ -void exit_segment_content_hash_table(void); - - - -/* -------------------- NATURE DE BASE POUR UN FRAGMENT DE TEXTE -------------------- */ - - -#define G_TYPE_BUFFER_SEGMENT (g_buffer_segment_get_type()) -#define G_BUFFER_SEGMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), G_TYPE_BUFFER_SEGMENT, GBufferSegment)) -#define G_BUFFER_SEGMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), G_TYPE_BUFFER_SEGMENT, GBufferSegmentClass)) -#define G_IS_BUFFER_SEGMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), G_TYPE_BUFFER_SEGMENT)) -#define G_IS_BUFFER_SEGMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), G_TYPE_BUFFER_SEGMENT)) -#define G_BUFFER_SEGMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), G_TYPE_BUFFER_SEGMENT, GBufferSegmentClass)) - - -/* Types de partie de rendu */ -typedef enum _RenderingTagType -{ - RTT_RAW, /* Contenu brut */ - - RTT_COMMENT, /* Commentaire */ - RTT_INDICATION, /* Aide à la lecture */ - - RTT_PHYS_ADDR_PAD, /* Position physique (début) */ - RTT_PHYS_ADDR, /* Position physique */ - RTT_VIRT_ADDR_PAD, /* Adresse virtuelle (début) */ - RTT_VIRT_ADDR, /* Adresse virtuelle */ - RTT_RAW_CODE, /* Code binaire brut */ - - RTT_LABEL, /* Etiquette sur une adresse */ - - RTT_INSTRUCTION, /* Code binaire brut */ - - RTT_IMMEDIATE, /* Valeur immédiate */ - - RTT_REGISTER, /* Registre */ - - RTT_PUNCT, /* Signes de ponctuation */ - RTT_HOOK, /* Crochets '[' et ']' */ - RTT_SIGNS, /* Signes '+', '-' et '*' */ - RTT_LTGT, /* Caractères '<' et '>' */ - - RTT_SECTION, /* Identifiant de section */ - RTT_SEGMENT, /* Indication de segment */ - RTT_STRING, /* Chaîne de caractères avec " */ - - RTT_VAR_NAME, /* Nom de variable */ - - RTT_KEY_WORD, /* Mot clef de langage */ - - RTT_ERROR, /* Erreur "interne" */ - - RTT_COUNT - -} RenderingTagType; - - -/* Fragment de caractères aux propriétés communes (instance) */ -typedef struct _GBufferSegment GBufferSegment; - -/* Fragment de caractères aux propriétés communes (classe) */ -typedef struct _GBufferSegmentClass GBufferSegmentClass; - - - -/* Détermine le type du fragment de caractères aux propriétés communes. */ -GType g_buffer_segment_get_type(void); - -/* Crée un nouveau fragment de texte avec des propriétés. */ -GBufferSegment *g_buffer_segment_new(RenderingTagType, const char *, size_t); - -/* Met à jour le contenu d'un fragment de texte. */ -void g_buffer_segment_update_text(GBufferSegment *, const char *, size_t); - -/* Indique si les textes de deux segments sont identiques. */ -bool g_buffer_segment_compare(const GBufferSegment *, const GBufferSegment *); - -/* Fournit le texte brut conservé dans le segment. */ -char *g_buffer_segment_get_text(const GBufferSegment *, bool); - -/* Fournit la quantité de pixels requise pour l'impression. */ -gint g_buffer_segment_get_width(const GBufferSegment *); - -/* Fournit la position idéale pour un marqueur. */ -gint g_buffer_segment_get_caret_position(const GBufferSegment *, gint); - -/* Déplace le curseur au sein d'un segment de tampon. */ -bool g_buffer_segment_move_caret(const GBufferSegment *, gint *, bool, GdkScrollDirection); - -/* Imprime le fragment de texte représenté. */ -void g_buffer_segment_draw(GBufferSegment *, cairo_t *, gint *, gint, const segcnt_list *); - -/* Types d'exportation */ -typedef enum _BufferExportType -{ - BET_TEXT, /* Exportation en texte brut */ - BET_HTML, /* Exportation en HTML */ - - BET_COUNT - -} BufferExportType; - -/* Elements sur lesquels une exportation peut s'appuyer */ -typedef struct _buffer_export_context -{ - union - { - int fd; /* Flux ouvert en écriture */ - - }; - - union - { - /* BET_TEXT */ - const char *sep; /* Séparation entre colonnes */ - - /* BET_HTML */ - struct - { - const char *font_name; /* Police d'impression */ - const char *bg_color; /* Fond du tableau HTML */ - - }; - - }; - -} buffer_export_context; - -/* Exporte tous les styles utilisés par des segments. */ -void g_buffer_segment_export_style(buffer_export_context *, BufferExportType); - -/* Exporte le fragment de texte représenté. */ -void g_buffer_segment_export(const GBufferSegment *, buffer_export_context *, BufferExportType); - - - -/* -------------------- GESTION OPTIMALE D'UNE LISTE DE CONTENUS -------------------- */ - - -/* Initilise une liste de contenus de segments. */ -segcnt_list *init_segment_content_list(void); - -/* Libère la mémoire occupée par une liste de contenus. */ -void exit_segment_content_list(segcnt_list *); - -/* Vide, si besoin est, une liste de contenus de segments. */ -bool reset_segment_content_list(segcnt_list *); - -/* Marque le contenu d'un segment comme remarquable. */ -bool add_segment_content_to_selection_list(segcnt_list *, const GBufferSegment *); - -/* Indique si le contenu d'un segment est notable ou non. */ -bool selection_list_has_segment_content(const segcnt_list *, const GBufferSegment *); - - - -#endif /* _GLIBEXT_GBUFFERSEGMENT_H */ |