/* OpenIDA - 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-2012 Cyrille Bagard * * This file is part of OpenIDA. * * 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 . */ #ifndef _GLIBEXT_GBUFFERSEGMENT_H #define _GLIBEXT_GBUFFERSEGMENT_H #include #include #include #include #include "gfontcache.h" #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 rendus */ typedef enum _SegRenderingStyle { SRS_CLASSIC, /* Comportement par défaut */ SRS_HIGHLIGHT_SAME, /* Surlignage des identiques */ SRS_COUNT } SegRenderingStyle; /* Types d'exportation */ typedef enum _BufferExportType { BET_TEXT, BET_COUNT } BufferExportType; /* 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(PangoAttrList *, 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. */ const char *g_buffer_segment_get_text(const GBufferSegment *); /* Fournit la quantité de pixels requise pour l'impression. */ gint g_buffer_segment_get_width(const GBufferSegment *); /* (Re)charge les couleurs à partir de la liste d'attributs. */ void g_buffer_segment_cache_colors(GBufferSegment *); /* Module l'apparence finale du composant. */ void g_buffer_segment_set_style(GBufferSegment *, SegRenderingStyle); /* Imprime le fragment de texte représenté. */ void g_buffer_segment_draw(GBufferSegment *, cairo_t *, GFontCache *, gint *, gint); #endif /* _GLIBEXT_GBUFFERSEGMENT_H */