summaryrefslogtreecommitdiff
path: root/src/glibext/tokenstyle.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/glibext/tokenstyle.h')
-rw-r--r--src/glibext/tokenstyle.h90
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 */