small screen updating optimization in gtk front end
[nvi.git] / gtk / gtkviscreen.h
blobefa64e6c657f4b6205f6944a1b974e1deb5a8e42
1 #ifndef __GTK_VI_SCREEN_H__
2 #define __GTK_VI_SCREEN_H__
4 #include "config.h"
5 #include "port.h"
6 #include "../common/multibyte.h"
8 #define GTK_TYPE_VI_SCREEN (gtk_vi_screen_get_type ())
9 #define GTK_VI_SCREEN(obj) (GTK_CHECK_CAST ((obj), GTK_TYPE_VI_SCREEN, GtkViScreen))
10 #define GTK_VI_SCREEN_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_VI_SCREEN, GtkViScreenClass))
11 #define GTK_IS_VI_SCREEN(obj) (GTK_CHECK_TYPE ((obj), GTK_TYPE_VI_SCREEN))
12 #define GTK_IS_VI_SCREEN_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_VI_SCREEN))
14 typedef struct _GtkViScreen GtkViScreen;
15 typedef struct _GtkViScreenClass GtkViScreenClass;
17 struct _GtkViScreen
19 GtkWidget widget;
21 GdkWindow *text_area;
23 GtkAdjustment *vadj;
25 GdkGC *gc;
26 GdkGC *reverse_gc;
28 CHAR_T *chars;
29 guchar *reverse;
30 guchar color;
32 gint cols, rows;
33 gint ch_width, ch_height, ch_ascent;
34 gint curx, cury;
35 gint lastx, lasty;
36 gint marked_x, marked_y, marked_maxx, marked_maxy;
39 struct _GtkViScreenClass
41 GtkWidgetClass parent_class;
43 void (*rename) (GtkViScreen *vi, gchar *name, gint len);
44 void (*resized) (GtkViScreen *vi, gint width, gint height);
47 GtkType gtk_vi_screen_get_type (void);
48 GtkWidget* gtk_vi_screen_new (GtkAdjustment *vadj);
49 void gtk_vi_screen_set_adjustment (GtkViScreen *vi_screen,
50 GtkAdjustment *vadj);
51 void gtk_vi_screen_move (GtkViScreen *vi, gint row, gint col);
52 void gtk_vi_screen_clrtoel (GtkViScreen *vi);
53 void gtk_vi_screen_attribute(GtkViScreen *vi, gint attribute, gint on);
54 void gtk_vi_screen_addstr (GtkViScreen *vi, const char *str, int len);
55 void gtk_vi_screen_deleteln (GtkViScreen *vi);
56 void gtk_vi_screen_insertln (GtkViScreen *vi);
57 void gtk_vi_screen_refresh (GtkViScreen *vi);
58 void gtk_vi_screen_rewrite (GtkViScreen *vi, gint row);
60 #endif /* __GTK_VI_SCREEN_H__ */