diff options
Diffstat (limited to 'src/glibext/tokenstyle.h')
-rw-r--r-- | src/glibext/tokenstyle.h | 90 |
1 files changed, 66 insertions, 24 deletions
diff --git a/src/glibext/tokenstyle.h b/src/glibext/tokenstyle.h index 9adfe1a..923b725 100644 --- a/src/glibext/tokenstyle.h +++ b/src/glibext/tokenstyle.h @@ -1,8 +1,8 @@ /* Chrysalide - Outil d'analyse de fichiers binaires - * rendering.h - prototypes pour la transformation de paramètres du thème GTK courant + * tokenstyle.h - prototypes pour la centralisation des paramètres de rendu de bribes textuelles * - * Copyright (C) 2018 Cyrille Bagard + * Copyright (C) 2018-2024 Cyrille Bagard * * This file is part of Chrysalide. * @@ -22,44 +22,86 @@ */ -#ifndef _GTKEXT_RENDERING_H -#define _GTKEXT_RENDERING_H +#ifndef _GLIBEXT_TOKENSTYLE_H +#define _GLIBEXT_TOKENSTYLE_H -#include <stdbool.h> -#include <gdk/gdk.h> +#include <gtk/gtk.h> +#include "helpers.h" -/* Restitution d'une couleur */ -typedef struct _rendering_color_t -{ - GdkRGBA color; /* Couleur de rendu */ - bool has_color; /* Définition en place ? */ -} rendering_color_t; -/* Restitution d'un élément de thème */ -typedef struct _rendering_pattern_t +/* Types de partie de rendu */ +typedef enum _TokenRenderingTag { - rendering_color_t foreground; /* Couleur d'impression */ - rendering_color_t inverted; /* Couleur inversée pour sél. */ + TRT_NONE, /* Espace ou tabulation */ + + TRT_RAW, /* Contenu brut */ + TRT_RAW_FULL, /* Contenu brut et complet */ + TRT_RAW_NULL, /* Contenu brut et nul */ + TRT_PRINTABLE, /* Caractère imprimable */ + TRT_NOT_PRINTABLE, /* Caractère non imprimable */ + + TRT_COMMENT, /* Commentaire */ + TRT_INDICATION, /* Aide à la lecture */ + + TRT_PHYS_ADDR_PAD, /* Position physique (début) */ + TRT_PHYS_ADDR, /* Position physique */ + TRT_VIRT_ADDR_PAD, /* Adresse virtuelle (début) */ + TRT_VIRT_ADDR, /* Adresse virtuelle */ + TRT_RAW_CODE, /* Code binaire brut */ + TRT_RAW_CODE_NULL, /* Code binaire brut et nul */ + + TRT_LABEL, /* Etiquette sur une adresse */ + + TRT_INSTRUCTION, /* Code binaire brut */ + + TRT_IMMEDIATE, /* Valeur immédiate */ + + TRT_REGISTER, /* Registre */ + + TRT_PUNCT, /* Signes de ponctuation */ + TRT_HOOK, /* Crochets '[' et ']' */ + TRT_SIGNS, /* Signes '+', '-' et '*' */ + TRT_LTGT, /* Caractères '<' et '>' */ + + TRT_SECTION, /* Identifiant de section */ + TRT_SEGMENT, /* Indication de segment */ + TRT_STRING, /* Chaîne de caractères avec " */ + + TRT_VAR_NAME, /* Nom de variable */ + + TRT_KEY_WORD, /* Mot clef de langage */ + + TRT_ERROR, /* Erreur "interne" */ + + TRT_COUNT + +} TokenRenderingTag; + + +#define G_TYPE_TOKEN_STYLE (g_token_style_get_type()) + +DECLARE_GTYPE(GTokenStyle, g_token_style, G, TOKEN_STYLE); - cairo_font_slant_t slant; /* Style d'impression */ - cairo_font_weight_t weight; /* Poids de la police */ -} rendering_pattern_t; +/* Crée un gestionnaire de style pour le rendu des lignes. */ +GTokenStyle *g_token_style_new(GtkWidget *); +/* Fournit la quantité de pixels requise pour l'impression. */ +int g_token_style_measure_width(const GTokenStyle *, TokenRenderingTag, size_t); -/* Récupère les informations de rendus d'un élément de thème. */ -void load_rendering_pattern(const char *, rendering_pattern_t *); +/* Imprime le fragment de texte transmis. */ +void g_token_style_draw_text(const GTokenStyle *, TokenRenderingTag, cairo_t *, int *, int, const char *, size_t); /* Enjolive du texte selon les paramètres d'un élément de thème. */ -char *build_pango_markup_for(const char *, const rendering_pattern_t *); +char *g_token_style_build_markup(const GTokenStyle *, TokenRenderingTag, const char *); /* Ajoute du texte enjolivé selon un élément de thème. */ -char *append_pango_markup_with(char *, const char *, const rendering_pattern_t *); +char *g_token_style_append_markup(const GTokenStyle *, char *, TokenRenderingTag, const char *); -#endif /* _GTKEXT_RENDERING_H */ +#endif /* _GLIBEXT_TOKENSTYLE_H */ |