pango is now required for gtk
[nvi.git] / gtk / gtkviscreen.h
blobb4e8d29344f7e6b570010221ee62c7110fd1038e
1 #ifndef __GTK_VI_SCREEN_H__
2 #define __GTK_VI_SCREEN_H__
4 #include <sys/types.h>
5 #include "config.h"
6 #include "port.h"
7 #include "../common/multibyte.h"
9 #include <pango/pango.h>
10 #include <pango/pangox.h>
12 #define GTK_TYPE_VI_SCREEN (gtk_vi_screen_get_type ())
13 #define GTK_VI_SCREEN(obj) (GTK_CHECK_CAST ((obj), GTK_TYPE_VI_SCREEN, GtkViScreen))
14 #define GTK_VI_SCREEN_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_VI_SCREEN, GtkViScreenClass))
15 #define GTK_IS_VI_SCREEN(obj) (GTK_CHECK_TYPE ((obj), GTK_TYPE_VI_SCREEN))
16 #define GTK_IS_VI_SCREEN_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_VI_SCREEN))
18 typedef struct _GtkViScreen GtkViScreen;
19 typedef struct _GtkViScreenClass GtkViScreenClass;
21 struct _GtkViScreen
23 GtkWidget widget;
25 GdkWindow *text_area;
27 GtkAdjustment *vadj;
29 GdkGC *gc;
30 GdkGC *reverse_gc;
32 CHAR_T *chars;
33 guchar *endcol;
34 guchar *reverse;
35 guchar color;
37 gint cols, rows;
38 gint ch_width, ch_height, ch_ascent;
39 gint curx, cury; /* character position */
40 gint lastx, lasty;
41 gint marked_x, marked_y, marked_maxx, marked_maxy;
43 PangoContext *conx;
44 PangoAttrList* alist;
47 struct _GtkViScreenClass
49 GtkWidgetClass parent_class;
51 void (*rename) (GtkViScreen *vi, gchar *name, gint len);
52 void (*resized) (GtkViScreen *vi, gint width, gint height);
55 GtkType gtk_vi_screen_get_type (void);
56 GtkWidget* gtk_vi_screen_new (GtkAdjustment *vadj);
57 void gtk_vi_screen_set_adjustment (GtkViScreen *vi_screen,
58 GtkAdjustment *vadj);
59 void gtk_vi_screen_move (GtkViScreen *vi, gint row, gint col);
60 void gtk_vi_screen_clrtoel (GtkViScreen *vi);
61 void gtk_vi_screen_attribute(GtkViScreen *vi, gint attribute, gint on);
62 void gtk_vi_screen_addstr (GtkViScreen *vi, const char *str, int len);
63 void gtk_vi_screen_deleteln (GtkViScreen *vi);
64 void gtk_vi_screen_insertln (GtkViScreen *vi);
65 void gtk_vi_screen_refresh (GtkViScreen *vi);
66 void gtk_vi_screen_rewrite (GtkViScreen *vi, gint row);
68 #endif /* __GTK_VI_SCREEN_H__ */