X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=apps%2Firssi%2Fsrc%2Ffe-text%2Ftextbuffer-view.h;fp=apps%2Firssi%2Fsrc%2Ffe-text%2Ftextbuffer-view.h;h=0000000000000000000000000000000000000000;hb=72c2de619079457f7a68100eb13385275a424a23;hp=b529ebedd099436225c64e8c10b768b1da5c5872;hpb=e7b6c157b80152bf9fb9266e6bdd93f9fb0db776;p=runtime.git diff --git a/apps/irssi/src/fe-text/textbuffer-view.h b/apps/irssi/src/fe-text/textbuffer-view.h deleted file mode 100644 index b529ebed..00000000 --- a/apps/irssi/src/fe-text/textbuffer-view.h +++ /dev/null @@ -1,150 +0,0 @@ -#ifndef __TEXTBUFFER_VIEW_H -#define __TEXTBUFFER_VIEW_H - -#include "textbuffer.h" -#include "term.h" - -typedef struct _TEXT_BUFFER_VIEW_REC TEXT_BUFFER_VIEW_REC; - -/* if ypos == -1, don't print anything, just return the indent size */ -typedef int (*INDENT_FUNC) (TEXT_BUFFER_VIEW_REC *view, - LINE_REC *line, int ypos); - -typedef struct { - const unsigned char *start; - int indent; - INDENT_FUNC indent_func; - int color; - - /* first word in line belong to the end of the last word in - previous line */ - unsigned int continues:1; -} LINE_CACHE_SUB_REC; - -typedef struct { - time_t last_access; - - int count; /* number of real lines */ - - /* variable sized array, actually. starts from the second line, - so size of it is count-1 */ - LINE_CACHE_SUB_REC lines[1]; -} LINE_CACHE_REC; - -typedef struct { - int refcount; - int width; - - GHashTable *line_cache; - - /* should contain the same value for each cache that uses the - same buffer */ - unsigned char update_counter; - /* number of real lines used by the last line in buffer */ - int last_linecount; -} TEXT_BUFFER_CACHE_REC; - -struct _TEXT_BUFFER_VIEW_REC { - TEXT_BUFFER_REC *buffer; - GSList *siblings; /* other views that use the same buffer */ - - TERM_WINDOW *window; - int width, height; - - int default_indent; - INDENT_FUNC default_indent_func; - unsigned int longword_noindent:1; - unsigned int scroll:1; /* scroll down automatically when at bottom */ - unsigned int utf8:1; /* use UTF8 in this view */ - - TEXT_BUFFER_CACHE_REC *cache; - int ypos; /* cursor position - visible area is 0..height-1 */ - - LINE_REC *startline; /* line at the top of the screen */ - int subline; /* number of "real lines" to skip from `startline' */ - - /* marks the bottom of the text buffer */ - LINE_REC *bottom_startline; - int bottom_subline; - - /* how many empty lines are in screen. a screenful when started - or used /CLEAR */ - int empty_linecount; - /* window is at the bottom of the text buffer */ - unsigned int bottom:1; - /* if !bottom - new text has been printed since we were at bottom */ - unsigned int more_text:1; - /* Window needs a redraw */ - unsigned int dirty:1; - - /* Bookmarks to the lines in the buffer - removed automatically - when the line gets removed from buffer */ - GHashTable *bookmarks; -}; - -/* Create new view. */ -TEXT_BUFFER_VIEW_REC *textbuffer_view_create(TEXT_BUFFER_REC *buffer, - int width, int height, - int scroll, int utf8); -/* Destroy the view. */ -void textbuffer_view_destroy(TEXT_BUFFER_VIEW_REC *view); -/* Change the default indent position */ -void textbuffer_view_set_default_indent(TEXT_BUFFER_VIEW_REC *view, - int default_indent, - int longword_noindent, - INDENT_FUNC indent_func); -void textbuffer_views_unregister_indent_func(INDENT_FUNC indent_func); - -void textbuffer_view_set_scroll(TEXT_BUFFER_VIEW_REC *view, int scroll); -void textbuffer_view_set_utf8(TEXT_BUFFER_VIEW_REC *view, int utf8); - -/* Resize the view. */ -void textbuffer_view_resize(TEXT_BUFFER_VIEW_REC *view, int width, int height); -/* Clear the view, don't actually remove any lines from buffer. */ -void textbuffer_view_clear(TEXT_BUFFER_VIEW_REC *view); - -#define textbuffer_view_get_lines(view) \ - ((view)->buffer->first_line) - -/* Scroll the view up/down */ -void textbuffer_view_scroll(TEXT_BUFFER_VIEW_REC *view, int lines); -/* Scroll to specified line */ -void textbuffer_view_scroll_line(TEXT_BUFFER_VIEW_REC *view, LINE_REC *line); -/* Return line cache */ -LINE_CACHE_REC *textbuffer_view_get_line_cache(TEXT_BUFFER_VIEW_REC *view, - LINE_REC *line); - -/* - Functions for manipulating the text buffer, using these commands update - all views that use the buffer. -*/ - -/* Update some line in the buffer which has been modified using - textbuffer_append() or textbuffer_insert(). */ -void textbuffer_view_insert_line(TEXT_BUFFER_VIEW_REC *view, LINE_REC *line); -/* Remove one line from buffer. */ -void textbuffer_view_remove_line(TEXT_BUFFER_VIEW_REC *view, LINE_REC *line); -/* Remove all lines from buffer. */ -void textbuffer_view_remove_all_lines(TEXT_BUFFER_VIEW_REC *view); - -/* Set a bookmark in view */ -void textbuffer_view_set_bookmark(TEXT_BUFFER_VIEW_REC *view, - const char *name, LINE_REC *line); -/* Set a bookmark in view to the bottom line */ -void textbuffer_view_set_bookmark_bottom(TEXT_BUFFER_VIEW_REC *view, - const char *name); -/* Return the line for bookmark */ -LINE_REC *textbuffer_view_get_bookmark(TEXT_BUFFER_VIEW_REC *view, - const char *name); - -/* Specify window where the changes in view should be drawn, - NULL disables it. */ -void textbuffer_view_set_window(TEXT_BUFFER_VIEW_REC *view, - TERM_WINDOW *window); -/* Redraw the view */ -void textbuffer_view_redraw(TEXT_BUFFER_VIEW_REC *view); - -void textbuffer_view_init(void); -void textbuffer_view_deinit(void); - -#endif