diff options
Diffstat (limited to 'src/glibext')
| -rw-r--r-- | src/glibext/gbufferline.c | 157 | 
1 files changed, 11 insertions, 146 deletions
| diff --git a/src/glibext/gbufferline.c b/src/glibext/gbufferline.c index 907b5bd..e3a33bf 100644 --- a/src/glibext/gbufferline.c +++ b/src/glibext/gbufferline.c @@ -29,6 +29,7 @@  #include "../common/extstr.h" +#include "../gtkext/support.h"  #include <malloc.h> /* FIXME : à virer */ @@ -86,8 +87,6 @@ struct _GBufferLine      BufferLineColumn merge_start;           /* Début de la zone globale    */      BufferLineColumn last_used;             /* Dernière colonne utilisée   */ -    cairo_surface_t *bookmark_img;          /* Image pour les signets      */ -  };  /* Représentation de fragments de texte en ligne (classe) */ @@ -95,7 +94,7 @@ struct _GBufferLineClass  {      GObjectClass parent;                    /* A laisser en premier        */ -    PangoAttrList *attribs[RTT_COUNT];      /* Décorateurs pour tampons    */ +    cairo_surface_t *bookmark_img;          /* Image pour les signets      */  }; @@ -316,144 +315,14 @@ G_DEFINE_TYPE(GBufferLine, g_buffer_line, G_TYPE_OBJECT);  static void g_buffer_line_class_init(GBufferLineClass *class)  { -    PangoAttribute *attrib;                 /* Propriété de rendu          */ - -    /* RTT_RAW */ - -    class->attribs[RTT_RAW] = pango_attr_list_new(); - -    attrib = pango_attr_foreground_new(0, 0, 0); -    pango_attr_list_insert(class->attribs[RTT_RAW], attrib); - -    /* RTT_COMMENT */ - -    class->attribs[RTT_COMMENT] = pango_attr_list_new(); - -    attrib = pango_attr_foreground_new(14335, 45311, 23551); -    pango_attr_list_insert(class->attribs[RTT_COMMENT], attrib); - -    /* RTT_INDICATION */ - -    class->attribs[RTT_INDICATION] = pango_attr_list_new(); - -    attrib = pango_attr_foreground_new(33410, 33410, 33410); -    pango_attr_list_insert(class->attribs[RTT_INDICATION], attrib); - -    attrib = pango_attr_style_new(PANGO_STYLE_ITALIC); -    pango_attr_list_insert(class->attribs[RTT_INDICATION], attrib); - -    /* RTT_RAW_CODE */ - -    class->attribs[RTT_RAW_CODE] = pango_attr_list_new(); - -    attrib = pango_attr_foreground_new(48895, 48895, 48895); -    pango_attr_list_insert(class->attribs[RTT_RAW_CODE], attrib); - -    /* RTT_INSTRUCTION */ - -    class->attribs[RTT_INSTRUCTION] = pango_attr_list_new(); - -    attrib = pango_attr_foreground_new(0, 0, 0); -    pango_attr_list_insert(class->attribs[RTT_INSTRUCTION], attrib); - -    /* RTT_IMMEDIATE */ - -    class->attribs[RTT_IMMEDIATE] = pango_attr_list_new(); - -    attrib = pango_attr_foreground_new(41215, 8447, 61695); -    pango_attr_list_insert(class->attribs[RTT_IMMEDIATE], attrib); - -    /* RTT_REGISTER */ - -    class->attribs[RTT_REGISTER] = pango_attr_list_new(); - -    //attrib = pango_attr_foreground_new(23551, 23551, 51455); -    attrib = pango_attr_foreground_new(16895, 16895, 53759); -    pango_attr_list_insert(class->attribs[RTT_REGISTER], attrib); - -    /* RTT_PUNCT */ - -    class->attribs[RTT_PUNCT] = pango_attr_list_new(); - -    attrib = pango_attr_foreground_new(0, 0, 0); -    pango_attr_list_insert(class->attribs[RTT_PUNCT], attrib); - -    attrib = pango_attr_weight_new(PANGO_WEIGHT_BOLD); -    pango_attr_list_insert(class->attribs[RTT_PUNCT], attrib); - -    /* RTT_HOOK */ - -    class->attribs[RTT_HOOK] = pango_attr_list_new(); +    gchar *filename;                        /* Chemin d'accès à utiliser   */ -    attrib = pango_attr_foreground_new(0, 0, 0); -    pango_attr_list_insert(class->attribs[RTT_HOOK], attrib); +    filename = find_pixmap_file("bookmark.png"); +    /* assert(filename != NULL); */ -    attrib = pango_attr_weight_new(PANGO_WEIGHT_BOLD); -    pango_attr_list_insert(class->attribs[RTT_HOOK], attrib); +    class->bookmark_img = cairo_image_surface_create_from_png(filename); -    /* RTT_SIGNS */ - -    class->attribs[RTT_SIGNS] = pango_attr_list_new(); - -    attrib = pango_attr_foreground_new(0, 0, 0); -    pango_attr_list_insert(class->attribs[RTT_SIGNS], attrib); - -    attrib = pango_attr_weight_new(PANGO_WEIGHT_SEMIBOLD); -    pango_attr_list_insert(class->attribs[RTT_SIGNS], attrib); - -    /* RTT_LTGT */ - -    class->attribs[RTT_LTGT] = pango_attr_list_new(); - -    /* RTT_SECTION */ - -    class->attribs[RTT_SECTION] = pango_attr_list_new(); - -    attrib = pango_attr_foreground_new(51200, 2560, 2560); -    pango_attr_list_insert(class->attribs[RTT_SECTION], attrib); - -    /* -    attrib = pango_attr_foreground_new(56832, 26880, 43008); -    pango_attr_list_insert(class->attribs[RTT_SECTION], attrib); - -    attrib = pango_attr_weight_new(PANGO_WEIGHT_BOLD); -    pango_attr_list_insert(class->attribs[RTT_SECTION], attrib); -    */ - -    /* RTT_SEGMENT */ - -    class->attribs[RTT_SEGMENT] = pango_attr_list_new(); - -    /* RTT_STRING */ - -    class->attribs[RTT_STRING] = pango_attr_list_new(); - -    attrib = pango_attr_foreground_new(52224, 32256, 0); -    pango_attr_list_insert(class->attribs[RTT_STRING], attrib); - -    /* RTT_VAR_NAME */ - -    class->attribs[RTT_VAR_NAME] = pango_attr_list_new(); - -    attrib = pango_attr_foreground_new(0, 0, 0); -    pango_attr_list_insert(class->attribs[RTT_VAR_NAME], attrib); - -    /* RTT_KEY_WORD */ - -    class->attribs[RTT_KEY_WORD] = pango_attr_list_new(); - -    attrib = pango_attr_foreground_new(0, 0, 0); -    pango_attr_list_insert(class->attribs[RTT_KEY_WORD], attrib); - -    /* RTT_ERROR */ - -    class->attribs[RTT_ERROR] = pango_attr_list_new(); - -    attrib = pango_attr_foreground_new(65535, 0, 0); -    pango_attr_list_insert(class->attribs[RTT_ERROR], attrib); - -    attrib = pango_attr_weight_new(PANGO_WEIGHT_BOLD); -    pango_attr_list_insert(class->attribs[RTT_ERROR], attrib); +    g_free(filename);  } @@ -473,7 +342,6 @@ static void g_buffer_line_class_init(GBufferLineClass *class)  static void g_buffer_line_init(GBufferLine *line)  {      BufferLineColumn i;                     /* Boucle de parcours          */ -    char *filename;                         /* Chemin d'accès à utiliser   */      for (i = BLC_ADDRESS; i < BLC_COUNT; i++)          reset_column(&line->columns[i]); @@ -481,9 +349,6 @@ static void g_buffer_line_init(GBufferLine *line)      line->merge_start = BLC_COUNT;      line->last_used = BLC_COUNT; -    filename = "/home/ocb/prog/chrysalide.cdb/pixmaps/bookmark.png"; -    line->bookmark_img = cairo_image_surface_create_from_png(filename); -  } @@ -673,7 +538,6 @@ GSList *g_buffer_line_highlight_all_same_segments(const GBufferLine *line, GSLis  void g_buffer_line_insert_text(GBufferLine *line, BufferLineColumn column, const char *text, size_t length, RenderingTagType type)  { -    GBufferLineClass *class;                /* Stockage de briques de base */       GBufferSegment *segment;                /* Portion de texte à ajouter  */      if (column == BLC_MAIN) @@ -687,8 +551,6 @@ void g_buffer_line_insert_text(GBufferLine *line, BufferLineColumn column, const      if (length == 0)          return; -    class = G_BUFFER_LINE_GET_CLASS(line); -      segment = g_buffer_segment_new(type, text, length);      g_buffer_line_add_segment(line, column, segment); @@ -829,10 +691,13 @@ void g_buffer_line_start_merge_at(GBufferLine *line, BufferLineColumn start)  void g_buffer_line_draw(GBufferLine *line, cairo_t *cairo, const gint max_widths[BLC_COUNT], gint x_init, gint y, bool addr, bool code)  { +    GBufferLineClass *class;                /* Stockage de briques de base */      gint x;                                 /* Point de départ d'impression*/      BufferLineColumn i;                     /* Boucle de parcours          */ -    cairo_set_source_surface(cairo, line->bookmark_img, 5, y); +    class = G_BUFFER_LINE_GET_CLASS(line); + +    cairo_set_source_surface(cairo, class->bookmark_img, 5, y);      cairo_paint(cairo);      x = x_init; | 
