Mercurial > pidgin.yaz
diff finch/libgnt/gnttextview.h @ 15818:0e3a8505ebbe
renamed gaim-text to finch
author | Sean Egan <seanegan@gmail.com> |
---|---|
date | Sun, 18 Mar 2007 19:38:15 +0000 |
parents | |
children | f00f2e283ffb |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/finch/libgnt/gnttextview.h Sun Mar 18 19:38:15 2007 +0000 @@ -0,0 +1,86 @@ +#ifndef GNT_TEXT_VIEW_H +#define GNT_TEXT_VIEW_H + +#include "gntwidget.h" +#include "gnt.h" +#include "gntcolors.h" +#include "gntkeys.h" + +#define GNT_TYPE_TEXTVIEW (gnt_text_view_get_gtype()) +#define GNT_TEXT_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GNT_TYPE_TEXTVIEW, GntTextView)) +#define GNT_TEXT_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GNT_TYPE_TEXTVIEW, GntTextViewClass)) +#define GNT_IS_TEXTVIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GNT_TYPE_TEXTVIEW)) +#define GNT_IS_TEXTVIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GNT_TYPE_TEXTVIEW)) +#define GNT_TEXT_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GNT_TYPE_TEXTVIEW, GntTextViewClass)) + +#define GNT_TEXT_VIEW_FLAGS(obj) (GNT_TEXT_VIEW(obj)->priv.flags) +#define GNT_TEXT_VIEW_SET_FLAGS(obj, flags) (GNT_TEXT_VIEW_FLAGS(obj) |= flags) +#define GNT_TEXT_VIEW_UNSET_FLAGS(obj, flags) (GNT_TEXT_VIEW_FLAGS(obj) &= ~(flags)) + +typedef struct _GnTextView GntTextView; +typedef struct _GnTextViewPriv GntTextViewPriv; +typedef struct _GnTextViewClass GntTextViewClass; + +struct _GnTextView +{ + GntWidget parent; + + GString *string; + GList *list; /* List of GntTextLine */ + + GList *tags; /* A list of tags */ +}; + +typedef enum +{ + GNT_TEXT_FLAG_NORMAL = 0, + GNT_TEXT_FLAG_BOLD = 1 << 0, + GNT_TEXT_FLAG_UNDERLINE = 1 << 1, + GNT_TEXT_FLAG_BLINK = 1 << 2, + GNT_TEXT_FLAG_DIM = 1 << 3, + GNT_TEXT_FLAG_HIGHLIGHT = 1 << 4, +} GntTextFormatFlags; + +struct _GnTextViewClass +{ + GntWidgetClass parent; + + void (*gnt_reserved1)(void); + void (*gnt_reserved2)(void); + void (*gnt_reserved3)(void); + void (*gnt_reserved4)(void); +}; + +G_BEGIN_DECLS + +GType gnt_text_view_get_gtype(void); + +/* XXX: For now, don't set a textview to have any border. + * If you want borders real bad, put it in a box. */ +GntWidget *gnt_text_view_new(void); + +/* scroll > 0 means scroll up, < 0 means scroll down, == 0 means scroll to the end */ +void gnt_text_view_scroll(GntTextView *view, int scroll); + +void gnt_text_view_append_text_with_flags(GntTextView *view, const char *text, GntTextFormatFlags flags); + +void gnt_text_view_append_text_with_tag(GntTextView *view, const char *text, GntTextFormatFlags flags, const char *tag); + +/* Move the cursor to the beginning of the next line and resets text-attributes. + * It first completes the current line with the current text-attributes. */ +void gnt_text_view_next_line(GntTextView *view); + +chtype gnt_text_format_flag_to_chtype(GntTextFormatFlags flags); + +void gnt_text_view_clear(GntTextView *view); + +int gnt_text_view_get_lines_below(GntTextView *view); + +int gnt_text_view_get_lines_above(GntTextView *view); + +/* If text is NULL, then the tag is removed. */ +int gnt_text_view_tag_change(GntTextView *view, const char *name, const char *text, gboolean all); + +G_END_DECLS + +#endif /* GNT_TEXT_VIEW_H */